Skip to main content
Build custom dashboards, integrate with your marketing stack, or create automated reports using your GEO (Generative Engine Optimization) data.
The API is available for Business and Enterprise plans. Upgrade your plan to get access.

Base URL

All API endpoints are relative to:
https://qwairy.co/api/v1

OpenAPI Specification

Download the complete OpenAPI 3.0 specification for SDK generation and API exploration:

OpenAPI Spec

Download openapi.yaml for use with Swagger UI, Postman, or SDK generators.

Available Endpoints

The API provides access to all your GEO monitoring data:
ResourceDescription
BrandsList all brands in your account
PerformanceGet performance snapshots (Audit FLASH format)
CompetitorsTrack competitor mentions and share of voice
SourcesMonitor content sources cited by AI platforms
PromptsAccess your monitored prompts/queries
AnswersRetrieve AI-generated responses

Quick Start

1

Get your API token

Go to Team SettingsIntegrationsAPI Access and create a new API token.
2

Make your first request

curl -X GET "https://qwairy.co/api/v1/brands" \
  -H "Authorization: Bearer qw-api-your-token-here"
3

Explore your data

Use the brand ID to access performance metrics, competitors, sources, and more.

Response Format

All responses are JSON formatted with a consistent structure:
{
  "success": true,
  "pagination": {
    "total": 156,
    "count": 10,
    "limit": 10,
    "offset": 0
  },
  "prompts": [ ... ]
}
List endpoints include a pagination object with:
  • total: Total items matching the query
  • count: Items in this response
  • limit: Max items per page
  • offset: Items skipped
See Entities for detailed data structures. Error responses include machine-readable codes:
{
  "error": {
    "code": "BRAND_NOT_FOUND",
    "message": "Brand not found or not accessible"
  }
}
See Error Codes for the complete list.

CORS Support

The API supports cross-origin requests from any domain. All endpoints include CORS headers, allowing you to call the API directly from browser-based applications.

Caching

Successful responses include caching headers for optimal performance:
Cache-Control: private, max-age=60, stale-while-revalidate=300
  • private: Response is user-specific (not shared caches)
  • max-age=60: Fresh for 60 seconds
  • stale-while-revalidate=300: Serve stale data while revalidating for up to 5 minutes

Need Help?