https://api.nexscope.ai/seo/aiTargetComparisonRun this API
Send a JSON request to execute this API and receive the documented response payload.
Endpoint
| Method | POST |
| Path | https://api.nexscope.ai/seo/aiTargetComparison |
| Auth | Bearer API key |
| Content-Type | application/json |
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
groups | array | required | Groups value used by this API operation. Minimum items: 2 Maximum items: 10 |
groups[] | object | required | Item in groups. |
groups[].key | string | required | Key value used by this API operation. Minimum length: 1 Maximum length: 80 |
groups[].target | array | required | Target value used by this API operation. Minimum items: 1 Maximum items: 10 |
groups[].target[] | any | required | Item in groups[] target. |
language | string | optional | Language value used by this API operation. Constant: en Default: en |
market | string | optional | Market value used by this API operation. Constant: US Default: US |
platform | string | optional | Platform value used by this API operation. Allowed: google, chat_gpt Default: google |
One of option 1 — requires kind, domain
| Name | Type | Required | Description |
|---|---|---|---|
groups[].target[] | object | required | Item in groups[] target. |
groups[].target[].domain | string | required | Normalized ASCII hostname at most63 characters. Minimum length: 1 |
groups[].target[].includeSubdomains | boolean | optional | Include subdomains value used by this API operation. Default: false |
groups[].target[].kind | string | required | Kind value used by this API operation. Constant: DOMAIN |
groups[].target[].searchFilter | string | optional | Search filter value used by this API operation. Allowed: include, exclude Default: include |
One of option 2 — requires kind, keyword
| Name | Type | Required | Description |
|---|---|---|---|
groups[].target[] | object | required | Item in groups[] target. |
groups[].target[].keyword | string | required | Trim/NFC/lowercase1..80 code points,max10 words,no ASCII percent or plus. Minimum length: 1 |
groups[].target[].kind | string | required | Kind value used by this API operation. Constant: KEYWORD |
groups[].target[].matchType | string | optional | Match type value used by this API operation. Allowed: word_match, partial_match Default: word_match |
groups[].target[].searchFilter | string | optional | Search filter value used by this API operation. Allowed: include, exclude Default: include |
Code example
{
"groups": [
{
"key": "nexscope",
"target": [
{
"kind": "DOMAIN",
"domain": "nexscope.ai",
"includeSubdomains": false,
"searchFilter": "include"
}
]
},
{
"key": "semrush",
"target": [
{
"kind": "DOMAIN",
"domain": "semrush.com",
"includeSubdomains": false,
"searchFilter": "include"
}
]
}
],
"language": "en",
"market": "US",
"platform": "google"
}Response example
Example response envelope from the documented SEO API contract.
{
"code": 0,
"cost": "-1",
"data": {
"callId": "synthetic-call",
"completedAt": null,
"coverage": {
"missing": [
{
"field": "synthetic",
"reason": "UPSTREAM_FIELD_MISSING"
}
],
"status": "PARTIAL"
},
"requestedAt": "123",
"result": {
"context": {
"domainSearchScope": "synthetic",
"groups": [
{
"inputTargets": [],
"key": "synthetic",
"normalizedTargets": []
}
],
"keywordSearchScope": "synthetic",
"platform": "synthetic",
"unsupportedDimensions": [
"synthetic"
]
},
"groups": [
{
"key": "synthetic",
"metrics": {
"brandCategories": [
{
"counts": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
},
"value": "synthetic"
}
],
"brands": [
{
"counts": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
},
"value": "synthetic"
}
],
"searchResultDomains": [
{
"counts": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
},
"domain": "synthetic"
}
],
"sourceDomains": [
{
"counts": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
},
"domain": "synthetic"
}
],
"total": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
}
},
"missing": [
{
"field": "synthetic",
"reason": "synthetic"
}
]
}
],
"language": "synthetic",
"market": "synthetic",
"missing": [
{
"field": "synthetic",
"reason": "synthetic"
}
],
"returnedCount": 1,
"sourceKind": "synthetic",
"sourceProduct": "synthetic",
"truncated": false,
"unionMetrics": {
"brandCategories": [
{
"counts": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
},
"value": "synthetic"
}
],
"brands": [
{
"counts": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
},
"value": "synthetic"
}
],
"searchResultDomains": [
{
"counts": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
},
"domain": "synthetic"
}
],
"sourceDomains": [
{
"counts": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
},
"domain": "synthetic"
}
],
"total": {
"aiSearchVolume": 9007199254740992,
"mentions": 9007199254740992
}
}
},
"schemaVersion": "synthetic",
"source": "synthetic",
"status": "PARTIAL",
"usage": {
"billingStatus": "UNAPPROVED",
"chargedCredits": "0"
}
},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": "synthetic-trace",
"ts": "9007199254740993"
}Response fields
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | 0 is a successful envelope; inspect data.status separately. Allowed: 0, 42008, 42009 |
cost | string | required | Elapsed processing milliseconds; not price. -1 for non-web context. |
data | object | required | Data value used by this API operation. |
data.callId | string | null | optional | Call id value used by this API operation. |
data.completedAt | string | integer | null | optional | Completed at value used by this API operation. |
data.coverage | object | optional | Coverage value used by this API operation. |
data.coverage.missing | array | optional | Missing value used by this API operation. |
data.coverage.missing[] | object | required | Item in data coverage missing. |
data.coverage.missing[].field | string | optional | Field value used by this API operation. |
data.coverage.missing[].reason | string | optional | Reason value used by this API operation. |
data.coverage.status | string | optional | Status value used by this API operation. |
data.requestedAt | string | integer | null | optional | Requested at value used by this API operation. |
data.result | object | null | required | Result value used by this API operation. |
data.result.context | object | required | Context value used by this API operation. |
data.result.context.domainSearchScope | string | required | Domain search scope value used by this API operation. Constant: sources |
data.result.context.groups | array | required | Groups value used by this API operation. Minimum items: 2 Maximum items: 10 |
data.result.context.groups[] | object | required | Item in data result context groups. |
data.result.context.groups[].inputTargets | array | required | Input targets value used by this API operation. Minimum items: 1 Maximum items: 10 |
data.result.context.groups[].inputTargets[] | any | required | Item in data result context groups[] inputTargets. |
data.result.context.groups[].key | string | required | Key value used by this API operation. |
data.result.context.groups[].normalizedTargets | array | required | Normalized targets value used by this API operation. Minimum items: 1 Maximum items: 10 |
data.result.context.groups[].normalizedTargets[] | any | required | Item in data result context groups[] normalizedTargets. |
data.result.context.keywordSearchScope | string | required | Keyword search scope value used by this API operation. Constant: answer |
data.result.context.platform | string | required | Platform value used by this API operation. Allowed: google, chat_gpt Default: google |
data.result.context.unsupportedDimensions | array | required | Unsupported dimensions value used by this API operation. Minimum items: 0 Maximum items: 3 |
data.result.context.unsupportedDimensions[] | string | required | Item in data result context unsupportedDimensions. Allowed: searchResultDomains, brands, brandCategories |
data.result.groups | array | required | Groups value used by this API operation. Minimum items: 2 Maximum items: 10 |
data.result.groups[] | object | required | Item in data result groups. |
data.result.groups[].key | string | required | Key value used by this API operation. |
data.result.groups[].metrics | object | required | Metrics value used by this API operation. |
data.result.groups[].metrics.brandCategories | array | null | required | Brand categories value used by this API operation. Minimum items: 0 Maximum items: 10 |
data.result.groups[].metrics.brandCategories[] | object | required | Item in data result groups[] metrics brandCategories. |
data.result.groups[].metrics.brandCategories[].counts | object | required | Counts value used by this API operation. |
data.result.groups[].metrics.brandCategories[].counts.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.brandCategories[].counts.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.brandCategories[].value | string | required | Value value used by this API operation. |
data.result.groups[].metrics.brands | array | null | required | Brands value used by this API operation. Minimum items: 0 Maximum items: 10 |
data.result.groups[].metrics.brands[] | object | required | Item in data result groups[] metrics brands. |
data.result.groups[].metrics.brands[].counts | object | required | Counts value used by this API operation. |
data.result.groups[].metrics.brands[].counts.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.brands[].counts.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.brands[].value | string | required | Value value used by this API operation. |
data.result.groups[].metrics.searchResultDomains | array | null | required | Search result domains value used by this API operation. Minimum items: 0 Maximum items: 10 |
data.result.groups[].metrics.searchResultDomains[] | object | required | Item in data result groups[] metrics searchResultDomains. |
data.result.groups[].metrics.searchResultDomains[].counts | object | required | Counts value used by this API operation. |
data.result.groups[].metrics.searchResultDomains[].counts.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.searchResultDomains[].counts.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.searchResultDomains[].domain | string | required | Domain value used by this API operation. |
data.result.groups[].metrics.sourceDomains | array | null | required | Source domains value used by this API operation. Minimum items: 0 Maximum items: 10 |
data.result.groups[].metrics.sourceDomains[] | object | required | Item in data result groups[] metrics sourceDomains. |
data.result.groups[].metrics.sourceDomains[].counts | object | required | Counts value used by this API operation. |
data.result.groups[].metrics.sourceDomains[].counts.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.sourceDomains[].counts.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.sourceDomains[].domain | string | required | Domain value used by this API operation. |
data.result.groups[].metrics.total | object | required | Total value used by this API operation. |
data.result.groups[].metrics.total.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.groups[].metrics.total.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.groups[].missing | array | required | Missing value used by this API operation. Minimum items: 0 |
data.result.groups[].missing[] | object | required | Item in data result groups[] missing. |
data.result.groups[].missing[].field | string | required | Field value used by this API operation. |
data.result.groups[].missing[].reason | string | required | Reason value used by this API operation. Allowed: UPSTREAM_FIELD_MISSING, UPSTREAM_FIELD_INVALID, DUPLICATE_UPSTREAM_ITEM, UPSTREAM_ITEM_MISSING |
data.result.language | string | required | Language value used by this API operation. Constant: en |
data.result.market | string | required | Market value used by this API operation. Constant: US |
data.result.missing | array | required | Missing value used by this API operation. Minimum items: 0 |
data.result.missing[] | object | required | Item in data result missing. |
data.result.missing[].field | string | required | Field value used by this API operation. |
data.result.missing[].reason | string | required | Reason value used by this API operation. Allowed: UPSTREAM_FIELD_MISSING, UPSTREAM_FIELD_INVALID, DUPLICATE_UPSTREAM_ITEM, UPSTREAM_ITEM_MISSING |
data.result.returnedCount | integer | required | Returned count value used by this API operation. Minimum: 0 |
data.result.sourceKind | string | required | Source kind value used by this API operation. Constant: llm_mentions_database |
data.result.sourceProduct | string | required | Source product value used by this API operation. Constant: ai_optimization |
data.result.truncated | boolean | required | Truncated value used by this API operation. |
data.result.unionMetrics | object | required | Union metrics value used by this API operation. |
data.result.unionMetrics.brandCategories | array | null | required | Brand categories value used by this API operation. Minimum items: 0 Maximum items: 10 |
data.result.unionMetrics.brandCategories[] | object | required | Item in data result unionMetrics brandCategories. |
data.result.unionMetrics.brandCategories[].counts | object | required | Counts value used by this API operation. |
data.result.unionMetrics.brandCategories[].counts.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.unionMetrics.brandCategories[].counts.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.unionMetrics.brandCategories[].value | string | required | Value value used by this API operation. |
data.result.unionMetrics.brands | array | null | required | Brands value used by this API operation. Minimum items: 0 Maximum items: 10 |
data.result.unionMetrics.brands[] | object | required | Item in data result unionMetrics brands. |
data.result.unionMetrics.brands[].counts | object | required | Counts value used by this API operation. |
data.result.unionMetrics.brands[].counts.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.unionMetrics.brands[].counts.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.unionMetrics.brands[].value | string | required | Value value used by this API operation. |
data.result.unionMetrics.searchResultDomains | array | null | required | Search result domains value used by this API operation. Minimum items: 0 Maximum items: 10 |
data.result.unionMetrics.searchResultDomains[] | object | required | Item in data result unionMetrics searchResultDomains. |
data.result.unionMetrics.searchResultDomains[].counts | object | required | Counts value used by this API operation. |
data.result.unionMetrics.searchResultDomains[].counts.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.unionMetrics.searchResultDomains[].counts.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.unionMetrics.searchResultDomains[].domain | string | required | Domain value used by this API operation. |
data.result.unionMetrics.sourceDomains | array | null | required | Source domains value used by this API operation. Minimum items: 0 Maximum items: 10 |
data.result.unionMetrics.sourceDomains[] | object | required | Item in data result unionMetrics sourceDomains. |
data.result.unionMetrics.sourceDomains[].counts | object | required | Counts value used by this API operation. |
data.result.unionMetrics.sourceDomains[].counts.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.unionMetrics.sourceDomains[].counts.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.result.unionMetrics.sourceDomains[].domain | string | required | Domain value used by this API operation. |
data.result.unionMetrics.total | object | required | Total value used by this API operation. |
data.result.unionMetrics.total.aiSearchVolume | integer | null | required | Ai search volume value used by this API operation. Minimum: 0 |
data.result.unionMetrics.total.mentions | integer | null | required | Mentions value used by this API operation. Minimum: 0 |
data.schemaVersion | string | null | optional | Schema version value used by this API operation. |
data.source | string | null | optional | Source value used by this API operation. |
data.status | string | optional | Status value used by this API operation. Allowed: SUCCESS, PARTIAL, EMPTY, PROCESSING, UNKNOWN, FAILED |
data.usage | object | null | optional | Usage value used by this API operation. |
data.usage.billingStatus | string | null | optional | Billing status value used by this API operation. |
data.usage.chargedCredits | string | integer | null | optional | Charged credits value used by this API operation. |
msg | string | null | required | Available upstream msg/errmsg/message is preferred for success and failure; Chinese is translated to English. Missing successful message is null. Platform-only errors and task states use platform English. Message text never determines success or retry. |
time | string | required | yyyy-MM-dd HH:mm:ss |
traceId | string | null | required | Trace id value used by this API operation. |
ts | string | required | Epoch milliseconds; global long serializer. |
One of option 1 — requires kind, domain, searchFilter, includeSubdomains
| Name | Type | Required | Description |
|---|---|---|---|
data.result.context.groups[].inputTargets[] | object | required | Item in data result context groups[] inputTargets. |
data.result.context.groups[].inputTargets[].domain | string | required | Normalized ASCII hostname at most63 characters. Minimum length: 1 |
data.result.context.groups[].inputTargets[].includeSubdomains | boolean | required | Include subdomains value used by this API operation. Default: false |
data.result.context.groups[].inputTargets[].kind | string | required | Kind value used by this API operation. Constant: DOMAIN |
data.result.context.groups[].inputTargets[].searchFilter | string | required | Search filter value used by this API operation. Allowed: include, exclude Default: include |
One of option 2 — requires kind, keyword, searchFilter, matchType
| Name | Type | Required | Description |
|---|---|---|---|
data.result.context.groups[].inputTargets[] | object | required | Item in data result context groups[] inputTargets. |
data.result.context.groups[].inputTargets[].keyword | string | required | Trim/NFC/lowercase1..80 code points,max10 words,no ASCII percent or plus. Minimum length: 1 |
data.result.context.groups[].inputTargets[].kind | string | required | Kind value used by this API operation. Constant: KEYWORD |
data.result.context.groups[].inputTargets[].matchType | string | required | Match type value used by this API operation. Allowed: word_match, partial_match Default: word_match |
data.result.context.groups[].inputTargets[].searchFilter | string | required | Search filter value used by this API operation. Allowed: include, exclude Default: include |
One of option 1 — requires kind, domain, searchFilter, includeSubdomains
| Name | Type | Required | Description |
|---|---|---|---|
data.result.context.groups[].normalizedTargets[] | object | required | Item in data result context groups[] normalizedTargets. |
data.result.context.groups[].normalizedTargets[].domain | string | required | Normalized ASCII hostname at most63 characters. Minimum length: 1 |
data.result.context.groups[].normalizedTargets[].includeSubdomains | boolean | required | Include subdomains value used by this API operation. Default: false |
data.result.context.groups[].normalizedTargets[].kind | string | required | Kind value used by this API operation. Constant: DOMAIN |
data.result.context.groups[].normalizedTargets[].searchFilter | string | required | Search filter value used by this API operation. Allowed: include, exclude Default: include |
One of option 2 — requires kind, keyword, searchFilter, matchType
| Name | Type | Required | Description |
|---|---|---|---|
data.result.context.groups[].normalizedTargets[] | object | required | Item in data result context groups[] normalizedTargets. |
data.result.context.groups[].normalizedTargets[].keyword | string | required | Trim/NFC/lowercase1..80 code points,max10 words,no ASCII percent or plus. Minimum length: 1 |
data.result.context.groups[].normalizedTargets[].kind | string | required | Kind value used by this API operation. Constant: KEYWORD |
data.result.context.groups[].normalizedTargets[].matchType | string | required | Match type value used by this API operation. Allowed: word_match, partial_match Default: word_match |
data.result.context.groups[].normalizedTargets[].searchFilter | string | required | Search filter value used by this API operation. Allowed: include, exclude Default: include |
Accepted processing response
code 0 confirms acceptance. Use data.callId to query the same request; processing is not completion.
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | 0 is a successful envelope; inspect data.status separately. Constant: 0 |
cost | string | required | Elapsed processing milliseconds; not price. -1 for non-web context. |
data | object | required | Data value used by this API operation. |
data.callId | string | null | required | Call id value used by this API operation. |
data.reason | string | required | Reason value used by this API operation. Constant: IN_PROGRESS |
data.retryable | boolean | optional | Retryable value used by this API operation. |
data.status | string | required | Status value used by this API operation. Constant: PROCESSING |
data.taskId | string | null | optional | Task id value used by this API operation. |
msg | string | null | required | Available upstream msg/errmsg/message is preferred for success and failure; Chinese is translated to English. Missing successful message is null. Platform-only errors and task states use platform English. Message text never determines success or retry. |
time | string | required | yyyy-MM-dd HH:mm:ss |
traceId | string | null | required | Trace id value used by this API operation. |
ts | string | required | Epoch milliseconds; global long serializer. |
Error response
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | 0 is a successful envelope; inspect data.status separately. |
cost | string | required | Elapsed processing milliseconds; not price. -1 for non-web context. |
data | object | required | Data value used by this API operation. |
data.callId | string | null | required | Call id value used by this API operation. |
data.reason | string | null | required | Reason value used by this API operation. |
data.retryable | boolean | optional | Retryable value used by this API operation. |
data.status | string | null | required | Status value used by this API operation. |
data.taskId | string | null | optional | Task id value used by this API operation. |
msg | string | null | required | Available upstream msg/errmsg/message is preferred for success and failure; Chinese is translated to English. Missing successful message is null. Platform-only errors and task states use platform English. Message text never determines success or retry. |
time | string | required | yyyy-MM-dd HH:mm:ss |
traceId | string | null | required | Trace id value used by this API operation. |
ts | string | required | Epoch milliseconds; global long serializer. |
Retrieve a processing result
A response with PROCESSING and a callId means the result is still being prepared. Use the result query below with the returned identifier. This lookup reads the stored result and does not spend credits.
curl -X GET https://api.nexscope.ai/seo/aiTargetComparison/calls/{callId} \
-H "Authorization: Bearer nk-xxxxxxxxxxxxxxxxx"Responses
| Code | Description |
|---|---|
| 200 | HTTP request completed. Check JSON code; only 0 indicates business success or acceptance. |
| 400 | Request JSON or required API parameters are invalid. |
| 401 | API key is missing, invalid, or cannot be matched to a user. |
| 5xx | API execution or upstream service failed. |
Data source, freshness, and limitations
Source, freshness, coverage, rate limits, and estimation notes are not specified in this API definition unless they appear in the request or response field documentation above. Do not assume official marketplace data or real-time freshness when it is not explicitly documented.