AvroGrow

Developers

Unlimited API and free MCP

Plug AvroGrow into apps and agents without a paid plan. Unlimited applies to free-safe reads under fair use. Live ranking and AI scans stay in the product under paid entitlements and server cost caps — free keys do not run unlimited live crawls.

Authentication

Mint a key in Settings → API keys. Send it as Authorization: Bearer ag_… or X-AvroGrow-Key: ag_…. For MCP clients, set AVROGROW_API_KEY or the equivalent header field. Up to 5 active keys per workspace.

curl -s "https://www.avroapps.com/api/v1/me" \
  -H "Authorization: Bearer ag_YOUR_KEY"

curl -s "https://www.avroapps.com/api/v1/report/preview?domain=northline.studio" \
  -H "X-AvroGrow-Key: ag_YOUR_KEY"

HTTP endpoints

Base URL: https://www.avroapps.com. All authenticated routes count toward the per-key and per-IP rate limits documented at the bottom of this page.

GET

/api/v1/health

Public. Liveness check and free-API capability flags.

  • No API key required.
  • Use this to confirm the service is up before wiring agents or cron jobs.
  • Returns boolean flags for freeApi, freeMcp, and liveScanViaApi (always false for free keys).

Example request

curl -s "https://www.avroapps.com/api/v1/health"

Example response

{
  "ok": true,
  "freeApi": true,
  "freeMcp": true,
  "liveScanViaApi": false
}
GET

/api/v1/me

API key required. Authenticated account, workspace, plan, key metadata, and entitlements.

  • Requires Authorization: Bearer ag_… or X-AvroGrow-Key: ag_…
  • Returns userId, email, workspaceId, planId/planName, and the calling key’s id/prefix/createdAt.
  • entitlements.freeApi / freeMcp are true; liveScanViaApi is false — free keys never trigger live crawls.
  • Useful first call after minting a key to confirm the key and workspace binding.

Example request

curl -s "https://www.avroapps.com/api/v1/me" \
  -H "Authorization: Bearer ag_YOUR_KEY"

Example response

{
  "userId": "…",
  "email": "you@company.com",
  "workspaceId": "…",
  "workspaceName": "Acme",
  "planId": "free",
  "planName": "Free",
  "key": { "id": "…", "name": "Cursor", "prefix": "ag_abcd", "createdAt": "…" },
  "entitlements": {
    "freeApi": true,
    "freeMcp": true,
    "liveScanViaApi": false,
    "note": "Free API and MCP cover account metadata, sample/fixture report previews, and already-stored project data you own…"
  }
}
GET

/api/v1/report/preview

API key required. Sample or fixture visibility preview for a domain — never a live crawl.

  • Requires an API key.
  • Query param domain is required for a meaningful preview (falls back to a placeholder if omitted).
  • Fixture domains (for example northline.studio) return the labeled demo report; other domains return a generic sample shaped like the free public check.
  • live is always false. This endpoint does not call paid search or AI providers.
  • Use this to prototype agents and UIs. For live refresh, use a paid AvroGrow workspace in the product UI.

Query parameters

  • domain (required) — Hostname like northline.studio or example.com (no protocol required).

Example request

curl -s "https://www.avroapps.com/api/v1/report/preview?domain=northline.studio" \
  -H "X-AvroGrow-Key: ag_YOUR_KEY"

Example response

{
  "domain": "northline.studio",
  "origin": "fixture",
  "live": false,
  "notice": "Sample/fixture preview only. Free API keys do not run live crawls…",
  "report": { "brand": "northline.studio", "…": "…" }
}
GET

/api/v1/projects

API key required. List projects owned by the API key’s workspace.

  • Requires an API key.
  • Returns only projects in the authenticated workspace — never other customers’ sites.
  • Each item includes id, domain, name, locationCode, createdAt, and updatedAt.
  • Stored metadata only; listing projects does not refresh rankings or AI visibility.

Example request

curl -s "https://www.avroapps.com/api/v1/projects" \
  -H "Authorization: Bearer ag_YOUR_KEY"

Example response

{
  "projects": [
    {
      "id": "…",
      "domain": "example.com",
      "name": "example.com",
      "locationCode": 2840,
      "createdAt": "…",
      "updatedAt": "…"
    }
  ]
}
GET

/api/v1/projects/{projectId}

API key required. Stored summary for one owned project.

  • Requires an API key.
  • projectId must belong to the authenticated workspace; otherwise 404.
  • Returns project identity plus stored snapshot metadata: hasSnapshot, snapshotFetchedAt, trackedKeywords, growthTasks, and optional estimatedTraffic / visibilityScore when already saved.
  • Does not trigger a live scan. If no snapshot exists yet, stored.hasSnapshot is false and metric fields may be null.

Example request

curl -s "https://www.avroapps.com/api/v1/projects/PROJECT_UUID" \
  -H "Authorization: Bearer ag_YOUR_KEY"

Example response

{
  "project": { "id": "…", "domain": "example.com", "name": "example.com", "locationCode": 2840 },
  "stored": {
    "hasSnapshot": true,
    "snapshotFetchedAt": "…",
    "trackedKeywords": 42,
    "growthTasks": 7,
    "estimatedTraffic": 1200,
    "visibilityScore": null
  },
  "notice": "Stored project metadata only. This endpoint does not trigger a live scan."
}
POST

/api/mcp

API key required. Hosted Streamable HTTP MCP endpoint (JSON-RPC 2.0).

  • Requires an API key (same headers as the HTTP API).
  • Supports initialize, tools/list, tools/call, and ping.
  • Tools mirror free-safe HTTP reads: preview_report, list_projects, get_project_summary, get_account.
  • GET /api/mcp returns discovery metadata for clients that probe the endpoint.
  • Works with ChatGPT, Claude, Gemini, Cursor, Windsurf, and other MCP-capable agents — not Cursor-only.

Example request

curl -s "https://www.avroapps.com/api/mcp" \
  -H "Authorization: Bearer ag_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Example response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      { "name": "preview_report", "description": "…" },
      { "name": "list_projects", "description": "…" },
      { "name": "get_project_summary", "description": "…" },
      { "name": "get_account", "description": "…" }
    ]
  }
}

Machine-readable OpenAPI-style reference: /developers/openapi

MCP

AvroGrow exposes a free hosted MCP server over Streamable HTTP. Use it from ChatGPT, Claude, Gemini, Cursor, Windsurf, and other MCP-capable chatbots or IDEs — not a Cursor-only integration. Tools: preview_report, list_projects, get_project_summary, get_account.

Point any MCP client that supports remote HTTP servers at the URL below and pass your key in the Authorization header.

{
  "mcpServers": {
    "avrogrow": {
      "url": "https://www.avroapps.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ag_YOUR_KEY"
      }
    }
  }
}

Local stdio alternative: run the in-repo mcp/ package with AVROGROW_API_KEY and AVROGROW_API_BASE=https://www.avroapps.com.

Fair use and anti-abuse

Per API key

120

requests / minute

Per IP

60

requests / minute

  • Unlimited (fair use): /me, sample preview, owned project list/summary, health, MCP tools that mirror those reads.
  • Not unlimited via API: live ranking crawls, AI answer pulls, and other provider-backed scans.
  • Abuse controls: rate limits by key and IP, disposable-email block on key mint, domain-claim rules on signup gifts, email verification before welcome bonus credits are usable.
  • Keys: up to 5 active keys per workspace; revoke anytime in Settings.

Support

Questions about the API or MCP: support@avroapps.com. Avro LLC operates AvroGrow.