Skip to main content

API & Webhooks - FAQs

Does thanks.io have an API?

Yes. thanks.io provides a REST API (v2) for sending mailers, managing mailing lists and recipients, handling orders, configuring webhooks, and more. The full OpenAPI spec is at docs.thanks.io.

How do I authenticate API requests?

Personal access token (single-account scripts) or OAuth 2.0 (multi-tenant applications). Both use a Bearer token in the Authorization header.

Is there a sandbox?

Yes. API Testing Mode lets you submit orders without generating real mail or per-piece charges - orders sent via the API or Zapier are cancelled automatically. Enable it in Account SettingsAPI Access tab, under API SettingsTest Mode. Turn it off before going live.

Buying leads is not an order, so a Radius Search is still charged for while test mode is on. To keep a test run cheap, a Radius Search bought via the API or Zapier is limited to 5 records per purchase while test mode is enabled; a larger record_count is refused with HTTP 422 before anything is bought or charged. See API Test Mode.

warning

Make sure API Testing Mode is off before you want to send real mail, or to buy a full Radius Search list through the API.

What webhook events are available?

Order Status Change, Order Item Status Change, Order Item Delivered, and QR Code Scans.

Are webhooks guaranteed?

Webhooks are delivered at-least-once. Make your webhook consumer idempotent (safe to process the same event more than once) and deduplicate on event ID.

How do I test my webhooks?

Use the Test button in the dashboard webhook configuration screen, or use a tool like webhook.site to inspect payloads.

What is the thanks.io MCP server?

The thanks.io documentation MCP server at https://docs.thanks.io/mcp provides LLM-friendly access to the API documentation for AI assistants and developer tools that support the Model Context Protocol.