thanks.io integration
thanks.io is a direct mail automation service that prints and mails handwritten-style postcards, letters, notecards, gift cards and magnacards. Send a mailer to one or many recipients (or to saved mailing lists), price an order first without placing it, list, track, cancel or replay orders, manage recipients, mailing lists, message templates, sub-accounts and webhooks, buy a radius-search mailing list, and list creatives, image templates, handwriting styles and gift card brands. The dynamic image builder, which the vendor hides from its public reference, is not exposed. Authentication is a thanks.io API key (created in the dashboard under Settings, API Access) sent as a Bearer token; turn on API Testing Mode there to have API orders cancelled automatically while you build.
Say what should happen.
The workflow builds itself.
What you can do with thanks.io
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Message template, 5 operations
create_message_templateCreate message templatePOSTCreate a message template for the authenticated user using the public v2 request shape.delete_message_templateDelete message templateDELETEDelete a message template.get_message_templateGet message templateGETFetch a single message template by ID.list_message_templatesList message templatesGETList all available message templates.update_message_templateUpdate message templatePATCHUpdate a message template using the public v2 request shape.
Recipient, 5 operations
create_recipientCreate recipientPOSTAdd a recipient. If you do not provide a valid mailing address but do provide a valid email address, thanks.io can attempt to look up a street address for an additional fee.delete_recipientDelete recipientDELETEDeletes one recipient from its mailing list.get_recipientGet recipientGETGet a recipient by ID.list_mailing_list_recipientsList mailing list recipientsGETRetrieve recipients for a specific mailing list.update_recipientUpdate recipientPUTUpdate details of a specific recipient by ID. Leave out `absentee_address` to keep the current absentee address.
Sub account, 5 operations
create_sub_accountCreate sub accountPOSTCreate a new sub-account.delete_sub_accountDelete sub accountDELETEDelete Sub Account. All sub account orders and mailing lists are moved to the main account. All image templates, message templates, and campaigns are deleted.get_sub_accountGet sub accountGETGets a sub-account by ID. Returns a single sub-account object. branding_fields is an object that contains branding information for the sub-account - it can only be set via the thanks.io dashboardlist_sub_accountsList sub accountsGETList all available sub-accounts.update_sub_accountUpdate sub accountPUTUpdates a sub-account's title and return address fields.
Mailing list, 4 operations
create_mailing_listCreate mailing listPOSTCreates an empty mailing list (a saved group of recipients) with a description. An optional qrcode_url becomes the default QR code URL for orders sent to this list. Add recipients with create_recipient.delete_mailing_listDelete mailing listDELETEDeletes a mailing list from your account.get_mailing_listGet mailing listGETGets a mailing list by ID. Returns a single mailing list object.list_mailing_listsList mailing listsGETList all available mailing lists. Returns a paginated list of mailing lists.
Webhook, 4 operations
create_webhookCreate webhookPOSTCreate a webhook destination. Webhooks are available on paid subscriptions only.delete_webhookDelete webhookDELETEDelete a webhook destination. Webhooks are available on paid subscriptions only.list_webhooksList webhooksGETReturn a paginated list of configured webhooks. Webhooks are available on paid subscriptions only.update_webhookUpdate webhookPUTUpdate an existing webhook destination. Webhooks are available on paid subscriptions only.
Creative, 2 operations
get_creativeGet creativeGETGet one creative from your Creatives library, with the image and message templates it pairs.list_creativesList creativesGETList the creatives in your Creatives library, 24 per page: the default creative of each type first, then most recently updated.
Giftcard, 2 operations
estimate_giftcardEstimate giftcardPOSTPrice a giftcard order without placing it. Send the same request body you would send to Send Giftcard: nothing is charged, nothing is printed or mailed, and no order is created.send_giftcardSend giftcardPOSTSends a folded 4.25x5.5 notecard carrying a gift card (giftcard_brand and giftcard_amount_in_cents, see list_giftcard_brands) to recipients, mailing lists or a radius search.
Magnacard, 2 operations
estimate_magnacardEstimate magnacardPOSTPrice a magnacard order without placing it. Send the same request body you would send to Send Magnacard: nothing is charged, nothing is printed or mailed, and no order is created.send_magnacardSend magnacardPOSTSends a magnacard (a magnetic postcard) to recipients, mailing lists or a radius search. Pass creative_id, or an image (image_template_id or front_image_url) and a message (message or message_template_id).
Notecard, 2 operations
estimate_notecardEstimate notecardPOSTPrice a notecard order without placing it. Send the same request body you would send to Send Notecard: nothing is charged, nothing is printed or mailed, and no order is created.send_notecardSend notecardPOSTSends a folded 4.25x5.5 notecard in an envelope to recipients, mailing lists or a radius search. Pass creative_id, or an exterior image and an interior message.
Postcard, 2 operations
estimate_postcardEstimate postcardPOSTPrice a postcard order without placing it. Send the same request body you would send to Send Postcard: nothing is charged, nothing is printed or mailed, and no order is created.send_postcardSend postcardPOSTSends a 4x6, 6x9 or 6x11 postcard to recipients, mailing lists or a radius search. Pass creative_id, or an image (image_template_id or front_image_url) and a message (message or message_template_id).
Windowedletter, 2 operations
estimate_windowed_letterEstimate windowed letterPOSTPrice a windowed letter order without placing it. Send the same request body you would send to Send Windowed Letter: nothing is charged, nothing is printed or mailed, and no order is created.send_windowed_letterSend windowed letterPOSTSends a letter in a windowed envelope to recipients, mailing lists or a radius search, with a handwritten cover letter, extra pages, or a whole PDF (pdf_only_url).
Windowlessletter, 2 operations
estimate_windowless_letterEstimate windowless letterPOSTPrice a windowless letter order without placing it. Send the same request body you would send to Send Windowless Letter: nothing is charged, nothing is printed or mailed, and no order is created.send_windowless_letterSend windowless letterPOSTSends a letter in a windowless envelope to recipients, mailing lists or a radius search, with a handwritten cover letter, extra pages, or a whole PDF (pdf_only_url).
Buy radius search, 1 operation
buy_radius_searchBuy radius searchPOSTThis call will purchase a radius search mailing listing and add it to your account. Each record added to the mailing list costs $.05.
Cancel, 1 operation
cancel_orderCancel orderPUTIf Order is in _Reviewing_ Status, then this will cancel the order and refund the credits for the order back to your account. If the order can be successfully canceled, the status will be updated to _cancelled_.
Count radius search, 1 operation
count_radius_searchCount radius searchPOSTThis call reports how many records a radius search would find, without buying them.
Create multiple, 1 operation
create_multiple_recipientsCreate multiple recipientsPOSTAdd multiple recipients at once using a JSON array of recipient objects. If a recipient does not include a valid mailing address but does include a valid email address, thanks.io can attempt to look up a street address for an additional fee.
Delete by address, 1 operation
delete_recipient_by_addressDelete recipient by addressPOSTDeletes a recipient from a mailing list, found either by street address (mailing_list_id, address and postal_code) or by email (mailing_list_id and email).
Giftcard brand, 1 operation
list_giftcard_brandsList giftcard brandsGETLists the gift card brands you can send, grouped by category (main, food, entertainment and more), with each brand's code and available amounts.
Giftcard brands list, 1 operation
list_giftcard_brands_flatList giftcard brands flatGETList all available Giftcard brands as a flat list.
Handwriting style, 1 operation
list_handwriting_stylesList handwriting stylesGETLists the handwriting styles you can use in a message, with their id, name, type and a sample image URL.
Image template, 1 operation
list_image_templatesList image templatesGETList all available image templates.
Invalidate giftcard, 1 operation
invalidate_giftcardInvalidate giftcardPUTInvalidate the gift card on a mailed piece so it can no longer be redeemed, for example when a card was sent by mistake. This does the same as the **Invalidate** button on the Order Details page, and it can't be undone.
Item, 1 operation
list_order_itemsList order itemsGETReturn the individual mail pieces that make up an order, one entry per recipient, with that piece's delivery status, delivery date, QR scan count, failure reason and recipient address.
List, 1 operation
list_ordersList ordersGETLists your recent orders, newest first, with their status, mailer type, totals, recipient counts and QR scan count. Filter by mailer type, creative or campaign mailing list.
Replay, 1 operation
replay_orderReplay orderPOSTSubmit a copy of a previously placed order as a brand-new order. The same creative is charged and mailed again, and the original order is left untouched.
Track, 1 operation
track_orderTrack orderGETReturns the delivery tracking summary of one order: how many of its mail pieces are in each delivery status. Use list_order_items for per-piece detail.
Use thanks.io from Claude Code, Cursor or Codex
Connect thanks.io in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its thanks.io operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect thanks.io
- Create your workspace
Sign up free. Nothing to install.
- Connect thanks.io once
Add your thanks.io connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
thanks.io integration FAQ
What can you do with the thanks.io integration?
LiveContext exposes 51 operations on thanks.io, covering message template, recipient, sub account and mailing list.
