Add topics
add_topicsAdds questions to the topic bank. Uses BYO DataForSEO for Google volume, AI search volume, and intent when connected; otherwise stores estimates. Costs the user about USD 0.11 per batch, whatever the term count; terms already measured in the last 30 days are skipped and cost nothing. One call covers all terms at that cost. Every term is checked against the stored topics and against the others in the same call before anything is measured. duplicates names terms identical to something already there (scope stored collapsed onto an existing topicId; scope in-call was sent twice in this call); no row is created. similar names terms withheld for competing with an existing topic (score, term, topicId, inserted: false); re-sending with allowSimilar: true stores both on purpose (inserted: true then). similarityThreshold is the cutoff in use. published names terms withheld for resembling a page the site already published, with url, path, score, inserted: false and a source: source sitemap is a content page from import_sitemap, compared by a title inferred from its slug (inferredTitle); source profile is a page that sells, such as the home, compared by the keyword the founder declared for it in profile.pageKeywords (targetKeyword). Each published entry names the phrase and the existing URL it resembles; re-sending with allowSimilar: true stores it anyway. semanticOverlaps is a separate, softer signal: terms that were stored and measured, but a classifier read as asking the same question as an existing topic in different wording: probability, term and the topicId it overlaps, stored either way. semanticOverlapThreshold is the cutoff in use, and the list is empty when the classifier is unavailable. Returns measured (terms DataForSEO answered for) and unmeasured (terms it did not); an unmeasured term keeps source estimate and is not ranked. volumeStatus and aiVolumeStatus on the returned topics report observed, unavailable or unmeasured; an unavailable volume is never a 0. Can be refused before spending with degraded: true, reason: spend-limit and a spend object naming the ceiling that tripped; nothing is charged. resurrected names terms whose archived topic was brought back instead of creating a new row, keeping the metrics and brief it was archived with.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| terms | Yes | ||
| source | No | ||
| workspaceId | No | The workspace this call acts on, as listed by list_workspaces. Left out, the call uses the workspace the account is in right now. | |
| allowSimilar | No |