{"openapi":"3.1.0","info":{"title":"Talon One (BYOK) API","version":"0.1.0","description":"Talon One (BYOK) lets an AI assistant read your own Talon One data through the Talon One API with a key you supply (Management API key). Read-only: 12 tools (list_applications, get_application, list_campaigns, get_campaign, list_coupons, list_loyalty_programs, get_loyalty_program_statistics, list_loyalty_transactions, list_loyalty_cards, list_customer_profiles, list_application_sessions,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-talon-one.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-talon-one/docs"},"termsOfService":"https://connectorbay.com/byok-talon-one/terms"},"servers":[{"url":"https://byok-talon-one.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-talon-one/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_applications":{"post":{"operationId":"list_applications","summary":"List the Applications (promotion workspaces) of the account with currency, timezone and sandbox flag. Use for \"Which App","description":"List the Applications (promotion workspaces) of the account with currency, timezone and sandbox flag. Use for \"Which Applications exist in my Talon.One account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 1000).","title":"Page Size"},"skip":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Skip"}},"required":["deployment"],"title":"list_applicationsArguments","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_application":{"post":{"operationId":"get_application","summary":"Get one Application by ID with its currency, timezone, discount settings and loyalty programs. Use for \"Show Talon.One A","description":"Get one Application by ID with its currency, timezone, discount settings and loyalty programs. Use for \"Show Talon.One Application 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"application_id":{"description":"Application ID, as returned by list_applications.","title":"Application Id","type":"integer"}},"required":["deployment","application_id"],"title":"get_applicationArguments","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_campaigns":{"post":{"operationId":"list_campaigns","summary":"List the campaigns of an Application with state, schedule, tags and redemption counters. Can be filtered by state or nam","description":"List the campaigns of an Application with state, schedule, tags and redemption counters. Can be filtered by state or name. Use for \"Which Talon.One campaigns are running right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"application_id":{"description":"Application ID, as returned by list_applications.","title":"Application Id","type":"integer"},"campaign_state":{"anyOf":[{"enum":["enabled","disabled","archived","scheduled","running","expired","staged"],"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns in this state.","title":"Campaign State"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only campaigns whose name matches this text.","title":"Name"},"sort":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by; prefix with '-' for descending, for example '-created'.","title":"Sort"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 1000).","title":"Page Size"},"skip":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Skip"}},"required":["deployment","application_id"],"title":"list_campaignsArguments","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_campaign":{"post":{"operationId":"get_campaign","summary":"Get one campaign with state, schedule, tags, limits and redemption counters. Use for \"Show Talon.One campaign 10\".","description":"Get one campaign with state, schedule, tags, limits and redemption counters. Use for \"Show Talon.One campaign 10\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"application_id":{"description":"Application ID, as returned by list_applications.","title":"Application Id","type":"integer"},"campaign_id":{"description":"Campaign ID, as returned by list_campaigns.","title":"Campaign Id","type":"integer"}},"required":["deployment","application_id","campaign_id"],"title":"get_campaignArguments","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_coupons":{"post":{"operationId":"list_coupons","summary":"List the coupons of a campaign with usage counters, limits and validity dates. Cursor-less: use skip to page, hasMore te","description":"List the coupons of a campaign with usage counters, limits and validity dates. Cursor-less: use skip to page, hasMore tells if there is more. Use for \"Which coupons of Talon.One campaign 10 were redeemed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"application_id":{"description":"Application ID, as returned by list_applications.","title":"Application Id","type":"integer"},"campaign_id":{"description":"Campaign ID, as returned by list_campaigns.","title":"Campaign Id","type":"integer"},"redeemed":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter on whether the coupon was redeemed.","title":"Redeemed"},"valid":{"anyOf":[{"enum":["expired","validNow","validFuture"],"type":"string"},{"type":"null"}],"default":null,"description":"Filter on validity.","title":"Valid"},"value":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only coupons whose code contains this text.","title":"Value"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 1000).","title":"Page Size"},"skip":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Skip"}},"required":["deployment","application_id","campaign_id"],"title":"list_couponsArguments","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_loyalty_programs":{"post":{"operationId":"list_loyalty_programs","summary":"List the loyalty programs of the account with tier names and join policy. Use for \"Which loyalty programs do we run in T","description":"List the loyalty programs of the account with tier names and join policy. Use for \"Which loyalty programs do we run in Talon.One\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"}},"required":["deployment"],"title":"list_loyalty_programsArguments","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_loyalty_program_statistics":{"post":{"operationId":"get_loyalty_program_statistics","summary":"Get the latest statistics of a loyalty program: active, pending, spent and expired points and member counts. Use for \"Ho","description":"Get the latest statistics of a loyalty program: active, pending, spent and expired points and member counts. Use for \"How many active points and members does Talon.One loyalty program 5 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"loyalty_program_id":{"description":"Loyalty program ID, as returned by list_loyalty_programs.","title":"Loyalty Program Id","type":"integer"}},"required":["deployment","loyalty_program_id"],"title":"get_loyalty_program_statisticsArguments","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_loyalty_transactions":{"post":{"operationId":"list_loyalty_transactions","summary":"List point transactions of a loyalty program (additions, deductions, expirations) newest first, with amount, type and ru","description":"List point transactions of a loyalty program (additions, deductions, expirations) newest first, with amount, type and rule name. Use for \"What loyalty point transactions happened in Talon.One program 5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"loyalty_program_id":{"description":"Loyalty program ID, as returned by list_loyalty_programs.","title":"Loyalty Program Id","type":"integer"},"start_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions after this ISO 8601 time.","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions before this ISO 8601 time.","title":"End Date"},"loyalty_transaction_type":{"anyOf":[{"enum":["manual","session","import"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this transaction source.","title":"Loyalty Transaction Type"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many transactions to return (1 to 1000).","title":"Page Size"},"skip":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Skip"}},"required":["deployment","loyalty_program_id"],"title":"list_loyalty_transactionsArguments","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_loyalty_cards":{"post":{"operationId":"list_loyalty_cards","summary":"List the loyalty cards of a card-based loyalty program with status and identifier. Use for \"Which loyalty cards exist in","description":"List the loyalty cards of a card-based loyalty program with status and identifier. Use for \"Which loyalty cards exist in Talon.One program 5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"loyalty_program_id":{"description":"Loyalty program ID, as returned by list_loyalty_programs.","title":"Loyalty Program Id","type":"integer"},"identifier":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the card with this identifier.","title":"Identifier"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 1000).","title":"Page Size"},"skip":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Skip"}},"required":["deployment","loyalty_program_id"],"title":"list_loyalty_cardsArguments","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_customer_profiles":{"post":{"operationId":"list_customer_profiles","summary":"List customer profiles known to the account with integration ID, closed session count, total sales and last activity. Us","description":"List customer profiles known to the account with integration ID, closed session count, total sales and last activity. Use for \"Who are the most recent Talon.One customer profiles\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"sandbox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list profiles of sandbox Applications.","title":"Sandbox"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 1000).","title":"Page Size"},"skip":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Skip"}},"required":["deployment"],"title":"list_customer_profilesArguments","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_application_sessions":{"post":{"operationId":"list_application_sessions","summary":"List customer sessions (carts) of an Application with state, totals and discounts. Filter by state, profile or date. Use","description":"List customer sessions (carts) of an Application with state, totals and discounts. Filter by state, profile or date. Use for \"Which closed Talon.One sessions happened last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"application_id":{"description":"Application ID, as returned by list_applications.","title":"Application Id","type":"integer"},"state":{"anyOf":[{"enum":["open","closed","partially_returned","cancelled"],"type":"string"},{"type":"null"}],"default":null,"description":"Only sessions in this state.","title":"State"},"integration_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the session with this integration ID.","title":"Integration Id"},"created_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only sessions created after this ISO 8601 time.","title":"Created After"},"created_before":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only sessions created before this ISO 8601 time.","title":"Created Before"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 1000).","title":"Page Size"},"skip":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Skip"}},"required":["deployment","application_id"],"title":"list_application_sessionsArguments","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_audit_changes":{"post":{"operationId":"list_audit_changes","summary":"List the account audit log: who changed which entity and when. Filter by user or time range. Use for \"What changed in Ta","description":"List the account audit log: who changed which entity and when. Filter by user or time range. Use for \"What changed in Talon.One yesterday\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"deployment":{"description":"Your Talon.One deployment name: the part before .talon.one in the Campaign Manager address, for example 'mycompany' for mycompany.talon.one.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Deployment","type":"string"},"created_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only changes after this ISO 8601 time.","title":"Created After"},"created_before":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only changes before this ISO 8601 time.","title":"Created Before"},"user_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only changes made by this user ID.","title":"User Id"},"application_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only changes within this Application ID.","title":"Application Id"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 1000).","title":"Page Size"},"skip":{"anyOf":[{"maximum":10000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip, for paging.","title":"Skip"}},"required":["deployment"],"title":"list_audit_changesArguments","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}}}}