JEV
JEV Evaluate API
Evaluate authorized content using seven presets or custom state and typed questions. Submitted fields are sent to TypeSafe for evaluation. Requires an active Nexscope subscription. Each route or evaluate call deducts 1 Nexscope credit; any selected data API retains its existing billing. Route and evaluate share limits of 20 requests per user per minute, 200 requests globally per minute, and 5,000 requests globally per rolling day; each route or evaluate call counts as one request.
nexscope_jev_evaluatehttps://api.nexscope.ai/mcptools/callAuthentication
Use OAuth 2.1 Authorization Code with PKCE and the mcp:tools scope. API keys remain supported as a compatibility option.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication fails, ask the user to open API Access and copy a valid key.
Call this MCP tool
Initialize an MCP 2025-11-25 Streamable HTTP session at https://api.nexscope.ai/mcp, then use tools/call.
{
"jsonrpc": "2.0",
"id": "jev-evaluate-1",
"method": "tools/call",
"params": {
"name": "nexscope_jev_evaluate",
"arguments": {
"input": {
"content": "Never share passwords. Contact customer support through the official website."
},
"useCase": "response_guardrails"
}
}
}MCP 2025-11-25 · Streamable HTTPProgress is delivered on the original POST SSE response. GET SSE carries notifications; reconnecting must query existing asynchronous work rather than submit again.
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
input | object | optional | Fields depend on the selected preset; see the mode schemas below. |
questions | object | optional | Required in custom mode. 1–32 independent questions, keyed by caller-defined IDs. |
state | string | object | array | optional | Required in custom mode. Non-empty context shared by every question; supplied data is sent to TypeSafe. Minimum length: 1 Minimum items: 1 |
useCase | string | optional | Required with input in preset mode. One of seven server-owned presets. Allowed: response_guardrails, ip_risk_triage, seo_relevance, evidence_check, keyword_business_relevance, keyword_cluster_fit, amazon_keyword_product_fit |
Preset mode
response_guardrails
| Name | Type | Required | Description |
|---|---|---|---|
input | object | optional | Checks credential_exposure, harmful_instruction, deceptive_claim, instruction_override, and severity. The fixed server policy maps the checks to pass, review, or block. |
input.content | string | required | Authorized response or draft content. Minimum length: 1 Maximum length: 6000 |
useCase | string | optional | Required with input in preset mode. One of seven server-owned presets. Constant: response_guardrails |
ip_risk_triage
| Name | Type | Required | Description |
|---|---|---|---|
input | object | optional | Checks trademark, copyright, patent, other IP, and insufficient-context signals plus risk type and severity. The result always requires human review and is not legal clearance. |
input.text | string | required | Authorized product or description text for advisory IP-risk triage. Minimum length: 1 Maximum length: 4000 |
useCase | string | optional | Required with input in preset mode. One of seven server-owned presets. Constant: ip_risk_triage |
seo_relevance
| Name | Type | Required | Description |
|---|---|---|---|
input | object | optional | Requires query and at least one supplied title, metaDescription, or contentExcerpt. Scores relevance only; it does not predict rankings, traffic, search volume, or intent data. |
input.contentExcerpt | string | optional | Content excerpt value used by this API operation. Minimum length: 1 Maximum length: 4000 |
input.metaDescription | string | optional | Meta description value used by this API operation. Minimum length: 1 Maximum length: 1000 |
input.query | string | required | Query value used by this API operation. Minimum length: 1 Maximum length: 500 |
input.title | string | optional | Title value used by this API operation. Minimum length: 1 Maximum length: 300 |
useCase | string | optional | Required with input in preset mode. One of seven server-owned presets. Constant: seo_relevance |
Any of option 1 — requires title
| Name | Type | Required | Description |
|---|---|---|---|
input | any | optional | Required with useCase in preset mode. Strict preset-specific input. Keyword presets accept only bounded keyword, candidate, SERP-evidence, and product-fact fields. |
Any of option 2 — requires metaDescription
| Name | Type | Required | Description |
|---|---|---|---|
input | any | optional | Required with useCase in preset mode. Strict preset-specific input. Keyword presets accept only bounded keyword, candidate, SERP-evidence, and product-fact fields. |
Any of option 3 — requires contentExcerpt
| Name | Type | Required | Description |
|---|---|---|---|
input | any | optional | Required with useCase in preset mode. Strict preset-specific input. Keyword presets accept only bounded keyword, candidate, SERP-evidence, and product-fact fields. |
evidence_check
| Name | Type | Required | Description |
|---|---|---|---|
input | object | optional | Assesses the claim only against sourceText. If supplied quote is absent after whitespace normalization, the server returns deterministic quote_not_found without a model call. |
input.claim | string | required | Claim value used by this API operation. Minimum length: 1 Maximum length: 1000 |
input.quote | string | optional | Optional quote that must occur in sourceText after whitespace normalization. Minimum length: 1 Maximum length: 1000 |
input.sourceText | string | required | Source text value used by this API operation. Minimum length: 1 Maximum length: 6000 |
useCase | string | optional | Required with input in preset mode. One of seven server-owned presets. Constant: evidence_check |
keyword_business_relevance
| Name | Type | Required | Description |
|---|---|---|---|
input | object | optional | Required with useCase in preset mode. Strict preset-specific input. Keyword presets accept only bounded keyword, candidate, SERP-evidence, and product-fact fields. |
input.businessDescription | string | required | Business description value used by this API operation. Minimum length: 1 Maximum length: 4000 |
input.exclusions | array | required | Exclusions value used by this API operation. Maximum items: 50 |
input.exclusions[] | string | required | Item in input exclusions. Minimum length: 1 Maximum length: 200 |
input.keywords | array | required | Keywords value used by this API operation. Minimum items: 1 Maximum items: 10 |
input.keywords[] | object | required | Item in input keywords. |
input.keywords[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
input.keywords[].keyword | string | required | Keyword value used by this API operation. Minimum length: 1 Maximum length: 500 |
input.serpEvidence | array | optional | Serp evidence value used by this API operation. Maximum items: 30 |
input.serpEvidence[] | object | required | Item in input serpEvidence. |
input.serpEvidence[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
input.serpEvidence[].keywordId | string | required | Keyword id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
input.serpEvidence[].source | string | required | Source value used by this API operation. Minimum length: 1 Maximum length: 200 |
input.serpEvidence[].text | string | required | Text value used by this API operation. Minimum length: 1 Maximum length: 2000 |
useCase | string | optional | Required with input in preset mode. One of seven server-owned presets. Constant: keyword_business_relevance |
keyword_cluster_fit
| Name | Type | Required | Description |
|---|---|---|---|
input | object | optional | Required with useCase in preset mode. Strict preset-specific input. Keyword presets accept only bounded keyword, candidate, SERP-evidence, and product-fact fields. |
input.candidates | array | required | Candidates value used by this API operation. Minimum items: 1 Maximum items: 5 |
input.candidates[] | object | required | Item in input candidates. |
input.candidates[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
input.candidates[].keyword | string | required | Keyword value used by this API operation. Minimum length: 1 Maximum length: 500 |
input.keywords | array | required | Keywords value used by this API operation. Minimum items: 1 Maximum items: 10 |
input.keywords[] | object | required | Item in input keywords. |
input.keywords[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
input.keywords[].keyword | string | required | Keyword value used by this API operation. Minimum length: 1 Maximum length: 500 |
useCase | string | optional | Required with input in preset mode. One of seven server-owned presets. Constant: keyword_cluster_fit |
amazon_keyword_product_fit
| Name | Type | Required | Description |
|---|---|---|---|
input | object | optional | Required with useCase in preset mode. Strict preset-specific input. Keyword presets accept only bounded keyword, candidate, SERP-evidence, and product-fact fields. |
input.keywords | array | required | Keywords value used by this API operation. Minimum items: 1 Maximum items: 10 |
input.keywords[] | object | required | Item in input keywords. |
input.keywords[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
input.keywords[].keyword | string | required | Keyword value used by this API operation. Minimum length: 1 Maximum length: 500 |
input.marketplace | string | required | Marketplace value used by this API operation. Allowed: US, UK, DE, FR, JP, CA, IT, ES, MX, IN |
input.productFacts | array | required | Product facts value used by this API operation. Minimum items: 1 Maximum items: 30 |
input.productFacts[] | object | required | Item in input productFacts. |
input.productFacts[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
input.productFacts[].source | string | required | Source value used by this API operation. Allowed: title, bullet, attribute, description |
input.productFacts[].value | string | required | Value value used by this API operation. Minimum length: 1 Maximum length: 2000 |
useCase | string | optional | Required with input in preset mode. One of seven server-owned presets. Constant: amazon_keyword_product_fit |
Custom mode
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | Zero on success; non-zero for validation, access, quota, or availability errors. |
data | object | required | Fixed server policies cover response safety, IP triage, SEO relevance, evidence checks, business-keyword relevance, keyword same-page clustering, and Amazon product-keyword fit. Keyword presets return bounded rows keyed only by caller-supplied IDs. |
data.checks | object | required | Empty in custom mode; answers are in result.answers. Fixed Noul, Score, or Choice checks for the preset: response risks and severity; IP signals, risk_type, severity, and insufficient_context; supplied SEO dimensions; or evidence verdict. Deterministic quote_not_found returns an empty object. |
data.decision | string | required | Presets return pass/review/block. Custom mode returns evaluated, which means answers are available, not that an action is approved. Allowed: pass, review, block, evaluated |
data.model | string | null | required | Resolved model version, or null for deterministic quote_not_found. |
data.policyVersion | string | required | jev-evaluation-v1 for original presets; jev-keyword-tools-v1 for keyword presets; jev-custom-v1 for custom questions. |
data.reasonCodes | array | required | Fixed reason codes without submitted text. |
data.reasonCodes[] | string | required | Fixed reason codes without submitted text. |
data.result | object | required | Preset-specific bounded result. Keyword presets return result.rows with caller-supplied IDs, fixed labels, confidence, and fixed reason or evidence references. |
data.result.answers | object | optional | Custom mode only. Answers keyed by question ID: noul returns {type, noul}; choice returns {type, choice, confidence, probabilities}; score returns {type, score, confidence, probabilities, legend}. No automatic policy or token usage is returned. |
data.result.rows | array | optional | Rows value used by this API operation. Maximum items: 10 |
data.result.rows[] | any | required | Item in data result rows. |
data.useCase | string | required | Use case value used by this API operation. Allowed: response_guardrails, ip_risk_triage, seo_relevance, evidence_check, keyword_business_relevance, keyword_cluster_fit, amazon_keyword_product_fit, custom |
msg | string | required | Response message. |
Business relevance row
| Name | Type | Required | Description |
|---|---|---|---|
data.result.rows[] | object | required | Item in data result rows. |
data.result.rows[].confidence | number | required | Confidence value used by this API operation. Minimum: 0 Maximum: 1 |
data.result.rows[].evidenceRefs | array | required | Evidence refs value used by this API operation. |
data.result.rows[].evidenceRefs[] | string | required | Item in data result rows[] evidenceRefs. |
data.result.rows[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
data.result.rows[].label | string | required | Label value used by this API operation. Allowed: relevant, irrelevant, uncertain |
data.result.rows[].reasonCodes | array | required | Reason codes value used by this API operation. |
data.result.rows[].reasonCodes[] | string | required | Item in data result rows[] reasonCodes. |
Keyword cluster fit row
| Name | Type | Required | Description |
|---|---|---|---|
data.result.rows[] | object | required | Item in data result rows. |
data.result.rows[].candidateId | string | null | required | Candidate id value used by this API operation. |
data.result.rows[].confidence | number | required | Confidence value used by this API operation. Minimum: 0 Maximum: 1 |
data.result.rows[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
data.result.rows[].label | string | required | Label value used by this API operation. Allowed: same_page, separate_page, uncertain |
data.result.rows[].reasonCodes | array | required | Reason codes value used by this API operation. |
data.result.rows[].reasonCodes[] | string | required | Item in data result rows[] reasonCodes. |
data.result.rows[].samePage | boolean | required | Same page value used by this API operation. |
data.result.rows[].sameTopic | boolean | required | Same topic value used by this API operation. |
Amazon keyword product fit row
| Name | Type | Required | Description |
|---|---|---|---|
data.result.rows[] | object | required | Item in data result rows. |
data.result.rows[].confidence | number | required | Confidence value used by this API operation. Minimum: 0 Maximum: 1 |
data.result.rows[].evidenceRefs | array | required | Evidence refs value used by this API operation. |
data.result.rows[].evidenceRefs[] | string | required | Item in data result rows[] evidenceRefs. |
data.result.rows[].id | string | required | Id value used by this API operation. Pattern: ^[A-Za-z0-9_-]{1,64}$ |
data.result.rows[].label | string | required | Label value used by this API operation. Allowed: match, partial, conflict, unknown |
data.result.rows[].reasonCodes | array | required | Reason codes value used by this API operation. |
data.result.rows[].reasonCodes[] | string | required | Item in data result rows[] reasonCodes. |
Examples
Example arguments
{
"input": {
"content": "Never share passwords. Contact customer support through the official website."
},
"useCase": "response_guardrails"
}Example structuredContent
{
"code": 0,
"data": {
"checks": {},
"decision": "pass",
"model": "<resolved model>",
"policyVersion": "jev-evaluation-v1",
"reasonCodes": [
"no_rule_triggered"
],
"result": {},
"useCase": "response_guardrails"
},
"msg": "success"
}