API Reference

Get Opportunity

Return one Rankhog opportunity with public-safe evidence, blocker remediation, timing, outcome, and linked action summary. Cache policy: live. Idempotency: none. Auth modes: api_key, mcp_oauth, session_bearer.

POST
/agent/v1/opportunities/get

Return one Rankhog opportunity with public-safe evidence, blocker remediation, timing, outcome, and linked action summary. 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

application/json

application/json

curl -X POST "https://example.com/agent/v1/opportunities/get" \  -H "Content-Type: application/json" \  -d '{    "managedRedditAccountId": "mra_2x9rnkhdemo",    "organizationId": "org_2x9rnkhdemo",    "websiteId": "site_2x9rnkhdemo",    "opportunityId": "opp_2x9opportunity"  }'
{  "blocker": {    "code": "reddit_context_unavailable",    "message": "Reddit evidence was found, but live context is not verified.",    "remediation": "Retry thread capture before generating a comment."  },  "certainty": "medium",  "confidenceScore": 82,  "evidence": {    "googlePosition": 1  },  "evidenceSummary": {    "googleRank": 1,    "sourceCount": 1  },  "id": "opp_2x9opportunity",  "kind": "reddit_comment",  "linkedAction": null,  "outcome": null,  "nextTransitionAt": "2026-06-17T12:00:00.000Z",  "recommendedAction": "Capture the thread, then generate a useful comment.",  "source": {    "key": "google-scan:signal_123",    "label": "Google #1"  },  "status": "blocked",  "summary": "A ranked Reddit discussion is ready for context capture.",  "target": {    "keyword": "Next.js SaaS support",    "subreddit": "SaaS",    "url": "https://www.reddit.com/r/SaaS/comments/example/thread/"  },  "timing": {    "dueAt": "2026-06-17T12:00:00.000Z",    "expiresAt": null,    "snoozedUntil": null  },  "title": "Comment on the Reddit result at Google #1",  "timeZone": "Europe/Paris",  "updatedAt": "2026-06-17T12:00:00.000Z"}
{  "error": {    "code": "agentic_invalid_input",    "details": {      "issues": [        {          "code": "invalid_type",          "message": "Expected string, received undefined.",          "path": [            "organizationId"          ]        }      ]    },    "message": "Request body did not match the agentic capability schema."  }}

{  "error": {    "code": "agentic_unauthorized",    "message": "Authenticate before using Rankhog agentic capabilities."  }}

{  "error": {    "code": "agentic_paid_plan_required",    "details": {      "managedAccountBillingStatus": "active",      "subscriptionStatus": "past_due"    },    "message": "Rankhog agentic capabilities are available only for active or trialing paid workspaces."  }}

{  "error": {    "code": "agentic_missing_scope",    "details": {      "missingScopes": [        "rankhog:read"      ]    },    "message": "Missing required OAuth scope: rankhog:read."  }}

{  "error": {    "code": "agentic_managed_account_not_found",    "message": "Managed Reddit account not found."  }}

{  "error": {    "code": "agentic_internal_error",    "message": "Rankhog could not complete this agentic request."  }}