{"openapi":"3.1.0","info":{"title":"Moesif (BYOK) API","version":"0.1.0","description":"Moesif (BYOK) lets an AI assistant read your own Moesif data through the Moesif API with a key you supply (Management API token (with the read:apps, read:dashboards and related read scopes)). Read-only: 7 tools (list_apps, list_governance_rules, list_billing_meters, list_billing_plans, list_billing_prices, list_billing_reports, list_dashboards). The BYOK key travels with each request, is used for...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-moesif.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-moesif/docs"},"termsOfService":"https://connectorbay.com/byok-moesif/terms"},"servers":[{"url":"https://byok-moesif.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-moesif/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_apps":{"post":{"operationId":"list_apps","summary":"List the Moesif applications of the organization with name, time zone, week start and ID. Needs the read:apps scope. Use","description":"List the Moesif applications of the organization with name, time zone, week start and ID. Needs the read:apps scope. Use for \"Which Moesif applications are in my organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"take":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many applications to return, for example 20.","title":"Take"},"before_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: return applications before this application ID (the last ID of the previous page).","title":"Before Id"}},"title":"list_appsArguments","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_governance_rules":{"post":{"operationId":"list_governance_rules","summary":"List API governance rules (block, rate limit or modify rules applied to API traffic) with type, state, priority and what","description":"List API governance rules (block, rate limit or modify rules applied to API traffic) with type, state, priority and what they apply to. Use for \"Which governance rules are active in Moesif\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Moesif application ID, as returned by list_apps. Leave out to use the application the key belongs to.","title":"App Id"}},"title":"list_governance_rulesArguments","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_billing_meters":{"post":{"operationId":"list_billing_meters","summary":"List usage-based billing meters (what API usage is metered and sent to a billing provider) with slug, status, provider a","description":"List usage-based billing meters (what API usage is metered and sent to a billing provider) with slug, status, provider and dates. Use for \"Which billing meters does Moesif have set up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Moesif application ID, as returned by list_apps. Leave out to use the application the key belongs to.","title":"App Id"}},"title":"list_billing_metersArguments","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_billing_plans":{"post":{"operationId":"list_billing_plans","summary":"List the billing plans synced to Moesif from billing providers, each with its prices, status and unit. Use for \"Which bi","description":"List the billing plans synced to Moesif from billing providers, each with its prices, status and unit. Use for \"Which billing plans does Moesif know about\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Moesif application ID, as returned by list_apps. Leave out to use the application the key belongs to.","title":"App Id"},"provider":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Billing provider to filter by (for example 'stripe'); leave out for all providers.","title":"Provider"}},"title":"list_billing_plansArguments","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_billing_prices":{"post":{"operationId":"list_billing_prices","summary":"List the billing prices synced to Moesif with plan, currency, pricing model, amount, period and usage aggregator. Use fo","description":"List the billing prices synced to Moesif with plan, currency, pricing model, amount, period and usage aggregator. Use for \"What prices are configured in Moesif billing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Moesif application ID, as returned by list_apps. Leave out to use the application the key belongs to.","title":"App Id"},"provider":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Billing provider to filter by (for example 'stripe'); leave out for all providers.","title":"Provider"}},"title":"list_billing_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}},"/v1/tools/list_billing_reports":{"post":{"operationId":"list_billing_reports","summary":"List usage billing reports sent to billing providers with company, meter, usage, amount, success flag and time range. Fi","description":"List usage billing reports sent to billing providers with company, meter, usage, amount, success flag and time range. Filter by time, meter, company or success. Use for \"Did Moesif send usage to the billing provider successfully this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Moesif application ID, as returned by list_apps. Leave out to use the application the key belongs to.","title":"App Id"},"from_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only reports from this ISO 8601 time, for example 2026-10-01T00:00:00Z.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only reports up to this ISO 8601 time.","title":"To Time"},"billing_meter_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only reports of this billing meter ID.","title":"Billing Meter Id"},"company_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only reports of this company ID.","title":"Company Id"},"success":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for successful reports only, false for failed only.","title":"Success"}},"title":"list_billing_reportsArguments","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_dashboards":{"post":{"operationId":"list_dashboards","summary":"List the team dashboards of a Moesif application as returned by the API (the response shape is not documented, so the fu","description":"List the team dashboards of a Moesif application as returned by the API (the response shape is not documented, so the full objects are returned, at most 50). Use for \"Which dashboards exist in Moesif\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"app_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Moesif application ID, as returned by list_apps. Leave out to use the application the key belongs to.","title":"App Id"}},"title":"list_dashboardsArguments","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}}}}