API Reference

Anovox Public API

Read your workspace's AI-visibility data programmatically. Every endpoint is scoped to the workspace that owns the API key used to authenticate — never another tenant's data. Rate limit: 300 requests/hour per endpoint, per workspace.

Authentication

curl https://anovoxlabs.com/api/v1/scores \
  -H "Authorization: Bearer <your-workspace-api-key>"

Generate a key in Settings → API keys. Every endpoint is scoped to the workspace that owns the key — you will never see another tenant's data. Rate limit: 300 requests/hour per endpoint, per workspace.

GET/api/v1/scores

Daily Share of Voice scores

Last 180 days of scores_daily rows for this workspace, one row per engine per day.

Response

{
  "type": "object",
  "properties": {
    "scores": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "engine": {
            "type": "string"
          },
          "citations": {
            "type": "integer"
          },
          "total_runs": {
            "type": "integer"
          },
          "sov": {
            "type": "number"
          }
        }
      }
    }
  }
}
GET/api/v1/prompts

Tracked prompts

Up to 500 prompts tracked by this workspace, most recent first.

Response

{
  "type": "object",
  "properties": {
    "prompts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "text": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  }
}
GET/api/v1/actions

Recommended actions

The workspace's gap list — every AI-visibility fix, ranked by Aim's impact score where available.

Query parameters

NameTypeDescription
status"open" | "in_progress" | "done" | "dismissed"Filter to one status.

Response

{
  "type": "object",
  "properties": {
    "actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "prompt_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "recommendation": {
            "type": "string"
          },
          "priority": {
            "type": "string",
            "enum": [
              "high",
              "medium",
              "low"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "in_progress",
              "done",
              "dismissed"
            ]
          },
          "impact_score": {
            "type": "number",
            "nullable": true
          },
          "sov_baseline": {
            "type": "number",
            "nullable": true
          },
          "sov_result": {
            "type": "number",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  }
}
GET/api/v1/agent-hits

AI crawler traffic

Up to 500 recent Agent Analytics hits (verified/spoofed/unverified — see the verification field), most recent first.

Response

{
  "type": "object",
  "properties": {
    "hits": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "bot_name": {
            "type": "string"
          },
          "bot_company": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "enum": [
              "crawler",
              "search",
              "user"
            ]
          },
          "path": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "nullable": true
          },
          "verification": {
            "type": "string",
            "enum": [
              "verified",
              "spoofed",
              "unverified"
            ]
          },
          "hit_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  }
}
GET/api/v1/detections

Citation detections

Whether the brand/each competitor was cited, per run. Scope to one prompt with ?prompt_id=, or omit it for the workspace's most recent 200 runs across all prompts.

Query parameters

NameTypeDescription
prompt_idstring<uuid>

Response

{
  "type": "object",
  "properties": {
    "detections": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "run_id": {
            "type": "string",
            "format": "uuid"
          },
          "subject_type": {
            "type": "string",
            "enum": [
              "brand",
              "competitor"
            ]
          },
          "subject_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "cited": {
            "type": "boolean"
          },
          "position": {
            "type": "integer",
            "nullable": true
          },
          "sentiment": {
            "type": "string",
            "nullable": true
          },
          "engine": {
            "type": "string"
          },
          "run_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  }
}

MCP Server

Ask Claude or ChatGPT about your own AI visibility

Anovox ships a Model Context Protocol server (mcp-server/ in the repo) that exposes this same API as MCP tools — get_scores, get_prompts, get_actions, get_agent_hits, and get_detections — so an AI assistant can query your workspace's visibility data directly inside a conversation.

{
  "mcpServers": {
    "anovox": {
      "command": "node",
      "args": ["path/to/anovox/mcp-server/index.js"],
      "env": { "ANOVOX_API_KEY": "<your-workspace-api-key>" }
    }
  }
}

Add that block to your MCP client's config (Claude Desktop, etc.) and point it at your checked-out copy of the server. See mcp-server/README.md for setup.