[{"data":1,"prerenderedAt":584},["ShallowReactive",2],{"docs-navigation":3,"docs:\u002Fdocs\u002Fapi\u002Ferrors-and-limits":84,"docs-surround:\u002Fdocs\u002Fapi\u002Ferrors-and-limits":579},[4,18,43,71],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Initial Setup","\u002Fdocs\u002Fgetting-started\u002Finitial-setup","docs\u002F1.getting-started\u002F1.initial-setup",{"title":14,"path":15,"stem":16},"Customer Link","\u002Fdocs\u002Fgetting-started\u002Fcustomer-link","docs\u002F1.getting-started\u002F2.customer-link",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Portal","\u002Fdocs\u002Fportal","docs\u002F2.portal",[23,27,31,35,39],{"title":24,"path":25,"stem":26},"Users and Roles","\u002Fdocs\u002Fportal\u002Fusers","docs\u002F2.portal\u002F1.users",{"title":28,"path":29,"stem":30},"Brand and Redirect URLs","\u002Fdocs\u002Fportal\u002Fbrand","docs\u002F2.portal\u002F2.brand",{"title":32,"path":33,"stem":34},"API Keys","\u002Fdocs\u002Fportal\u002Fapi-keys","docs\u002F2.portal\u002F3.api-keys",{"title":36,"path":37,"stem":38},"Webhook","\u002Fdocs\u002Fportal\u002Fwebhook","docs\u002F2.portal\u002F4.webhook",{"title":40,"path":41,"stem":42},"Vehicle Config","\u002Fdocs\u002Fportal\u002Fvehicle-config","docs\u002F2.portal\u002F5.vehicle-config",{"title":44,"path":45,"stem":46,"children":47,"page":17},"API","\u002Fdocs\u002Fapi","docs\u002F3.api",[48,52,56,60,64,67],{"title":49,"path":50,"stem":51},"Introduction","\u002Fdocs\u002Fapi\u002Fintroduction","docs\u002F3.api\u002F1.introduction",{"title":53,"path":54,"stem":55},"Consented Products","\u002Fdocs\u002Fapi\u002Fproducts","docs\u002F3.api\u002F2.products",{"title":57,"path":58,"stem":59},"Vehicles and Energy Sites","\u002Fdocs\u002Fapi\u002Fvehicles-and-energy-sites","docs\u002F3.api\u002F3.vehicles-and-energy-sites",{"title":61,"path":62,"stem":63},"Streaming","\u002Fdocs\u002Fapi\u002Fstreaming","docs\u002F3.api\u002F4.streaming",{"title":36,"path":65,"stem":66},"\u002Fdocs\u002Fapi\u002Fwebhook","docs\u002F3.api\u002F5.webhook",{"title":68,"path":69,"stem":70},"Errors and Limits","\u002Fdocs\u002Fapi\u002Ferrors-and-limits","docs\u002F3.api\u002F6.errors-and-limits",{"title":72,"path":73,"stem":74,"children":75,"page":17},"About","\u002Fdocs\u002Fabout","docs\u002F99.about",[76,80],{"title":77,"path":78,"stem":79},"Terms Of Service","\u002Fdocs\u002Fabout\u002Fterms","docs\u002F99.about\u002F2.terms",{"title":81,"path":82,"stem":83},"Privacy Policy","\u002Fdocs\u002Fabout\u002Fprivacy","docs\u002F99.about\u002F3.privacy",{"id":85,"title":68,"body":86,"description":573,"extension":574,"meta":575,"navigation":576,"path":69,"seo":577,"stem":70,"__hash__":578},"docs\u002Fdocs\u002F3.api\u002F6.errors-and-limits.md",{"type":87,"value":88,"toc":566},"minimark",[89,94,98,187,196,363,368,376,397,407,411,425,428,431,485,496,556,559,562],[90,91,93],"h2",{"id":92},"errors","Errors",[95,96,97],"p",{},"Errors have the same JSON shape:",[99,100,106],"pre",{"className":101,"code":102,"filename":103,"language":104,"meta":105,"style":105},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"response\": null,\n  \"error\": \"insufficient_scope\",\n  \"error_description\": \"This token's scope does not permit this action\"\n}\n","Response","json","",[107,108,109,118,137,161,181],"code",{"__ignoreMap":105},[110,111,114],"span",{"class":112,"line":113},"line",1,[110,115,117],{"class":116},"sMK4o","{\n",[110,119,121,124,128,131,134],{"class":112,"line":120},2,[110,122,123],{"class":116},"  \"",[110,125,127],{"class":126},"spNyl","response",[110,129,130],{"class":116},"\"",[110,132,133],{"class":116},":",[110,135,136],{"class":116}," null,\n",[110,138,140,142,145,147,149,152,156,158],{"class":112,"line":139},3,[110,141,123],{"class":116},[110,143,144],{"class":126},"error",[110,146,130],{"class":116},[110,148,133],{"class":116},[110,150,151],{"class":116}," \"",[110,153,155],{"class":154},"sfazB","insufficient_scope",[110,157,130],{"class":116},[110,159,160],{"class":116},",\n",[110,162,164,166,169,171,173,175,178],{"class":112,"line":163},4,[110,165,123],{"class":116},[110,167,168],{"class":126},"error_description",[110,170,130],{"class":116},[110,172,133],{"class":116},[110,174,151],{"class":116},[110,176,177],{"class":154},"This token's scope does not permit this action",[110,179,180],{"class":116},"\"\n",[110,182,184],{"class":112,"line":183},5,[110,185,186],{"class":116},"}\n",[95,188,189,190,192,193,195],{},"Use ",[107,191,144],{}," in your code. ",[107,194,168],{}," is for people and may change.",[197,198,199,216],"table",{},[200,201,202],"thead",{},[203,204,205,209,213],"tr",{},[206,207,208],"th",{},"Status",[206,210,211],{},[107,212,144],{},[206,214,215],{},"Meaning",[217,218,219,233,245,257,269,281,293,306,318,331,350],"tbody",{},[203,220,221,225,230],{},[222,223,224],"td",{},"401",[222,226,227],{},[107,228,229],{},"missing_token",[222,231,232],{},"The request has no API key.",[203,234,235,237,242],{},[222,236,224],{},[222,238,239],{},[107,240,241],{},"invalid_token",[222,243,244],{},"The API key is unknown, revoked or malformed.",[203,246,247,249,254],{},[222,248,224],{},[222,250,251],{},[107,252,253],{},"not_your_vehicle",[222,255,256],{},"No customer shares this vehicle with your business.",[203,258,259,261,266],{},[222,260,224],{},[222,262,263],{},[107,264,265],{},"not_your_energy_site",[222,267,268],{},"No customer shares this energy site with your business.",[203,270,271,274,278],{},[222,272,273],{},"403",[222,275,276],{},[107,277,155],{},[222,279,280],{},"Your business may not do this: for example a command without command access, or a request that names no product.",[203,282,283,285,290],{},[222,284,273],{},[222,286,287],{},[107,288,289],{},"permission_denied",[222,291,292],{},"The endpoint is not available to businesses.",[203,294,295,298,303],{},[222,296,297],{},"404",[222,299,300],{},[107,301,302],{},"business_not_found",[222,304,305],{},"Your business is not active.",[203,307,308,310,315],{},[222,309,297],{},[222,311,312],{},[107,313,314],{},"webhook_not_found",[222,316,317],{},"No webhook is set.",[203,319,320,323,328],{},[222,321,322],{},"400",[222,324,325],{},[107,326,327],{},"invalid_webhook_url",[222,329,330],{},"The webhook URL is refused.",[203,332,333,336,341],{},[222,334,335],{},"429",[222,337,338],{},[107,339,340],{},"rate_limited",[222,342,343,344,349],{},"Too many requests. See ",[345,346,348],"a",{"href":347},"#rate-limits","Rate limits",".",[203,351,352,355,360],{},[222,353,354],{},"502",[222,356,357],{},[107,358,359],{},"proxy_failed",[222,361,362],{},"Teslemetry could not reach the region that holds this customer's data. Try again.",[364,365,367],"h3",{"id":366},"not-shared-or-no-longer-shared","Not shared, or no longer shared",[95,369,370,372,373,375],{},[107,371,253],{}," and ",[107,374,265],{}," have several causes, and the API does not say which:",[377,378,379,383,391,394],"ul",{},[380,381,382],"li",{},"the customer never shared the product, or stopped sharing it,",[380,384,385,386,390],{},"you ",[345,387,389],{"href":388},"\u002Fdocs\u002Fapi\u002Fproducts#removing-a-product","removed the product",",",[380,392,393],{},"the customer no longer grants Teslemetry a permission your business requires, or",[380,395,396],{},"the customer's Teslemetry connection has ended.",[95,398,399,402,403,406],{},[345,400,401],{"href":54},"List your consented products"," to see what you can reach. If a product is missing, ask the customer to open your ",[345,404,405],{"href":15},"customer link"," again.",[364,408,410],{"id":409},"vehicle-and-tesla-errors","Vehicle and Tesla errors",[95,412,413,414,420,421,424],{},"Requests for a shared product return the same errors as the ",[345,415,419],{"href":416,"rel":417},"https:\u002F\u002Fteslemetry.com\u002Fdocs\u002Fgetting-started\u002Fapi",[418],"nofollow","Teslemetry API",", such as ",[107,422,423],{},"408"," when an asleep vehicle does not wake up in time.",[90,426,348],{"id":427},"rate-limits",[95,429,430],{},"Rate limits are counted per customer, not per API key:",[197,432,433,443],{},[200,434,435],{},[203,436,437,440],{},[206,438,439],{},"Group",[206,441,442],{},"Limit",[217,444,445,453,461,469,477],{},[203,446,447,450],{},[222,448,449],{},"Vehicle commands",[222,451,452],{},"28 per 30 seconds",[203,454,455,458],{},[222,456,457],{},"Vehicle wake-ups",[222,459,460],{},"3 per 30 seconds",[203,462,463,466],{},[222,464,465],{},"Energy site requests",[222,467,468],{},"55 per minute",[203,470,471,474],{},[222,472,473],{},"Time-of-use setting updates",[222,475,476],{},"10 per 45 minutes, per energy site",[203,478,479,482],{},[222,480,481],{},"Server-Sent Events connections",[222,483,484],{},"20 at a time",[95,486,487,488,491,492,495],{},"Exceeding a limit returns ",[107,489,490],{},"429 rate_limited",", with a ",[107,493,494],{},"retry-after"," header in seconds:",[99,497,499],{"className":101,"code":498,"filename":103,"language":104,"meta":105,"style":105},"{\n  \"response\": null,\n  \"error\": \"rate_limited\",\n  \"error_description\": \"Rate limit exceeded, retry after 12 seconds\"\n}\n",[107,500,501,505,517,535,552],{"__ignoreMap":105},[110,502,503],{"class":112,"line":113},[110,504,117],{"class":116},[110,506,507,509,511,513,515],{"class":112,"line":120},[110,508,123],{"class":116},[110,510,127],{"class":126},[110,512,130],{"class":116},[110,514,133],{"class":116},[110,516,136],{"class":116},[110,518,519,521,523,525,527,529,531,533],{"class":112,"line":139},[110,520,123],{"class":116},[110,522,144],{"class":126},[110,524,130],{"class":116},[110,526,133],{"class":116},[110,528,151],{"class":116},[110,530,340],{"class":154},[110,532,130],{"class":116},[110,534,160],{"class":116},[110,536,537,539,541,543,545,547,550],{"class":112,"line":163},[110,538,123],{"class":116},[110,540,168],{"class":126},[110,542,130],{"class":116},[110,544,133],{"class":116},[110,546,151],{"class":116},[110,548,549],{"class":154},"Rate limit exceeded, retry after 12 seconds",[110,551,180],{"class":116},[110,553,554],{"class":112,"line":183},[110,555,186],{"class":116},[95,557,558],{},"Repeated requests with an invalid API key from the same IP address are slowed down too.",[95,560,561],{},"Tesla's Fleet API applies its own limits upstream.",[563,564,565],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":105,"searchDepth":120,"depth":120,"links":567},[568,572],{"id":92,"depth":120,"text":93,"children":569},[570,571],{"id":366,"depth":139,"text":367},{"id":409,"depth":139,"text":410},{"id":427,"depth":120,"text":348},"The errors the API returns, and its rate limits.","md",{},true,{"title":68,"description":573},"B6jnsgXr7D8ELa6TkPdfIG5jpTTyZQciTwtYJAte8QI",[580,582],{"title":36,"path":65,"stem":66,"description":581,"children":-1},"Setting your business webhook with the API, and the messages it receives.",{"title":77,"path":78,"stem":79,"description":583,"children":-1},"Last Updated 13 May 2024",1791455699626]