[{"data":1,"prerenderedAt":197},["ShallowReactive",2],{"docs-\u002Fapi\u002Fusage":3},{"id":4,"title":5,"body":6,"description":189,"extension":190,"meta":191,"navigation":192,"path":193,"seo":194,"stem":195,"__hash__":196},"docs\u002Fdocs\u002Fapi\u002Fusage.md","Usage API",{"type":7,"value":8,"toc":180},"minimark",[9,13,21,66,72,101,107,138,144],[10,11,5],"h1",{"id":12},"usage-api",[14,15,17],"h3",{"id":16},"post-apiusageingest",[18,19,20],"code",{},"POST \u002Fapi\u002Fusage\u002Fingest",[22,23,24,28,35,38,45,60],"ul",{},[25,26,27],"li",{},"Purpose: Ingest usage events from the edge\u002Fproxy layer.",[25,29,30,31,34],{},"Auth: ",[18,32,33],{},"X-Ingest-Key"," shared secret.",[25,36,37],{},"Request shape: Usage payload (tenant, bytes, request metadata).",[25,39,40,41,44],{},"Response shape: ",[18,42,43],{},"{ ok: true }",".",[25,46,47,48,51,52,55,56,59],{},"Key errors: ",[18,49,50],{},"401","\u002F",[18,53,54],{},"403"," invalid ingest key, ",[18,57,58],{},"400"," invalid payload.",[25,61,62,63,65],{},"Example: ",[18,64,20],{}," with ingest key header.",[14,67,69],{"id":68},"get-apiusagecheck",[18,70,71],{},"GET \u002Fapi\u002Fusage\u002Fcheck",[22,73,74,77,81,84,87,96],{},[25,75,76],{},"Purpose: Internal usage limit\u002Fstatus check.",[25,78,30,79,34],{},[18,80,33],{},[25,82,83],{},"Request shape: Query for tenant\u002Fperiod (as defined in handler).",[25,85,86],{},"Response shape: Limit\u002Fcheck result.",[25,88,47,89,51,91,93,94,44],{},[18,90,50],{},[18,92,54],{},", ",[18,95,58],{},[25,97,62,98,44],{},[18,99,100],{},"GET \u002Fapi\u002Fusage\u002Fcheck?...",[14,102,104],{"id":103},"get-apidemosprovider",[18,105,106],{},"GET \u002Fapi\u002Fdemos\u002F{provider}",[22,108,109,112,115,121,124,133],{},[25,110,111],{},"Purpose: Return demo payload for supported providers.",[25,113,114],{},"Auth: Public read.",[25,116,117,118,44],{},"Request shape: Path ",[18,119,120],{},"{provider}",[25,122,123],{},"Response shape: Demo data for requested provider.",[25,125,47,126,129,130,132],{},[18,127,128],{},"404"," provider not found, ",[18,131,58],{}," invalid provider.",[25,134,62,135,44],{},[18,136,137],{},"GET \u002Fapi\u002Fdemos\u002Fprismic",[14,139,141],{"id":140},"get-apiplaygroundtenant-config",[18,142,143],{},"GET \u002Fapi\u002Fplayground\u002Ftenant-config",[22,145,146,149,151,158,167,175],{},[25,147,148],{},"Purpose: Return public-safe tenant config used by playground UI bootstrap.",[25,150,114],{},[25,152,153,154,157],{},"Request shape: Query ",[18,155,156],{},"slug"," (required).",[25,159,40,160,163,164,44],{},[18,161,162],{},"{ slug, cms, identifierField, identifierValue, apiOrigin, origin, videoOrigin }","; on missing tenant returns same shape with null fields and ",[18,165,166],{},"error",[25,168,47,169,171,172,174],{},[18,170,58],{}," when ",[18,173,156],{}," query param is missing.",[25,176,62,177,44],{},[18,178,179],{},"GET \u002Fapi\u002Fplayground\u002Ftenant-config?slug=demo",{"title":181,"searchDepth":182,"depth":182,"links":183},"",2,[184,186,187,188],{"id":16,"depth":185,"text":20},3,{"id":68,"depth":185,"text":71},{"id":103,"depth":185,"text":106},{"id":140,"depth":185,"text":143},"Ingest\u002Fcheck usage endpoints plus shared usage and demo\u002Fstat helpers.","md",{},true,"\u002Fdocs\u002Fapi\u002Fusage",{"title":5,"description":189},"docs\u002Fapi\u002Fusage","sWkPyXTMZa2_TP-049GH-zEPA2kvT1WUTSnqtMLCoT8",1777579477593]