Errors and limits

Tinyping error codes and how to fix them, plus rate limits, monthly limits and what happens when you reach one.

A failed request returns a JSON body with an error message and a stable code. Check the code, not the message.

Error codes

StatusCodeFix
400invalid_jsonSend valid JSON, or send form fields with curl -d.
401missing_tokenAdd the header Authorization: Bearer followed by your token.
401invalid_tokenCheck that you copied the whole token, or create a new one.
401token_revokedCreate a new token on the project page and deploy it.
404project_not_foundThe token's project was deleted. Create a new project.
413payload_too_largeSend less text. The limit is 16,384 bytes.
422validation_failedFix the fields listed in issues, then send again.
429rate_limitedWait the seconds in Retry-After, then try again.
429monthly_limit_reachedWait for resetsAt, or upgrade your plan.

Rate limits

Each token can send up to 60 events every 60 seconds. Each IP address can send up to 1,000 requests every 60 seconds. After that, requests fail with 429 and rate_limited.

The Retry-After header and the retryAfter field tell you how many seconds to wait. Send fewer events, or group several into one.

Monthly limits

Your whole workspace shares one monthly count across all projects. The count starts over at the beginning of each month, in UTC.

PlanEvents per monthHistory
Free1,0007 days
Pro50,0001 year

When you hit a limit

New events are turned away with 429 and monthly_limit_reached. The response has limit (your plan allowance) and resetsAt (when the count restarts).

Events already in your inbox stay there. Upgrade to Pro to raise the limit right away. See Billing.

Events older than your plan history are removed from your account.

Tip

Your app should treat a failed alert as normal. Catch the error and keep going.

Know about your next sign-up the second it happens

Create a free project, paste the prompt into your AI agent and get your first push in minutes.