{"openapi":"3.1.0","info":{"title":"46elks (BYOK) API","version":"0.1.0","description":"46elks (BYOK) lets an AI assistant read your own 46elks data through the 46elks API with a key you supply (46elks API username). Read-only: 5 tools (get_account, list_numbers, get_number, list_subaccounts, get_subaccount). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.46elks.com. Unofficial connector by...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-fortysixelks.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-fortysixelks/docs"},"termsOfService":"https://connectorbay.com/byok-fortysixelks/terms"},"servers":[{"url":"https://byok-fortysixelks.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-fortysixelks/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/get_account":{"post":{"operationId":"get_account","summary":"Show the 46elks account: id, display name, currency and current balance (in the currency's smallest unit as the API retu","description":"Show the 46elks account: id, display name, currency and current balance (in the currency's smallest unit as the API returns it). Use for \"What is my 46elks balance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_accountArguments","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_numbers":{"post":{"operationId":"list_numbers","summary":"List the virtual phone numbers on the account, active and inactive, with country, capabilities, category and allocation ","description":"List the virtual phone numbers on the account, active and inactive, with country, capabilities, category and allocation dates. Up to 100 per page. Use for \"Which virtual phone numbers do I have on 46elks\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Return items created before this timestamp, for example 2026-02-14T09:52:07.302000. Use the 'next' value of the previous answer to page.","title":"Start"},"end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Return items created after this timestamp.","title":"End"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":40,"description":"How many results to return (the API returns at most 100).","title":"Limit"}},"title":"list_numbersArguments","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_number":{"post":{"operationId":"get_number","summary":"Get one virtual number by id with country, capabilities and the callback URLs configured for incoming SMS, MMS and voice","description":"Get one virtual number by id with country, capabilities and the callback URLs configured for incoming SMS, MMS and voice. Use for \"Where does 46elks send incoming SMS for number n57c8f48af76bf986a14f251b35389e8b\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Number id, such as n57c8f48af76bf986a14f251b35389e8b, from list_numbers.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_numberArguments","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_subaccounts":{"post":{"operationId":"list_subaccounts","summary":"List subaccounts with name, creation date, usage limit and credits used. Subaccount secrets are not returned. Up to 100 ","description":"List subaccounts with name, creation date, usage limit and credits used. Subaccount secrets are not returned. Up to 100 per page. Use for \"How many credits has each of my 46elks subaccounts used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Return items created before this timestamp, for example 2026-02-14T09:52:07.302000. Use the 'next' value of the previous answer to page.","title":"Start"},"end":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Return items created after this timestamp.","title":"End"},"active":{"anyOf":[{"const":"yes","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'yes' to list only active subaccounts.","title":"Active"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":40,"description":"How many results to return (the API returns at most 100).","title":"Limit"}},"title":"list_subaccountsArguments","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_subaccount":{"post":{"operationId":"get_subaccount","summary":"Get one subaccount by id with its name, creation date, usage limit, credits used and deactivation state. The secret is n","description":"Get one subaccount by id with its name, creation date, usage limit, credits used and deactivation state. The secret is not returned. Use for \"What is the usage limit of 46elks subaccount af3d05a159669e1951c5301bc6a61bac\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Subaccount id from list_subaccounts.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_subaccountArguments","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}}}}