API Reference

Get a Discovery scan

Read saved Discovery searches, observed result positions and resulting opportunities. Historical scans may contain only partial evidence.

POST
/agent/v1/growth/get-discovery-scan

Read saved Discovery searches, observed result positions and resulting opportunities. Historical scans may contain only partial evidence. Positions are provider placement, not independently verified Google rankings. Cache policy: live. Idempotency: none. Auth modes: api_key, mcp_oauth, session_bearer.

Authorization

AuthorizationBearer <token>

Rankhog organization API key sent as Authorization: Bearer rhog_....

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/agent/v1/growth/get-discovery-scan" \  -H "Content-Type: application/json" \  -d '{    "organizationId": "org_demo",    "websiteId": "site_demo",    "scanId": "scan_demo"  }'
{  "scan": {    "id": "scan_demo",    "outcome": "empty",    "trigger": "scheduled",    "scheduledFor": "2026-09-16T13:00:00Z",    "startedAt": null,    "finishedAt": null  },  "searches": [],  "candidates": [],  "opportunities": []}
{  "error": {    "code": "agentic_invalid_input",    "message": "Invalid capability input."  }}
{  "error": {    "code": "agentic_unauthorized",    "message": "Authentication is required."  }}
{  "error": {    "code": "agentic_missing_scope",    "message": "The required permission has not been granted."  }}

{  "error": {    "code": "agentic_website_not_found",    "message": "Product not found."  }}