Turn an opportunity into a task in the Tasks service.
Creates one task holding the title, the page or question and the score, and records it on the opportunity as task_id. Calling it again returns the task already made (200) instead of a second one. Requires the Tasks service (402 service_not_active); the member behind the key or connected app must hold service.tasks.create (403 otherwise) and the task is assigned to them. Spends no SoftSolz AI credits.
https://app.softsolz.uk/api/v1/services/seo/sites/{site_id}/opportunities/{opportunity_id}/taskRecent Requests
Kept only in this browserPath Params
site_idstringrequiredopportunity_idstringrequiredHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Response
Response Body
task_idstringThe task in the Tasks service.linkstringWhere the task opens in the dashboard.existingbooleanTrue when the task had already been made.opportunityobjectOne piece of work worth doing, scored and tracked across months. This is the unit the growth board is built from.Request
curl --request POST \ --url https://app.softsolz.uk/api/v1/services/seo/sites/{site_id}/opportunities/{opportunity_id}/task \ --header 'Authorization: Bearer sk_live_your_key'Credentials
Sent as a Bearer token and used in the samples above and in Try it. Kept only in this browser tab until you close it. Use an sk_test_ key to stay in your sandbox.
Response · 201
{ "data": { "task_id": "4182", "link": "/tasks/4182", "existing": false, "opportunity": { "id": "3f2b9c44-8f4e-4d0a-9c1b-2a7d6e5f1a23", "site_id": "3f2b9c44-8f4e-4d0a-9c1b-2a7d6e5f1a23", "kind": "fix_snippet", "kind_label": "Rewrite the title and description", "family": "content", "pillar": "seo", "action": "refresh", "is_win": false, "entity_type": "page", "question_id": null, "question": null, "subject_key": null, "task_id": null, "page_id": 1335, "query_id": 812, "topic_id": 41, "title": "Rewrite the title and description on /pricing", "score": 59.28, "score_components": { "gap": { "value": 1, "weight": 0.3 }, "demand": { "value": 0.62, "weight": 0.22 } }, "opportunity_clicks": 29, "est_value": null, "effort": "low", "confidence": 0.666, "status": "open", "first_seen_on": "2026-05-01", "last_seen_on": "2026-08-01", "occurrence_count": 4, "baseline_json": { "clicks": 4, "impressions": 900, "position": 14.2 }, "evidence_json": { "finding_count": 2 }, "recommendation_id": null, "created_at": "2026-09-01T09:00:00.000Z", "updated_at": "2026-09-01T09:00:00.000Z" } }}