{"openapi":"3.1.0","info":{"title":"Schematic (BYOK) API","version":"0.1.0","description":"Schematic (BYOK) lets an AI assistant read your own Schematic data through the Schematic API with a key you supply (Schematic secret API key (a read-only key is recommended)). Read-only: 7 tools (list_plans, list_companies, list_features, list_credits, list_credit_bundles, list_plan_entitlements, list_feature_usage). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-schematic.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-schematic/docs"},"termsOfService":"https://connectorbay.com/byok-schematic/terms"},"servers":[{"url":"https://byok-schematic.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-schematic/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_plans":{"post":{"operationId":"list_plans","summary":"List plans and add-ons with name, type, charge type, billing strategy, number of companies, trial days and monthly and y","description":"List plans and add-ons with name, type, charge type, billing strategy, number of companies, trial days and monthly and yearly prices. Use for \"Which Schematic plans do I have and how many companies are on each\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"plan_type":{"anyOf":[{"enum":["plan","add_on"],"type":"string"},{"type":"null"}],"default":null,"description":"Restrict to plans or add-ons.","title":"Plan Type"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search.","title":"Q"},"exclude_unused":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"Hide plans that nothing uses.","title":"Exclude Unused"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"title":"list_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_companies":{"post":{"operationId":"list_companies","summary":"List companies (your customers) with their current plan, subscription status, total price, billing interval and user cou","description":"List companies (your customers) with their current plan, subscription status, total price, billing interval and user count. Payment method and billing email details are not returned. Use for \"Which Schematic companies are past due or on a trial\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search.","title":"Q"},"plan_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only companies on this plan id (starts with plan_).","title":"Plan Id"},"with_subscription":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only companies that have a subscription.","title":"With Subscription"},"without_plan":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"Only companies without a plan.","title":"Without Plan"},"sort_order_column":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Column to sort by, for example name, created_at or last_seen_at.","title":"Sort Order Column"},"sort_order_direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Sort Order Direction"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"title":"list_companiesArguments","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_features":{"post":{"operationId":"list_features","summary":"List features with name, type (boolean, event or trait), description and lifecycle phase. Use for \"Which features are de","description":"List features with name, type (boolean, event or trait), description and lifecycle phase. Use for \"Which features are defined in Schematic and which are metered\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"feature_type":{"anyOf":[{"enum":["boolean","event","trait"],"type":"string"},{"type":"null"}],"default":null,"description":"Restrict to one feature type.","title":"Feature Type"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search.","title":"Q"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"title":"list_featuresArguments","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_credits":{"post":{"operationId":"list_credits","summary":"List billing credit types with name, description, burn strategy, expiry defaults and rollover policy. Use for \"Which cre","description":"List billing credit types with name, description, burn strategy, expiry defaults and rollover policy. Use for \"Which credit types does my Schematic account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by credit name.","title":"Name"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"title":"list_creditsArguments","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_credit_bundles":{"post":{"operationId":"list_credit_bundles","summary":"List purchasable credit bundles with name, credit type, quantity, status, bundle type and expiry settings. Use for \"Whic","description":"List purchasable credit bundles with name, credit type, quantity, status, bundle type and expiry settings. Use for \"Which credit bundles can customers buy in Schematic\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"credit_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only bundles of this credit type id.","title":"Credit Id"},"status":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Bundle status filter.","title":"Status"},"bundle_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Bundle type filter.","title":"Bundle Type"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"title":"list_credit_bundlesArguments","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_plan_entitlements":{"post":{"operationId":"list_plan_entitlements","summary":"List plan entitlements: which feature each plan grants, the value type, numeric limit or boolean value, soft limit and m","description":"List plan entitlements: which feature each plan grants, the value type, numeric limit or boolean value, soft limit and metric period. Use for \"What limits does each Schematic plan give for each feature\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"plan_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only entitlements of this plan id (starts with plan_).","title":"Plan Id"},"feature_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only entitlements for this feature id (starts with feat_).","title":"Feature Id"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search.","title":"Q"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"title":"list_plan_entitlementsArguments","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_feature_usage":{"post":{"operationId":"list_feature_usage","summary":"List feature usage per entitlement: allocation, usage so far, percent used, period and reset time. Pass a company id to ","description":"List feature usage per entitlement: allocation, usage so far, percent used, period and reset time. Pass a company id to see one customer's usage. Use for \"How much of their limits has Schematic company comp_1 used this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"company_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Company id (starts with comp_) to show that company's usage.","title":"Company Id"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search.","title":"Q"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"title":"list_feature_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}}}}