# Choozle > Choozle is a Denver-based self-service demand-side platform (DSP) for programmatic > digital advertising across Display, Connected TV, Video, Audio, Native, DOOH, Search > and Social, with buying routed through The Trade Desk and Amazon DSP. Its public > developer surface is one product: the Choozle Outbound Reporting API, a read-mostly > REST API that returns advertising account structure and daily campaign performance. Generated by API Evangelist from Choozle's published apiDoc dataset and knowledge base. Choozle does not serve an llms.txt of its own — https://choozle.com/llms.txt answers HTTP 200 with the site's marketing HTML (a WordPress soft 404), and https://app.choozle.com/llms.txt returns 404. ## APIs - [Choozle Outbound Reporting API](https://app.choozle.com/apidoc/): Three operations — token exchange, account structure, and daily performance reports. Base URL `https://app.choozle.com/api`. - [POST /api/auth](https://app.choozle.com/apidoc/#api-Authorization-Auth): Exchange an API profile email, an ISO 8601 timestamp within five minutes of server time, and an HMAC-SHA256 hex signature for a token valid two hours. - [GET /api/accounts](https://app.choozle.com/apidoc/#api-Reporting-Accounts): Accounts, their campaigns, and each campaign's ad groups. - [GET /api/reports](https://app.choozle.com/apidoc/#api-Reporting-Reports): One row per active ad group per day. Filter with `account_id` (required), `date_start`, `date_end`, and one of `campaign_id`, `campaign_status` or `ad_group_id`. ## Specs - [OpenAPI — full API](https://raw.githubusercontent.com/api-evangelist/choozle/refs/heads/main/openapi/_original/openapi.yml) - [OpenAPI — Authorization](https://raw.githubusercontent.com/api-evangelist/choozle/refs/heads/main/openapi/choozle-authorization-api-openapi.yml) - [OpenAPI — Accounts](https://raw.githubusercontent.com/api-evangelist/choozle/refs/heads/main/openapi/choozle-accounts-api-openapi.yml) - [OpenAPI — Reports](https://raw.githubusercontent.com/api-evangelist/choozle/refs/heads/main/openapi/choozle-reports-api-openapi.yml) - [apiDoc source (provider-published, verbatim)](https://app.choozle.com/apidoc/api_data.json) - [JSON Schema — AuthorizationRequest](https://raw.githubusercontent.com/api-evangelist/choozle/refs/heads/main/json-schema/authorization-request.json) - [JSON Schema — ReportRow](https://raw.githubusercontent.com/api-evangelist/choozle/refs/heads/main/json-schema/report-row.json) ## Docs - [Connecting to Choozle's Reporting API](https://help.choozle.com/connecting-to-choozles-reporting-api): The getting-started article. Explains how an ORG or advertiser admin creates an API profile and how to request the API secret key through the Customer Portal. - [Choozle API Docs](https://app.choozle.com/apidoc/): The generated API reference. - [Knowledge Base](https://help.choozle.com/): Product documentation. - [Platform overview](https://choozle.com/the-platform/) ## Conventions - Auth is a two-step exchange, not a static key. Sign `email + timestamp` with HMAC-SHA256 keyed on the API private key; send the digest as lowercase hex — uppercase hex and base64 are rejected. - Auth parameters go in the request BODY with `Content-Type: application/x-www-form-urlencoded`, never in headers. - The resulting token goes in a `token` request header (not `Authorization`) on every reporting call, and expires two hours after creation. - Errors are a bare `{"error": "..."}` JSON envelope with an HTTP status. Not RFC 9457. - No idempotency keys, no pagination, no request-id header, no rate-limit response headers. - `campaign_id`, `campaign_status` and `ad_group_id` are mutually exclusive report filters. ## Commercial - [Managed and Self-Service](https://choozle.com/managed-self-service/): Self-service requires a minimum media spend of $15,000 over a 90-day period with no contract commitment; managed service requires a minimum media spend of $10,000 per month. - [Terms of Service](https://choozle.com/terms-of-service/) - [Privacy Policy](https://choozle.com/privacy-policy/) - [Data Processing Agreement](https://choozle.com/data-processing-agreement/) - [Contact](https://choozle.com/connect/) ## Not available - No SDK or client library in any package registry. - No MCP server, no A2A agent card, no GraphQL, no webhooks or AsyncAPI event surface. - No `/.well-known/` document on any Choozle host. - No public status page, no changelog, no deprecation policy, no published rate limits. - No sandbox or test-mode credentials; API keys are issued by support ticket only.