{"openapi":"3.1.0","info":{"title":"Linode Billing and Events (BYOK) API","version":"0.1.0","description":"Linode Billing and Events (BYOK) lets an AI assistant read your own Linode Billing and Events data through the Linode Billing and Events API with a key you supply (personal access token (read-only scopes are enough)). Read-only: 10 tools (list_invoices, list_invoice_items, list_payments, get_network_transfer_usage, list_events, list_notifications, list_maintenances, list_maintenance_policies,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-linode-billing-events.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-linode-billing-events/docs"},"termsOfService":"https://connectorbay.com/byok-linode-billing-events/terms"},"servers":[{"url":"https://byok-linode-billing-events.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-linode-billing-events/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_invoices":{"post":{"operationId":"list_invoices","summary":"List invoices with date, label, subtotal, tax and total in USD. Use for \"What were my last Linode invoices\".","description":"List invoices with date, label, subtotal, tax and total in USD. Use for \"What were my last Linode invoices\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_invoicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_invoice_items":{"post":{"operationId":"list_invoice_items","summary":"List the line items of one invoice with service label, region, period, quantity, unit price and total. Use for \"What are","description":"List the line items of one invoice with service label, region, period, quantity, unit price and total. Use for \"What are the line items on Linode invoice 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"invoice_id":{"description":"Numeric invoice id, as shown by list_invoices.","minimum":1,"title":"Invoice Id","type":"integer"},"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"required":["invoice_id"],"title":"list_invoice_itemsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_payments":{"post":{"operationId":"list_payments","summary":"List payments made to the account with date and amount in USD (no card details are returned). Use for \"When did I last p","description":"List payments made to the account with date and amount in USD (no card details are returned). Use for \"When did I last pay Linode and how much\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_paymentsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_network_transfer_usage":{"post":{"operationId":"get_network_transfer_usage","summary":"Show this month's network transfer pool: quota, used and billable GB in total and per region. Use for \"How much of my Li","description":"Show this month's network transfer pool: quota, used and billable GB in total and per region. Use for \"How much of my Linode network transfer pool have I used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_network_transfer_usageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_events":{"post":{"operationId":"list_events","summary":"List recent account events (instance boots, resizes, backups, maintenance) with action, entity, status and time. Use for","description":"List recent account events (instance boots, resizes, backups, maintenance) with action, entity, status and time. Use for \"What happened on my Linode account in the last events\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_notifications":{"post":{"operationId":"list_notifications","summary":"List active notifications such as planned maintenance, outages, ticket updates and payment reminders. Use for \"Are there","description":"List active notifications such as planned maintenance, outages, ticket updates and payment reminders. Use for \"Are there any active Linode notifications for my account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_notificationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_maintenances":{"post":{"operationId":"list_maintenances","summary":"List scheduled and in-progress maintenance for the account's services with reason, type, status and start time. Use for ","description":"List scheduled and in-progress maintenance for the account's services with reason, type, status and start time. Use for \"Is any scheduled maintenance coming up for my Linodes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_maintenancesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_maintenance_policies":{"post":{"operationId":"list_maintenance_policies","summary":"List the maintenance policies Linode offers (such as migrate or power off and on) with notification period and default f","description":"List the maintenance policies Linode offers (such as migrate or power off and on) with notification period and default flag. Use for \"Which Linode maintenance policies can I choose from\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_maintenance_policiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_account_settings":{"post":{"operationId":"get_account_settings","summary":"Show account settings such as backups enabled, network helper, managed service, Object Storage status and default mainte","description":"Show account settings such as backups enabled, network helper, managed service, Object Storage status and default maintenance policy. Use for \"Are backups enabled by default on my Linode account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_account_settingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_network_transfer_prices":{"post":{"operationId":"list_network_transfer_prices","summary":"List network transfer prices per GB with hourly and monthly cost and per-region prices. Use for \"What does extra network","description":"List network transfer prices per GB with hourly and monthly cost and per-region prices. Use for \"What does extra network transfer cost on Linode\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":500,"minimum":25,"type":"integer"},{"type":"null"}],"default":100,"description":"How many results to return (25 to 500).","title":"Page Size"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1; 'pages' in the answer is the total number of pages.","title":"Page"}},"title":"list_network_transfer_pricesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}