API Reference
Quick Reference
💬Get free consultation

Quick reference

Who can use this feature?

  • The Storefront SDK works on any plan. Every other surface needs an API key, which requires the Pro or Plus plan.
  • This page lists only. Follow the link under each table for parameters, payloads, and examples.

How to read this page

One row per callable thing. Writes says whether the row changes data in your store. Auth names the credential. Plan is the minimum plan. Nothing here is explained — the linked page carries the detail.


Chat Conversations API

Base URL https://app.chatty.net. Full detail: Chat Conversations API.

NameAreaWhat it doesWritesAuthPlan
GET /chat/conversationsChat APILists conversations, newest activity firstNoX-Api-KeyPro or Plus
GET /chat/conversations/{id}Chat APIReturns one conversation in fullNoX-Api-KeyPro or Plus
GET /chat/conversations/{id}/messagesChat APILists messages in a conversationNoX-Api-KeyPro or Plus
POST /chat/conversations/{id}/messagesChat APISends a reply, an internal note, or a message as the customerYesX-Api-KeyPro or Plus
GET /chat/conversations/{id}/messages/{messageId}Chat APIReturns one message, deleted ones includedNoX-Api-KeyPro or Plus
GET /chat/conversations/{id}/relatedChat APILists other conversations from the same contactNoX-Api-KeyPro or Plus
POST /chat/conversations/{id}/tagsChat APIAppends tags, dedupedYesX-Api-KeyPro or Plus
DELETE /chat/conversations/{id}/tags/{tag}Chat APIRemoves one tagYesX-Api-KeyPro or Plus
POST /chat/conversations/{id}/notesChat APIAdds a checklist noteYesX-Api-KeyPro or Plus
PUT /chat/conversations/{id}/notes/{noteId}Chat APIUpdates a checklist noteYesX-Api-KeyPro or Plus
DELETE /chat/conversations/{id}/notes/{noteId}Chat APIDeletes a checklist noteYesX-Api-KeyPro or Plus
GET /chat/conversations/{id}/attributesChat APILists conversation attributesNoX-Api-KeyPro or Plus
POST /chat/conversations/{id}/attributesChat APICreates an attribute, upserts by nameYesX-Api-KeyPro or Plus
PUT /chat/conversations/{id}/attributes/{attributeId}Chat APIUpdates an attributeYesX-Api-KeyPro or Plus
DELETE /chat/conversations/{id}/attributes/{attributeId}Chat APIDeletes an attributeYesX-Api-KeyPro or Plus
POST /chat/conversations/{id}/stateChat APIResolves or reopens a conversationYesX-Api-KeyPro or Plus
POST /chat/conversations/{id}/assignChat APIAssigns a conversation to a team memberYesX-Api-KeyPro or Plus
POST /chat/conversations/{id}/readChat APIMarks a conversation read on the agent sideYesX-Api-KeyPro or Plus
POST /chat/conversations/{id}/typingChat APISets the agent typing indicatorYesX-Api-KeyPro or Plus
GET /chat/conversations/{id}/browsed-pagesChat APILists pages the visitor viewed this sessionNoX-Api-KeyPro or Plus
GET /chat/conversations/{id}/summaryChat APIReturns the AI summary of a resolved conversationNoX-Api-KeyPro or Plus
GET /chat/customers/{customerUuid}Chat APIReturns a contact profileNoX-Api-KeyPro or Plus
GET /chat/customers/{customerUuid}/conversationsChat APILists one contact's conversationsNoX-Api-KeyPro or Plus
GET /chat/membersChat APILists team membersNoX-Api-KeyPro or Plus
GET /chat/members/{memberId}Chat APIReturns one team memberNoX-Api-KeyPro or Plus
GET /chat/tagsChat APIReturns your store's tag catalogNoX-Api-KeyPro or Plus
GET /chat/webhooksChat APILists webhook subscriptions, signing secrets includedNoX-Api-KeyPro or Plus
POST /chat/webhooksChat APICreates a subscription, upserts by URLYesX-Api-KeyPro or Plus
PUT /chat/webhooks/{id}Chat APIUpdates a subscription, including pausing and resuming deliveryYesX-Api-KeyPro or Plus
DELETE /chat/webhooks/{id}Chat APIDeletes a subscriptionYesX-Api-KeyPro or Plus

The public API carries no /api prefix. Paths under /api/chat/... belong to the admin inbox and reject an X-Api-Key.

The Pro or Plus column above is the plan you need to hold an API key at all. Once you have a key, only one action re-checks the plan: turning a paused webhook subscription back on. Pausing one works on any plan, so a store that downgraded while paused cannot resume delivery. See Webhooks.


Webhook events

These nine names are the complete set. Full detail: Webhooks.

NameAreaWhat it doesWritesAuthPlan
message.createdWebhooksFires when a customer, an agent, or the AI sends a messageNowhsec_ signaturePro or Plus
message.updatedWebhooksFires when a message is editedNowhsec_ signaturePro or Plus
message.removedWebhooksFires when a message is deletedNowhsec_ signaturePro or Plus
conversation.createdWebhooksFires when a new conversation startsNowhsec_ signaturePro or Plus
conversation.state_changedWebhooksFires when a conversation is resolved or reopenedNowhsec_ signaturePro or Plus
conversation.assignedWebhooksFires when a conversation is assigned or reassignedNowhsec_ signaturePro or Plus
conversation.tags_updatedWebhooksFires when tags change, carrying the full resulting listNowhsec_ signaturePro or Plus
conversation.removedWebhooksFires when a conversation is deletedNowhsec_ signaturePro or Plus
customer.createdWebhooksFires when a new contact record is createdNowhsec_ signaturePro or Plus

GraphQL Customer API

Endpoint POST https://graphql.chatty.net/graphql. Read-only: no mutation, no subscription. Full detail: GraphQL Customer API.

NameAreaWhat it doesWritesAuthPlan
customer(id)GraphQLFetches one contact by id, null when nothing matchesNox-api-id + x-api-secretPro or Plus
customers(first, after, last, before)GraphQLLists contacts with Relay cursor pagination, no filter or sortNox-api-id + x-api-secretPro or Plus

MCP tools

Endpoint POST https://app.chatty.net/mcp. Eight tools are always registered, nine depend on a switch read fresh on every request. Call tools/list after connecting rather than trusting a list. Full detail: MCP tool reference.

The Plan column is the plan the switch needs. Creating the key itself needs Pro or Plus, so that is the floor for every row.

NameAreaWhat it doesWritesAuthPlanSwitch
send_messageMCPPosts a bot reply into a conversationYesX-App-Id + Bearer keyAllAlways on
faq_retrievalMCPSearches your knowledge baseNoX-App-Id + Bearer keyAllAlways on
add_noteMCPAdds an internal note to a conversationYesX-App-Id + Bearer keyAllAlways on
update_tagsMCPReplaces the whole tag list on a conversationYesX-App-Id + Bearer keyAllAlways on
assign_memberMCPAssigns or unassigns a team memberYesX-App-Id + Bearer keyAllAlways on
list_membersMCPLists team members and their idsNoX-App-Id + Bearer keyAllAlways on
list_conversationsMCPLists test conversations from the AI playgroundNoX-App-Id + Bearer keyAllAlways on
register_webhookMCPCreates a subscription and returns its signing secretYesX-App-Id + Bearer keyAllAlways on
product_lookupMCPSearches products and variantsNoX-App-Id + Bearer keyAllTraining data > Products
product_faq_lookupMCPReturns FAQs for one productNoX-App-Id + Bearer keyAllTraining data > Products
manage_cartMCPReads and edits the Shopify cartYes, except action: "get"X-App-Id + Bearer keyAllTraining data > Products
collection_lookupMCPSearches collections and categoriesNoX-App-Id + Bearer keyAllTraining data > Collections
discount_lookupMCPFinds discounts and promo codesNoX-App-Id + Bearer keyAllTraining data > Discounts
size_guide_lookupMCPReturns a size chart for one productNoX-App-Id + Bearer keyProAssistant skills > Size guide
check_order_statusMCPTracks an order by order number or tracking numberNoX-App-Id + Bearer keyBasicAssistant skills > Order tracking
customer_supportMCPRuns an after-sale request: return, refund, cancel, editNoX-App-Id + Bearer keyAllAssistant skills > After-sale support
human_agent_transferMCPHands the conversation to a personNoX-App-Id + Bearer keyAllAssistant skills > Human handover

A store that has never touched its AI agent settings exposes 11 tools: the 8 always-on ones plus order tracking, after-sale support, and human handover.


Storefront SDK

Global object window.$chatty, version 1.1.0, no credentials. Full detail: SDK Reference and SDK Events.

NameAreaWhat it doesWritesAuthPlan
Methods (6)SDKpush, on, off, is, get, versionNoNoneAny
do widget visibility (7)SDKchat:open, chat:close, chat:toggle, chat:show, chat:hide, launcher:show, launcher:hideNoNoneAny
do messaging (2)SDKmessage:send, typing:setYesNoneAny
do identity and session (3)SDKidentify, logout, session:resetYesNoneAny
do conversation control (3)SDKescalate, trigger:run, article:showYesNoneAny
do pre-chat form (2)SDKprechat:submit, prechat:skipYesNoneAny
do custom event tracking (1)SDKevent:trackYesNoneAny
set composer and visitor data (8)SDKmessage:text, user:email, user:name, user:phone, user:attributes, user:context, shop:data, conversation:attributesYesNoneAny
set commerce context (3)SDKproduct, cart, orderYesNoneAny
set locale (1)SDKlocaleYesNoneAny
set pre-chat prefill (1)SDKprechat:fieldYesNoneAny
States (7)SDKis(key) reads a boolean: chat, session, pre-chat, and agent availabilityNoNoneAny
Values (5)SDKget(key) reads composer text, conversation id, unread count, pre-chat config, commerce contextNoNoneAny
Events (22)SDKLifecycle, messages, conversation, pre-chat and lead capture, presence and typingNoNoneAny

Eighteen do actions and thirteen set actions in total. The SDK returns no value and throws nothing, so a rejected command is silent.


Limits

The full list lives on Errors and rate limits.

WhereLimit
Chat Conversations API120 requests/min per key, 300 requests/min per source IP
Chat Conversations API pagesconversations 20 / 100, messages 50 / 100, related 6 / 50, customer conversations 20 / 100
Chat Conversations API message5,000 characters of text
Chat Conversations API note150 characters
Chat Conversations API tag100 characters, longer tags are dropped from the request
Chat Conversations API attributename 255 characters, value 1,000 characters
Chat Conversations API browsed pagesthe 50 most recent pages of the session, kept about 24 hours
API keys5 active keys per store
Webhook subscriptions10 per store
Webhook delivery10-second timeout, 7 attempts over about 9 hours
Webhook payloaddata is replaced above 80,000 bytes, metadata is rejected above 2,048 bytes
GraphQL Customer APImetered by query cost, budget not published, no rate limit headers
MCP serverno request rate limit
MCP update_tags50 characters per tag, longer tags are truncated silently, 100 tags kept per conversation
MCP list_conversationslimit defaults to 20 and has no maximum, so ask for a page size you can handle
SDK message sending15 messages/min, 5,000 characters each
SDK typing indicator30 calls/min
SDK commerce context8 KB per object

Where to go next

You wantPage
Parameters, payloads, and cURL for every path aboveChat Conversations API
Event payloads, signature verification, and retriesWebhooks
Schema, enums, and paginationGraphQL Customer API
Connection, client setup, and securityMCP overview
Tool parameters and return shapesMCP tool reference
Command arguments, states, and valuesSDK Reference
Event names and payloadsSDK Events
Which header each API expectsAuthentication
Every limit and error formatErrors and rate limits
Choosing between these surfacesAPI Reference overview

Need help?

Contact the Chatty support team from your dashboard. Include the row you were calling, the timestamp of a failing request, and the returned error code.