Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so resets_at is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess.
Inbound calls count towards usage and are never refused by these limits: a person cannot control who rings them.
Workspaces on plans without fair-use ceilings get limited: false and an empty windows list.
ending means the owner cancelled: everything keeps working until ends_at, then the number is released for good. While ending, stop giving the number out to new people. ended means the plan is over.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Brilo","colors":{"primary":"#8C7AE6","light":"#ADB5BD","dark":"#343A40"},"logo":{"light":"https://mintcdn.com/brilo/MxABbmjUyMnseUhC/logo/light.png?fit=max\u0026auto=format\u0026n=MxABbmjUyMnseUhC\u0026q=85\u0026s=d4d6fb2d6eb070743955e91ad4de3991","dark":"https://mintcdn.com/brilo/pWKPO3fYjsyPFmaW/logo/dark.svg?fit=max\u0026auto=format\u0026n=pWKPO3fYjsyPFmaW\u0026q=85\u0026s=bdc949595db36f3fd5eb662601ca3208"},"favicon":"https://mintcdn.com/brilo/QQo147ZHWnpiYhnW/favicon.svg?fit=max\u0026auto=format\u0026n=QQo147ZHWnpiYhnW\u0026q=85\u0026s=2aada838f7a27240e42ba75002f91501","appearance":{"default":"dark"},"navbar":{"links":[{"href":"mailto:support@brilo.ai","label":"Support"}],"primary":{"type":"button","label":"Get Keys","href":"https://dashboard.brilo.ai/settings/developer/api-keys"}},"footer":{"socials":{"x":"https://x.com/hellobrilo","linkedin":"https://www.linkedin.com/company/brilo"}},"seo":{"metatags":{"og:locale":"en_US","twitter:site":"@hellobrilo"},"indexing":"navigable"},"icons":{"library":"lucide"},"contextual":{"options":["copy","chatgpt","claude","add-mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://brilo.ai/resources"},{"anchor":"Community","icon":{"style":"brands","name":"discord","library":"fontawesome"},"href":"https://discord.gg/4rjVc2Zt6P"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"brilo","hasAudioNarration":false,"actualSubdomain":"brilo","customDomains":["docs.brilo.ai"],"gitSource":{"type":"github","owner":"briloai","repo":"brilo-api","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af31a7339d0955f17815efe","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Guides","count":124},{"language":"default","tag":"API Reference","count":52},{"language":"default","tag":"Configure","count":41},{"language":"default","tag":"Agents","count":34},{"language":"default","tag":"Campaigns","count":17},{"language":"default","tag":"Agents and versions","count":16},{"language":"default","tag":"Deploy","count":15},{"language":"default","tag":"Phone numbers","count":14},{"language":"default","tag":"Fix a problem","count":10},{"language":"default","tag":"Actions","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/usage/how-much-of-the-plan-is-left-right-now","slug":"/api-reference/usage/how-much-of-the-plan-is-left-right-now","pageMetadata":{"title":"How much of the plan is left right now","description":"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so `resets_at` is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess.\n\nInbound calls count towards usage and are never refused by these limits: a person cannot control who rings them.\n\nWorkspaces on plans without fair-use ceilings get `limited: false` and an empty `windows` list.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /usage","href":"/api-reference/usage/how-much-of-the-plan-is-left-right-now","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so \", _jsx(_components.code, {\n children: \"resets_at\"\n }), \" is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Inbound calls count towards usage and are never refused by these limits: a person cannot control who rings them.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Workspaces on plans without fair-use ceilings get \", _jsx(_components.code, {\n children: \"limited: false\"\n }), \" and an empty \", _jsx(_components.code, {\n children: \"windows\"\n }), \" list.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"How much of the plan is left right now","description":"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so `resets_at` is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess.\n\nInbound calls count towards usage and are never refused by these limits: a person cannot control who rings them.\n\nWorkspaces on plans without fair-use ceilings get `limited: false` and an empty `windows` list.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /usage","href":"/api-reference/usage/how-much-of-the-plan-is-left-right-now","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so `resets_at` is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess.\n\nInbound calls count towards usage and are never refused by these limits: a person cannot control who rings them.\n\nWorkspaces on plans without fair-use ceilings get `limited: false` and an empty `windows` list.","operationId":"UsageController_read","parameters":[],"responses":{"200":"15387995-0758-4aca-b82b-8dc6dd0945f0"},"security":["7e8fdeff-9f3a-40c5-a44f-f81243e19a2e"],"summary":"How much of the plan is left right now","tags":["Usage"],"method":"get","type":"path","servers":["01e4ba38-9a87-4e89-992c-ca2f8969e557"],"path":"/usage","baseUrlOptions":["https://api.brilo.ai/v1"],"title":"How much of the plan is left right now","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"responses":{"15387995-0758-4aca-b82b-8dc6dd0945f0":{"content":{"application/json":{"schema":{"properties":{"concurrent_calls":{"description":"How many calls may be in flight at once, inbound or outbound.","example":1,"type":"number","isRequired":true,"uniqueKey":"concurrent_calls","typeLabel":"number"},"ends_at":{"oneOf":[{"description":"ISO-8601. When the plan stops, while `plan_status` is `ending`. Otherwise null.","example":null,"type":"string","isRequired":true,"uniqueKey":"ends_at.oneOf.0","typeLabel":"string"},{"description":"ISO-8601. When the plan stops, while `plan_status` is `ending`. Otherwise null.","example":null,"type":"null","isRequired":true,"uniqueKey":"ends_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"ends_at","typeLabel":"string | null"},"limited":{"description":"False for plans with no fair-use ceilings. `windows` is then empty, and nothing here refuses a call.","type":"boolean","isRequired":true,"uniqueKey":"limited","typeLabel":"boolean"},"max_call_minutes":{"description":"Longest single call, in minutes. Not a window; a per-call cap.","example":60,"type":"number","isRequired":true,"uniqueKey":"max_call_minutes","typeLabel":"number"},"number_held_until":{"oneOf":[{"description":"Reserved for a later release that holds the number for a few days after the plan ends. Always null today.","example":null,"type":"string","isRequired":true,"uniqueKey":"number_held_until.oneOf.0","typeLabel":"string"},{"description":"Reserved for a later release that holds the number for a few days after the plan ends. Always null today.","example":null,"type":"null","isRequired":true,"uniqueKey":"number_held_until.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"number_held_until","typeLabel":"string | null"},"plan_status":{"description":"`ending` means the owner cancelled: everything keeps working until `ends_at`, then the number is released for good. While ending, stop giving the number out to new people. `ended` means the plan is over.","enum":["active","ending","ended"],"example":"active","type":"string","isRequired":true,"uniqueKey":"plan_status","typeLabel":"enum\u003cstring>"},"windows":{"items":{"properties":{"key":{"description":"Which ceiling this is. Matches the `code` on the refusal you would get for breaching it, so the two can be correlated without a lookup table.","example":"calls_per_day","type":"string","isRequired":true,"uniqueKey":"windows.items.[INDEX].key","typeLabel":"string"},"label":{"description":"Say this to a person.","example":"Calls today","type":"string","isRequired":true,"uniqueKey":"windows.items.[INDEX].label","typeLabel":"string"},"limit":{"example":100,"type":"number","isRequired":true,"uniqueKey":"windows.items.[INDEX].limit","typeLabel":"number"},"remaining":{"description":"Never below zero, even if a window was over-spent.","example":38,"type":"number","isRequired":true,"uniqueKey":"windows.items.[INDEX].remaining","typeLabel":"number"},"resets_at":{"description":"ISO-8601. When the OLDEST activity in this rolling window ages out, which is the first moment retrying can succeed.","example":"2026-09-22T09:14:00.000Z","type":"string","isRequired":true,"uniqueKey":"windows.items.[INDEX].resets_at","typeLabel":"string"},"used":{"example":12,"type":"number","isRequired":true,"uniqueKey":"windows.items.[INDEX].used","typeLabel":"number"}},"required":["key","label","limit","used","remaining","resets_at"],"type":"object","uniqueKey":"windows.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"windows","typeLabel":"object[]"}},"required":["limited","windows","max_call_minutes","concurrent_calls","plan_status","ends_at","number_held_until"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"concurrent_calls":1,"ends_at":null,"limited":true,"max_call_minutes":60,"number_held_until":null,"plan_status":"active","windows":[{"key":"calls_per_day","label":"Calls today","limit":100,"remaining":38,"resets_at":"2026-09-22T09:14:00.000Z","used":12}]}}},"exampleType":"generated"}},"description":"","exampleType":"generated"}},"security":{"7e8fdeff-9f3a-40c5-a44f-f81243e19a2e":{"bearerAuth":{"bearerFormat":"JWT","description":"Enter your API key (Bearer token)","scheme":"bearer","type":"http","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"01e4ba38-9a87-4e89-992c-ca2f8969e557":{"description":"Production","url":"https://api.brilo.ai/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"bearerFormat":"JWT","description":"Enter your API key (Bearer token)","scheme":"bearer","type":"http","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Enter your API key (Bearer token)","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"brilo","siteName":"Brilo","title":"How much of the plan is left right now - Brilo","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-06T13:34:48.201Z","originalFileLocation":"api-reference/usage/how-much-of-the-plan-is-left-right-now.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so resets_at is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess. Inbound calls count towards usage and are never refused by these limits: a person cannot control who rings them. Workspaces on plans without fair-use ceilings get limited: false and an empty windows list.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Brilo\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How much of the plan is left right now - Brilo\">\u003cmeta data-mint-head property=\"og:description\" content=\"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so resets_at is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess. Inbound calls count towards usage and are never refused by these limits: a person cannot control who rings them. Workspaces on plans without fair-use ceilings get limited: false and an empty windows list.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Brilo\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://brilo.mintlify.site/_mintlify/api/og/v2?division=Agent+pairing\u0026amp;title=How+much+of+the+plan+is+left+right+now\u0026amp;description=Every+window+the+plan+enforces%3A+the+limit%2C+how+much+is+used%2C+how+much+is+left%2C+and+when+it+frees+up.+Windows+are+ROLLING%2C+not+calendar+%E2%80%94+burning+the+hourly+allo\u0026amp;theme=a8d9604170048b9b1e5f08e4\u0026amp;signature=23b81062a6d2984bbbd0172ab0126e76850e49053349934e228b027d64c8f3de\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"How much of the plan is left right now - Brilo\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so resets_at is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess. Inbound calls count towards usage and are never refused by these limits: a person cannot control who rings them. Workspaces on plans without fair-use ceilings get limited: false and an empty windows list.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://brilo.mintlify.site/_mintlify/api/og/v2?division=Agent+pairing\u0026amp;title=How+much+of+the+plan+is+left+right+now\u0026amp;description=Every+window+the+plan+enforces%3A+the+limit%2C+how+much+is+used%2C+how+much+is+left%2C+and+when+it+frees+up.+Windows+are+ROLLING%2C+not+calendar+%E2%80%94+burning+the+hourly+allo\u0026amp;theme=a8d9604170048b9b1e5f08e4\u0026amp;signature=23b81062a6d2984bbbd0172ab0126e76850e49053349934e228b027d64c8f3de\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/brilo/ASd0F1aN8luMwk5v/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Brilo\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#8C7AE6\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/usage/how-much-of-the-plan-is-left-right-now.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.brilo.ai/#organization\",\"name\":\"Brilo\",\"url\":\"https://docs.brilo.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/brilo/MxABbmjUyMnseUhC/logo/light.png?fit=max\u0026auto=format\u0026n=MxABbmjUyMnseUhC\u0026q=85\u0026s=d4d6fb2d6eb070743955e91ad4de3991\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.brilo.ai#website\",\"name\":\"Brilo\",\"url\":\"https://docs.brilo.ai\",\"publisher\":{\"@id\":\"https://docs.brilo.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now#webpage\",\"url\":\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now\",\"name\":\"How much of the plan is left right now\",\"description\":\"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so resets_at is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess. Inbound calls count towards usage and are never refused by these limits: a person cannot control who rings them. Workspaces on plans without fair-use ceilings get limited: false and an empty windows list.\",\"dateModified\":\"2026-11-06T13:34:48.201Z\",\"isPartOf\":{\"@id\":\"https://docs.brilo.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agent pairing\",\"item\":\"https://docs.brilo.ai/api-reference/agent-pairing/start-pairing-this-assistant-with-a-brilo-phone-number\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How much of the plan is left right now\",\"item\":\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now#apireference\",\"headline\":\"How much of the plan is left right now\",\"name\":\"How much of the plan is left right now\",\"description\":\"Every window the plan enforces: the limit, how much is used, how much is left, and when it frees up. Windows are ROLLING, not calendar — burning the hourly allowance at 10:59 does not hand back a fresh one at 11:00 — so resets_at is the moment the oldest call in that window ages out, which is a real time to retry rather than a guess. Inbound calls count towards usage and are never refused by these limits: a person cannot control who rings them. Workspaces on plans without fair-use ceilings get limited: false and an empty windows list.\",\"url\":\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now\",\"mainEntityOfPage\":{\"@id\":\"https://docs.brilo.ai/api-reference/usage/how-much-of-the-plan-is-left-right-now#webpage\"},\"dateModified\":\"2026-11-06T13:34:48.201Z\",\"publisher\":{\"@id\":\"https://docs.brilo.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.brilo.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Brilo\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Brilo\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/usage/how-much-of-the-plan-is-left-right-now.md","siteName":"Brilo","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://brilo.ai/resources"},{"anchor":"Community","icon":{"style":"brands","name":"discord","library":"fontawesome"},"href":"https://discord.gg/4rjVc2Zt6P"}]},"tabs":[{"tab":"Guides","icon":"book","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API Reference","icon":"code-xml","groups":[{"group":"Endpoints","icon":"code-xml","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":null,"href":"/api-reference/endpoint/agent-builder"},{"title":"Call","href":"/api-reference/endpoint/call"},{"title":null,"href":"/api-reference/endpoint/call-tag"},{"title":null,"href":"/api-reference/endpoint/campaign"},{"title":null,"href":"/api-reference/endpoint/contact"},{"title":null,"href":"/api-reference/endpoint/custom-field"},{"title":null,"href":"/api-reference/endpoint/memory"},{"title":null,"href":"/api-reference/endpoint/list"},{"title":null,"href":"/api-reference/endpoint/voice"}]},{"group":"Agents","icon":"bot","pages":[{"title":"Change an agent through the API","href":"/api-reference/agents/quickstart"},{"title":"Versions are branches","href":"/api-reference/agents/versions"},{"title":"Buy and release phone numbers through the API","href":"/api-reference/agents/phone-numbers"},{"group":"Agents and versions","icon":"bot","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents","href":"/api-reference/agents-public/list-agents"},{"title":"Create an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents","href":"/api-reference/agents-public/create-an-agent"},{"title":"Get an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}","href":"/api-reference/agents-public/get-an-agent"},{"title":"Update an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agents/{id}","href":"/api-reference/agents-public/update-an-agent"},{"title":"Publish an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/publish","href":"/api-reference/agents-public/publish-an-agent"},{"title":"Delete an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}","href":"/api-reference/agents-public/delete-an-agent"},{"title":"List versions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/versions","href":"/api-reference/agents-public/list-versions"},{"title":"Create a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/versions","href":"/api-reference/agents-public/create-a-version"},{"title":"Get a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/versions/{vid}","href":"/api-reference/agents-public/get-a-version"},{"title":"Update a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agents/{id}/versions/{vid}","href":"/api-reference/agents-public/update-a-version"},{"title":"Discard a draft","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}/versions/{vid}/draft","href":"/api-reference/agents-public/discard-a-draft"},{"title":"Publish a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/versions/{vid}/publish","href":"/api-reference/agents-public/publish-a-version"},{"title":"Make a version live","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/versions/{vid}/go_live","href":"/api-reference/agents-public/make-a-version-live"},{"title":"List commits","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/versions/{vid}/history","href":"/api-reference/agents-public/list-commits"},{"title":"Restore a commit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/versions/{vid}/restore","href":"/api-reference/agents-public/restore-a-commit"},{"title":"Delete a version","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agents/{id}/versions/{vid}","href":"/api-reference/agents-public/delete-a-version"}]},{"group":"Phone numbers","icon":"phone","pages":[{"title":"Search numbers to buy","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone_numbers/available","href":"/api-reference/agents-public/search-numbers-to-buy"},{"title":"Buy a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /phone_numbers","href":"/api-reference/agents-public/buy-a-phone-number"},{"title":"List phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone_numbers","href":"/api-reference/agents-public/list-phone-numbers"},{"title":"Get a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /phone_numbers/{id}","href":"/api-reference/agents-public/get-a-phone-number"},{"title":"Keep a number set to be released","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /phone_numbers/{id}","href":"/api-reference/agents-public/keep-a-number-set-to-be-released"},{"title":"Release a phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /phone_numbers/{id}","href":"/api-reference/agents-public/release-a-phone-number"},{"title":"List an agent's phone numbers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agents/{id}/phone_numbers","href":"/api-reference/agents-public/list-an-agents-phone-numbers"},{"title":"Attach phone numbers to an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/phone_numbers/attach","href":"/api-reference/agents-public/attach-phone-numbers-to-an-agent"},{"title":"Detach phone numbers from an agent","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agents/{id}/phone_numbers/detach","href":"/api-reference/agents-public/detach-phone-numbers-from-an-agent"}]},{"group":"Share links","icon":"link","pages":[{"title":"Share Links","href":"/api-reference/endpoint/share-link"},{"title":"Create a share link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/{agent_id}/share-link","href":"/api-reference/share-links/create-a-share-link"},{"title":"Get an agent's share link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /agent/{agent_id}/share-link","href":"/api-reference/share-links/get-an-agents-share-link"},{"title":"Update a share link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /agent/{agent_id}/share-link/{link_id}","href":"/api-reference/share-links/update-a-share-link"},{"title":"Replace a share link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/{agent_id}/share-link/{link_id}/regenerate","href":"/api-reference/share-links/replace-a-share-link"},{"title":"Turn off a share link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /agent/{agent_id}/share-link/{link_id}","href":"/api-reference/share-links/turn-off-a-share-link"}]}]},{"group":"MCP server","icon":"unplug","pages":[{"title":"Brilo MCP server","href":"/api-reference/mcp/overview"},{"title":"Connect an MCP client","href":"/api-reference/mcp/connect"},{"title":"Connect Claude or ChatGPT","href":"/api-reference/mcp/claude-and-chatgpt"},{"title":"MCP tools","href":"/api-reference/mcp/tools"}]},{"group":"Agent pairing","icon":"smartphone","pages":[{"title":"Start pairing this assistant with a Brilo phone number","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/onboarding/start","href":"/api-reference/agent-pairing/start-pairing-this-assistant-with-a-brilo-phone-number"},{"title":"Check whether the user has finished, and collect the API key","description":"Call this every `interval` seconds with the `device_code` from /start.\n\n`status` is one of: `pending` (they have not finished yet), `payment_failed` (card declined, the same code still works), `approved` or `provisioning` (paid, the number is being set up), `completed` (done: this response carries `api_key`, `phone_number` and `agent_id`), `denied`, `expired` or `failed` (stop polling). `ended` (the plan is over), `revoked` (the owner disconnected this assistant) and `replaced` (the owner connected this assistant again from a newer install, and that one holds the live key) also mean stop polling; none of them is fixed by pairing again.\n\nEvery response says what it means and what to do next, in `message` and `action`. The API key is only ever returned on `completed`: before then there is no phone number behind it.\n\nPolling faster than `interval` returns 429 with `code: slow_down` and `retry_after` (also sent as a `Retry-After` header). Wait that long, then poll again.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /agent/onboarding/poll","href":"/api-reference/agent-pairing/check-whether-the-user-has-finished-and-collect-the-api-key"},{"title":"How much of the plan is left right now","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /usage","href":"/api-reference/usage/how-much-of-the-plan-is-left-right-now"}]},{"group":"Webhooks","icon":"webhook","pages":[{"title":"Post-Call Webhook","description":"Receive call data at your CRM as soon as a Brilo agent finishes a call","href":"/api-reference/webhooks/post-call"}]}]},{"tab":"Integrations","icon":"unplug","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"Changelog","icon":"history","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"How much of the plan is left right now - Brilo","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}