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": "…" }
]
}
}