Errors and Limits

The errors the API returns, and its rate limits.

Errors

Errors have the same JSON shape:

Response
{
  "response": null,
  "error": "insufficient_scope",
  "error_description": "This token's scope does not permit this action"
}

Use error in your code. error_description is for people and may change.

StatuserrorMeaning
401missing_tokenThe request has no API key.
401invalid_tokenThe API key is unknown, revoked or malformed.
401not_your_vehicleNo customer shares this vehicle with your business.
401not_your_energy_siteNo customer shares this energy site with your business.
403insufficient_scopeYour business may not do this: for example a command without command access, or a request that names no product.
403permission_deniedThe endpoint is not available to businesses.
404business_not_foundYour business is not active.
404webhook_not_foundNo webhook is set.
400invalid_webhook_urlThe webhook URL is refused.
429rate_limitedToo many requests. See Rate limits.
502proxy_failedTeslemetry could not reach the region that holds this customer's data. Try again.

Not shared, or no longer shared

not_your_vehicle and not_your_energy_site have several causes, and the API does not say which:

  • the customer never shared the product, or stopped sharing it,
  • you removed the product,
  • the customer no longer grants Teslemetry a permission your business requires, or
  • the customer's Teslemetry connection has ended.

List your consented products to see what you can reach. If a product is missing, ask the customer to open your customer link again.

Vehicle and Tesla errors

Requests for a shared product return the same errors as the Teslemetry API, such as 408 when an asleep vehicle does not wake up in time.

Rate limits

Rate limits are counted per customer, not per API key:

GroupLimit
Vehicle commands28 per 30 seconds
Vehicle wake-ups3 per 30 seconds
Energy site requests55 per minute
Time-of-use setting updates10 per 45 minutes, per energy site
Server-Sent Events connections20 at a time

Exceeding a limit returns 429 rate_limited, with a retry-after header in seconds:

Response
{
  "response": null,
  "error": "rate_limited",
  "error_description": "Rate limit exceeded, retry after 12 seconds"
}

Repeated requests with an invalid API key from the same IP address are slowed down too.

Tesla's Fleet API applies its own limits upstream.