Skip to main content
The Tiny Talk API lets you send messages to your agent programmatically from any backend, script, or integration. The base URL for all requests is:
https://api.tinytalk.ai/v1

Public vs. private agents

Every agent in Tiny Talk is public by default. A public agent accepts messages from anyone without authentication — this is how the embedded chat widget works on your website. When you make an agent private, every request must include a valid API key. Private agents reject unauthenticated requests with a 401 Unauthorized response.
Agent visibilityAPI key required?Use case
PublicNoWebsite chat widget, open-access assistants
PrivateYesServer-to-server integrations, internal tools, controlled access
You can change an agent’s visibility in the dashboard under Settings → General.

API key

To authenticate API requests, include your API key in the api-key header:
api-key: tiny_sk_your_key_here

Getting your API key

1

Open the dashboard

Go to dashboard.tinytalk.ai and select your agent.
2

Navigate to Integrations

Click Integrations in the sidebar, then scroll find Hub → Tiny Talk section.
3

Create an API key

Click Create API Key. Your key is shown once — copy it and store it securely.
Keep your API key secret. Do not expose it in client-side code, public repositories, or browser requests. Use it only from your server or backend.

API key benefits

Requests authenticated with a valid API key:
  • Can access private agents
  • Bypass rate limiting — no per-user message throttling
  • Are identified as trusted server-to-server traffic

Rate limiting

Unauthenticated requests (public agents without an API key) are rate-limited per user based on the agent’s rate limit settings. When the limit is exceeded, the API returns a 429 status code with rate limit headers:
HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets
Retry-AfterSeconds to wait before retrying

Error format

All errors return a JSON response with a status code and message:
{
  "code": 400,
  "message": "Description of what went wrong"
}
CodeMeaning
200Success
400Bad request — invalid or missing parameters
401Unauthorized — invalid or missing API key for a private agent
403Forbidden — plan limit exceeded (messages or model access)
429Rate limited — too many requests
500Internal server error