SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester
seo

Write suggestions for a keyword with your own model.

Replaces the suggestions on file. Send 2 to 5 suggestions, most valuable first; extras beyond five are dropped, titles are cut at 90 characters and details at 420. The dashboard shows them as written by your app. Spends no SoftSolz AI credits.

PUThttps://app.softsolz.uk/api/v1/services/seo/sites/{site_id}/keywords/{keyword_id}/advice

Recent Requests

Log in to see full request history
TimeStatusUser Agent
Make a request to see history.

Path Params

site_idstringrequired
keyword_idstringrequired

Headers

Authorizationstringrequired

Bearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.

Idempotency-Keystring

Optional idempotency key for safe retries.

Body Params

suggestionsarray of objects

Up to five suggestions.

modelstring

Optional name of the model that wrote them, recorded as external:<model>.

Response

Response Body

idstringAdvice record id.
tracked_query_idstringKeyword the advice is for.
period_startstring | nullMonth the evidence was taken from.
evidence_jsonobjectThe Search Console numbers the advice was written from.
suggestions_jsonarray of objectsAt most five suggestions, most valuable first.
model_idstring | nullexternal or external:<model> when written through the API.
credits_usednumberSoftSolz AI credits spent. Always 0 through the API.
sourcestringsoftsolz or api.
author_labelstring | nullName of the app or key that wrote it.
created_atstringWhen the advice was last written.

Request

import { SoftSolz } from '@softsolz/sdk';
const client = new SoftSolz({ apiKey: process.env.SOFTSOLZ_API_KEY });
const result = await client.seo.updateSiteKeywordAdvice('<site_id>', '<keyword_id>', {
"suggestions": [
{
"title": "Add a step-by-step starter recipe",
"detail": "The page ranks 11th for a query with 1,900 monthly impressions; a recipe section answers the intent directly.",
"effort": "medium"
}
]
});
console.log(result);

Credentials

Sent as a Bearer token. Stored only in your browser.

Response · 200

{
"data": {
"id": "string",
"tracked_query_id": "string",
"period_start": "string",
"evidence_json": {},
"suggestions_json": [],
"model_id": "string",
"credits_used": 0,
"source": "string",
"author_label": "string",
"created_at": "string"
}
}