{"openapi":"3.1.0","info":{"title":"Terminal API","version":"1","description":"Terminal reports market events for conditions you set. It does not tell you to buy, sell, or hold, and it does not place trades. Version 1 only adds routes, optional request fields, response fields and enum values. Ignore a field you do not know, and treat an enum value you do not know as other. A price is an object with a value in US dollars, a source and a time. A missing price is null, never zero. Every JSON body carries notice and terms."},"servers":[{"url":"https://terminal.tokensmarketcap.com/v1"}],"security":[{"apiKey":[]}],"tags":[{"name":"Account","description":"The account, the plan, usage and coins."},{"name":"Rules","description":"Rules, a preview of a condition, and the record of what the price did later."},{"name":"Events","description":"Alerts as they are recorded, one alert, and a measured note for a coin."},{"name":"Destinations","description":"Where alerts are sent, including webhooks your software receives."},{"name":"Exchange","description":"Profiles, services built from rules, subscriptions, records, earnings and sales. Answers 503 (exchange_closed) while the exchange is not open for the account, except reading, ending and reporting a subscription and reading earnings."}],"paths":{"/account":{"get":{"tags":["Account"],"operationId":"getAccount","summary":"The account, the plan and the calling key.","x-scope":"read","responses":{"200":{"description":"The account, the plan and the calling key.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/usage":{"get":{"tags":["Account"],"operationId":"getUsage","summary":"Calls, previews, notes and the credit balance for this month and today.","x-scope":"read","responses":{"200":{"description":"Calls, previews, notes and the credit balance for this month and today.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/assets":{"get":{"tags":["Account"],"operationId":"listAssets","summary":"Coins the feed covers. No prices.","x-scope":"read","responses":{"200":{"description":"Coins the feed covers. No prices.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetListResponse"}}}},"400":{"description":"query must be 1 to 40 characters when you send it.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/AssetQuery"}]}},"/rules":{"get":{"tags":["Rules"],"operationId":"listRules","summary":"Every rule that is not archived, oldest first.","x-scope":"read","responses":{"200":{"description":"Every rule that is not archived, oldest first.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleListResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"post":{"tags":["Rules"],"operationId":"createRule","summary":"Create a rule. The coin is added to the watchlist.","x-scope":"rules:write","responses":{"201":{"description":"Create a rule. The coin is added to the watchlist.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleResponse"}}}},"400":{"description":"A field is wrong, a read-only condition extra was sent, or Idempotency-Key is missing or not printable ASCII.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The plan's active rules are full (limit rules), the coin would pass the watchlist limit (limit coins), or a block of calls cannot be paid.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"The same condition already exists (reason duplicate_rule, with rule_id), this Idempotency-Key was used for a different request (idempotency_key_reused), or the first request is still running (in_progress).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key, the account, or the account's rule changes (60 a minute) are over the limit.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The rule to create.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleCreate"}}}}}},"/rules/{id}":{"get":{"tags":["Rules"],"operationId":"getRule","summary":"One rule.","x-scope":"read","responses":{"200":{"description":"One rule.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No rule with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"}]},"patch":{"tags":["Rules"],"operationId":"updateRule","summary":"Change a rule. A new condition, kind, scope or coin clears its state.","x-scope":"rules:write","responses":{"200":{"description":"Change a rule. A new condition, kind, scope or coin clears its state.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleResponse"}}}},"400":{"description":"A field is wrong, or the body is empty.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The plan's active rules are full, the coin would pass the watchlist limit, or a block of calls cannot be paid.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No rule with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"duplicate_rule, idempotency_key_reused, in_progress, use_subscription (change the subscription instead), or rule_backs_service (the rule backs a service).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key, the account, or the account's rule changes (60 a minute) are over the limit.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKeyOptional"}],"requestBody":{"required":true,"description":"Fields to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RulePatch"}}}}},"delete":{"tags":["Rules"],"operationId":"deleteRule","summary":"Delete a rule. Its alerts stay for the record, and leave this account's feed.","x-scope":"rules:write","responses":{"200":{"description":"Delete a rule. Its alerts stay for the record, and leave this account's feed.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedRuleResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No rule with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused, in_progress, use_subscription, or rule_backs_service.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key, the account, or the account's rule changes (60 a minute) are over the limit.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKeyOptional"}]}},"/rules/{id}/pause":{"post":{"tags":["Rules"],"operationId":"pauseRule","summary":"Pause a rule. Pausing a paused rule leaves it paused.","x-scope":"rules:write","responses":{"200":{"description":"Pause a rule. Pausing a paused rule leaves it paused.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No rule with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused, in_progress, use_subscription, or rule_backs_service.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key, the account, or the account's rule changes (60 a minute) are over the limit.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"description":"Empty object, or no body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyObject"}}}}}},"/rules/{id}/resume":{"post":{"tags":["Rules"],"operationId":"resumeRule","summary":"Resume a rule. active_since becomes now when it was paused.","x-scope":"rules:write","responses":{"200":{"description":"Resume a rule. active_since becomes now when it was paused.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The plan's active rules are full (limit rules), or a block of calls cannot be paid.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No rule with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused, in_progress, use_subscription, or rule_backs_service.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key, the account, or the account's rule changes (60 a minute) are over the limit.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"description":"Empty object, or no body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyObject"}}}}}},"/rules/preview":{"post":{"tags":["Rules"],"operationId":"previewRule","summary":"How often a condition would have been met over the last 30 days. Nothing is saved.","x-scope":"read","responses":{"200":{"description":"How often a condition would have been met over the last 30 days. Nothing is saved.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewResponse"}}}},"400":{"description":"A field is wrong, or Idempotency-Key is missing or not printable ASCII.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The day's previews are used and the charge is refused (credits_required or quota_exceeded), or a block of calls cannot be paid.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused or in_progress. A key that already paid stays used.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key, the account, or the preview limit (reason previews, Retry-After 5). The preview queue uses the same reason.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The condition to preview.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewRequest"}}}}}},"/rules/{id}/record":{"get":{"tags":["Rules"],"operationId":"getRuleRecord","summary":"What the price did after each alert of one rule.","x-scope":"read","responses":{"200":{"description":"What the price did after each alert of one rule.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordResponse"}}}},"400":{"description":"limit must be 1 to 200, and before must be an alert id.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No rule with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/RecordLimit"},{"$ref":"#/components/parameters/RecordBefore"}]}},"/events":{"get":{"tags":["Events"],"operationId":"listEvents","summary":"The account's alerts in the order they were recorded.","x-scope":"read","responses":{"200":{"description":"The account's alerts in the order they were recorded.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventFeedResponse"}}}},"400":{"description":"A query parameter is wrong. cursor must be a cursor this API issued.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The answer had events, and a block of calls cannot be paid. The cursor does not move.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"rule_id is not a rule of this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute, the key has too many open long-polls (reason long_polls), or this process is full (reason server_busy).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/EventCursor"},{"$ref":"#/components/parameters/EventStart"},{"$ref":"#/components/parameters/EventWait"},{"$ref":"#/components/parameters/EventLimit"},{"$ref":"#/components/parameters/EventRuleId"}]}},"/alerts/{id}":{"get":{"tags":["Events"],"operationId":"getAlert","summary":"One alert, including alerts the person's own channels held, inside the plan's history.","x-scope":"read","responses":{"200":{"description":"One alert, including alerts the person's own channels held, inside the plan's history.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No alert with that id belongs to this account, or it is older than the plan's history.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"}]}},"/explain":{"post":{"tags":["Events"],"operationId":"explainMove","summary":"A measured note for one coin over one window. Facts are returned even when a note cannot be written.","x-scope":"read","responses":{"200":{"description":"A measured note for one coin over one window. Facts are returned even when a note cannot be written.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExplanationResponse"}}}},"400":{"description":"symbol or window is wrong, or Idempotency-Key is missing or not printable ASCII.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"A block of calls cannot be paid. The note's own charge never answers 402: the facts come back instead.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The coin and the window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExplainRequest"}}}}}},"/destinations":{"get":{"tags":["Destinations"],"operationId":"listDestinations","summary":"Every destination, oldest first.","x-scope":"read","responses":{"200":{"description":"Every destination, oldest first.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationListResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"post":{"tags":["Destinations"],"operationId":"createDestination","summary":"Add a webhook destination. The signing secret is in this answer only.","x-scope":"destinations:write","responses":{"201":{"description":"Add a webhook destination. The signing secret is in this answer only.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedDestinationResponse"}}}},"400":{"description":"A field is wrong, a field belongs to another format, the preset is not released, or Idempotency-Key is missing or not printable ASCII.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The plan has no webhooks or its webhook count is full (limit webhook_destinations), the account already has 20 destinations (limit destinations), or a block of calls cannot be paid.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed, the private beta does not include the account, or webhooks are switched off (reason feature_off).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The webhook to add.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationCreate"}}}}}},"/destinations/presets":{"get":{"tags":["Destinations"],"operationId":"listPresets","summary":"Bot presets a destination can use.","x-scope":"read","responses":{"200":{"description":"Bot presets a destination can use.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresetListResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/destinations/{id}":{"get":{"tags":["Destinations"],"operationId":"getDestination","summary":"One destination.","x-scope":"read","responses":{"200":{"description":"One destination.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No destination with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"}]},"patch":{"tags":["Destinations"],"operationId":"updateDestination","summary":"Change the label, pause, or, for a terminal webhook, the URL.","x-scope":"destinations:write","responses":{"200":{"description":"Change the label, pause, or, for a terminal webhook, the URL.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationResponse"}}}},"400":{"description":"A field is wrong, or the label is emptied.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key lacks destinations:write, or the field changes only in the signed-in app (required_scope session).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No destination with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKeyOptional"}],"requestBody":{"required":true,"description":"Fields a key may change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationPatch"}}}}},"delete":{"tags":["Destinations"],"operationId":"deleteDestination","summary":"Delete a webhook destination and its delivery log.","x-scope":"destinations:write","responses":{"200":{"description":"Delete a webhook destination and its delivery log.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedDestinationResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key lacks destinations:write, or the destination is not a webhook (required_scope session).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No destination with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKeyOptional"}]}},"/destinations/{id}/test":{"post":{"tags":["Destinations"],"operationId":"testDestination","summary":"Queue a test send. The result shows up on last_test.","x-scope":"destinations:write","responses":{"202":{"description":"Queue a test send. The result shows up on last_test.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestSendResponse"}}}},"400":{"description":"confirm is missing for a template or a preset, or Idempotency-Key is missing or not printable ASCII.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The plan does not include webhooks (limit webhook_destinations), or a block of calls cannot be paid.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No destination with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"The destination is revoked or paused (reason destination_off), or the Idempotency-Key clashes.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key, the account, or test sends (reason tests, 10 a minute) are over the limit.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the private beta does not include the account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"description":"Empty, or no body, for a terminal webhook. confirm true for a template or a preset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationTest"}}}}}},"/profile":{"get":{"tags":["Exchange"],"operationId":"getProfile","summary":"Your profile, with handle_locked.","x-scope":"read","responses":{"200":{"description":"Your profile, with handle_locked.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"The account has no profile yet.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"put":{"tags":["Exchange"],"operationId":"putProfile","summary":"Create or change your profile. 201 when it is new.","x-scope":"services:write","responses":{"200":{"description":"Create or change your profile. 201 when it is new.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileResponse"}}}},"201":{"description":"The profile was created.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileResponse"}}}},"400":{"description":"A field is wrong, or the text has a link, a contact or trading words (fields).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"handle_taken, handle_reserved, handle_locked, profile_suspended, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileWrite"}}}}}},"/profiles/{handle}":{"get":{"tags":["Exchange"],"operationId":"getPublicProfile","summary":"One profile.","x-scope":"read","responses":{"200":{"description":"One profile.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProfileResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No profile with that handle.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/Handle"}]}},"/services":{"get":{"tags":["Exchange"],"operationId":"listServices","summary":"The catalogue of listed services.","x-scope":"read","responses":{"200":{"description":"The catalogue of listed services.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogueResponse"}}}},"400":{"description":"A query parameter is wrong, or cursor is not one this API issued.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/CatalogueKind"},{"$ref":"#/components/parameters/CatalogueSymbol"},{"$ref":"#/components/parameters/CatalogueSeller"},{"$ref":"#/components/parameters/CataloguePrice"},{"$ref":"#/components/parameters/CatalogueMaxPrice"},{"$ref":"#/components/parameters/CatalogueComplete"},{"$ref":"#/components/parameters/CatalogueVerified"},{"$ref":"#/components/parameters/CatalogueLimit"},{"$ref":"#/components/parameters/CatalogueCursor"}]},"post":{"tags":["Exchange"],"operationId":"createService","summary":"Create a feed service from your rules. It starts recording.","x-scope":"services:write","responses":{"201":{"description":"Create a feed service from your rules. It starts recording.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponse"}}}},"400":{"description":"A field is wrong, or the text has a link, a contact or trading words (fields).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"profile_required, profile_suspended, email_unverified, service_limit, rule_not_eligible (fields names each rule), slug_taken, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceCreate"}}}}}},"/services/{id}":{"get":{"tags":["Exchange"],"operationId":"getService","summary":"One service. The seller sees rule_ids, fees and reasons too.","x-scope":"read","responses":{"200":{"description":"One service. The seller sees rule_ids, fees and reasons too.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No service with that id, or another seller's service that is recording or was retired before it was listed.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"}]},"patch":{"tags":["Exchange"],"operationId":"updateService","summary":"Change the name or the description.","x-scope":"services:write","responses":{"200":{"description":"Change the name or the description.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponse"}}}},"400":{"description":"A field is wrong, or the body is empty.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No service with that id belongs to this account's profile.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"profile_suspended, service_retired, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKeyOptional"}],"requestBody":{"required":true,"description":"name, description, or both.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicePatch"}}}}}},"/services/{id}/record":{"get":{"tags":["Exchange"],"operationId":"getServiceRecord","summary":"A service's numbered events and what the price did after each. This is a price record, not a recommendation.","x-scope":"read","responses":{"200":{"description":"A service's numbered events and what the price did after each. This is a price record, not a recommendation.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceRecordResponse"}}}},"400":{"description":"limit must be 1 to 200, and before must be a seq.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No service with that id, or another seller's service that is recording or was retired before it was listed.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/RecordLimit"},{"$ref":"#/components/parameters/ServiceRecordBefore"}]}},"/me/services":{"get":{"tags":["Exchange"],"operationId":"listMyServices","summary":"Your services in every state, in the seller's view.","x-scope":"read","responses":{"200":{"description":"Your services in every state, in the seller's view.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceListResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/services/{id}/offer":{"post":{"tags":["Exchange"],"operationId":"changeOffer","summary":"Replace the offer with a new price. Subscribers keep their price for 30 days when it goes up.","x-scope":"services:write","responses":{"200":{"description":"Replace the offer with a new price. Subscribers keep their price for 30 days when it goes up.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponse"}}}},"400":{"description":"kind or price_cents is wrong.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No service with that id belongs to this account's profile.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"offer_change_too_soon (retry_after), profile_suspended, service_retired, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The new offer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OfferInput"}}}}}},"/services/{id}/list":{"post":{"tags":["Exchange"],"operationId":"listService","summary":"Put the service in the catalogue. Charges the listing fee for the current 30 days when it is not paid.","x-scope":"services:write","responses":{"200":{"description":"Put the service in the catalogue. Charges the listing fee for the current 30 days when it is not paid.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The credits do not cover the listing fee (credits_required, with balance_cents, price_cents, and buy_url while credit packs are on sale).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No service with that id belongs to this account's profile.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"not_listable (missing), profile_suspended, service_retired, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"description":"Empty object, or no body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyObject"}}}}}},"/services/{id}/unlist":{"post":{"tags":["Exchange"],"operationId":"unlistService","summary":"Take the service out of the catalogue. Subscribers keep receiving events.","x-scope":"services:write","responses":{"200":{"description":"Take the service out of the catalogue. Subscribers keep receiving events.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No service with that id belongs to this account's profile.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"service_not_listed, service_retired, profile_suspended, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"description":"Empty object, or no body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyObject"}}}}}},"/services/{id}/retire":{"post":{"tags":["Exchange"],"operationId":"retireService","summary":"Retire the service for good. Subscriptions end. The record stays readable.","x-scope":"services:write","responses":{"200":{"description":"Retire the service for good. Subscriptions end. The record stays readable.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No service with that id belongs to this account's profile.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"description":"Empty object, or no body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyObject"}}}}}},"/subscriptions":{"get":{"tags":["Exchange"],"operationId":"listSubscriptions","summary":"Your subscriptions, newest first.","x-scope":"read","responses":{"200":{"description":"Your subscriptions, newest first.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionListResponse"}}}},"400":{"description":"status is not a subscription status.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account. This route works while the exchange is closed, so you can stop and report what you pay for.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/SubscriptionStatus"}]},"post":{"tags":["Exchange"],"operationId":"subscribe","summary":"Subscribe to a listed feed. Nothing is charged now. Each event is charged when it arrives.","x-scope":"subscriptions:write","responses":{"201":{"description":"Subscribe to a listed feed. Nothing is charged now. Each event is charged when it arrives.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"400":{"description":"A field is wrong, the service answers one request at a time (service_id), or the offer is not a credits offer (offer_id).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The plan's active rules are full (limit rules). A subscription counts as one of your alerts.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No listed service with that id.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"service_not_listed, own_service, already_subscribed, offer_changed (offer), preset_not_allowed, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute, or the account started 20 subscriptions today (reason subscriptions_limit).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The service and the offer you read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionCreate"}}}}}},"/subscriptions/{id}":{"get":{"tags":["Exchange"],"operationId":"getSubscription","summary":"One subscription.","x-scope":"read","responses":{"200":{"description":"One subscription.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No subscription with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account. This route works while the exchange is closed, so you can stop and report what you pay for.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"}]},"patch":{"tags":["Exchange"],"operationId":"updateSubscription","summary":"Change the cap, the destinations or the name. A higher cap resumes a subscription paused at its cap when there is room.","x-scope":"subscriptions:write","responses":{"200":{"description":"Change the cap, the destinations or the name. A higher cap resumes a subscription paused at its cap when there is room.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"400":{"description":"A field is wrong, or the body is empty.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No subscription with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"ended, preset_not_allowed, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKeyOptional"}],"requestBody":{"required":true,"description":"Fields to change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionPatch"}}}}},"delete":{"tags":["Exchange"],"operationId":"endSubscription","summary":"End a subscription. Ending an ended one keeps its first end_reason.","x-scope":"subscriptions:write","responses":{"200":{"description":"End a subscription. Ending an ended one keeps its first end_reason.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No subscription with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account. This route works while the exchange is closed, so you can stop and report what you pay for.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKeyOptional"}]}},"/subscriptions/{id}/pause":{"post":{"tags":["Exchange"],"operationId":"pauseSubscription","summary":"Pause. Events while paused are not delivered and not charged.","x-scope":"subscriptions:write","responses":{"200":{"description":"Pause. Events while paused are not delivered and not charged.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No subscription with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"ended, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"description":"Empty object, or no body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyObject"}}}}}},"/subscriptions/{id}/resume":{"post":{"tags":["Exchange"],"operationId":"resumeSubscription","summary":"Resume from paused, paused_unpaid or paused_cap. Delivery starts from the next event.","x-scope":"subscriptions:write","responses":{"200":{"description":"Resume from paused, paused_unpaid or paused_cap. Delivery starts from the next event.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"The credits do not cover one event (credits_required), a cap has no room (quota_exceeded, limit subscription_monthly or exchange_monthly), or the plan's active rules are full (limit rules).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No subscription with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"ended, paused_plan, service_retired, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":false,"description":"Empty object, or no body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyObject"}}}}}},"/subscriptions/{id}/accept-offer":{"post":{"tags":["Exchange"],"operationId":"acceptOffer","summary":"Accept the service's new price at once.","x-scope":"subscriptions:write","responses":{"200":{"description":"Accept the service's new price at once.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionResponse"}}}},"400":{"description":"offer_id or monthly_cap_cents is wrong.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No subscription with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"offer_changed (offer), ended, service_retired, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The offer you were shown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptOffer"}}}}}},"/subscriptions/{id}/report":{"post":{"tags":["Exchange"],"operationId":"reportSubscription","summary":"Report a subscription. It ends, and charges still on hold come back as credits.","x-scope":"subscriptions:write","responses":{"200":{"description":"Report a subscription. It ends, and charges still on hold come back as credits.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportResponse"}}}},"400":{"description":"reason is not one of the listed values, or note is too long.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"404":{"description":"No subscription with that id belongs to this account.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"already_reported, report_window_passed, idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute, or the account sent 3 reports this month (reason reports_limit).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account. This route works while the exchange is closed, so you can stop and report what you pay for.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/ResourceId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"Why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportCreate"}}}}}},"/earnings":{"get":{"tags":["Exchange"],"operationId":"getEarnings","summary":"What you are owed as a seller, with the last 50 rows.","x-scope":"read","responses":{"200":{"description":"What you are owed as a seller, with the last 50 rows.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarningsResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account. This route works while the exchange is closed, so you can stop and report what you pay for.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/earnings/to-credits":{"post":{"tags":["Exchange"],"operationId":"moveEarnings","summary":"Move available earnings into credits, up to the room left under the credit balance cap.","x-scope":"services:write","responses":{"200":{"description":"Move available earnings into credits, up to the room left under the credit balance cap.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarningsMoveResponse"}}}},"400":{"description":"cents is not a whole number, or is below 100, or Idempotency-Key is missing.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"insufficient_earnings (available_cents), balance_cap (cap_cents, balance_cents, room_cents: the balance is at its cap), idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"description":"The amount.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarningsMove"}}}}}},"/sales":{"get":{"tags":["Exchange"],"operationId":"listSales","summary":"Your sales as a seller and your purchases as a buyer, newest first.","x-scope":"read","responses":{"200":{"description":"Your sales as a seller and your purchases as a buyer, newest first.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaleListResponse"}}}},"400":{"description":"role, before or limit is wrong.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/SaleRole"},{"$ref":"#/components/parameters/SaleBefore"},{"$ref":"#/components/parameters/SaleLimit"}]}},"/me/exchange":{"get":{"tags":["Exchange"],"operationId":"getExchangeSettings","summary":"The account's monthly cap on all subscriptions, and this month's spend.","x-scope":"read","responses":{"200":{"description":"The account's monthly cap on all subscriptions, and this month's spend.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeSettingsResponse"}}}},"400":{"description":"The body is not one JSON object, or a field, a query parameter or a header is wrong. fields names each one.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"patch":{"tags":["Exchange"],"operationId":"updateExchangeSettings","summary":"Change the account's monthly cap.","x-scope":"subscriptions:write","responses":{"200":{"description":"Change the account's monthly cap.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Idempotent-Replayed":{"$ref":"#/components/headers/IdempotentReplayed"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeSettingsResponse"}}}},"400":{"description":"monthly_cap_cents must be 0 to 50000, a multiple of 100.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"401":{"description":"No Authorization header, the scheme is not Bearer, or the key is malformed, unknown, revoked, or the account is gone.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"WWW-Authenticate":{"$ref":"#/components/headers/WwwAuthenticate"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"402":{"description":"Included calls for the month are used up, and the balance or a spend cap cannot pay for the next block of calls.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"403":{"description":"The key does not include the scope in x-scope.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"409":{"description":"idempotency_key_reused or in_progress.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"429":{"description":"The key or the account is over its calls per minute. Retry-After is whole seconds, at least 1.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"},"Retry-After":{"$ref":"#/components/headers/RetryAfter"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"500":{"description":"Terminal failed while handling the request. Sending it again with the same Idempotency-Key is safe.","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}},"503":{"description":"The channel is closed for this account, or the exchange is not open for it (reason exchange_closed).","headers":{"Terminal-Request-Id":{"$ref":"#/components/headers/TerminalRequestId"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimitLimit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimitRemaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimitReset"},"Terminal-Quota-Remaining":{"$ref":"#/components/headers/TerminalQuotaRemaining"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKeyOptional"}],"requestBody":{"required":true,"description":"The new cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeSettingsPatch"}}}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key in the Authorization header, as Bearer."}},"parameters":{"ResourceId":{"name":"id","in":"path","required":true,"description":"A positive integer below 2^31. Anything else, or another account's id, is not found.","schema":{"type":"integer","minimum":1,"maximum":2147483647}},"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"description":"Required. 1 to 255 printable ASCII characters. The same value and the same request returns the stored answer and does not run the work again.","schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7E]{1,255}$"}},"IdempotencyKeyOptional":{"name":"Idempotency-Key","in":"header","required":false,"description":"Optional. When you send it, 1 to 255 printable ASCII characters. The same value and the same request returns the stored answer.","schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7E]{1,255}$"}},"AssetQuery":{"name":"query","in":"query","required":false,"description":"1 to 40 characters. Omit it for every active coin, up to 500. With it, up to 5 matches.","schema":{"type":"string","minLength":1,"maxLength":40}},"EventCursor":{"name":"cursor","in":"query","required":false,"description":"A next_cursor from an earlier answer. Read events after that point.","schema":{"type":"string"}},"EventStart":{"name":"start","in":"query","required":false,"description":"Used only when cursor is omitted. latest reads alerts recorded from now on. earliest reads from the oldest alert kept, 7 days back.","schema":{"type":"string","enum":["latest","earliest"],"default":"latest"}},"EventWait":{"name":"wait","in":"query","required":false,"description":"Seconds to keep the request open when no event is ready.","schema":{"type":"integer","minimum":0,"maximum":25,"default":0}},"EventLimit":{"name":"limit","in":"query","required":false,"description":"Most events in one answer.","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},"EventRuleId":{"name":"rule_id","in":"query","required":false,"description":"Only this rule's events. The cursor still moves past the account's other alerts.","schema":{"type":"integer","minimum":1,"maximum":2147483647}},"RecordLimit":{"name":"limit","in":"query","required":false,"description":"Most alerts in one page.","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},"RecordBefore":{"name":"before","in":"query","required":false,"description":"An alert id. The page holds alerts with a lower id.","schema":{"type":"integer","minimum":1,"maximum":2147483647}},"Handle":{"name":"handle","in":"path","required":true,"description":"A profile's handle, such as terminal.","schema":{"type":"string","minLength":1,"maxLength":64}},"CatalogueKind":{"name":"kind","in":"query","required":false,"description":"feed (events) or call (one answer per API request).","schema":{"type":"string","enum":["feed","call"]}},"CatalogueSymbol":{"name":"symbol","in":"query","required":false,"description":"Only services that watch this coin.","schema":{"type":"string"}},"CatalogueSeller":{"name":"seller","in":"query","required":false,"description":"Only this seller's services, by handle.","schema":{"type":"string"}},"CataloguePrice":{"name":"price","in":"query","required":false,"description":"free, or paid. Plan-included offers are neither.","schema":{"type":"string","enum":["free","paid"]}},"CatalogueMaxPrice":{"name":"max_price_cents","in":"query","required":false,"description":"Only services with an offer at or below this price per unit.","schema":{"type":"integer","minimum":0,"maximum":2147483647}},"CatalogueComplete":{"name":"complete","in":"query","required":false,"description":"True keeps services whose record status is a complete record: no gap, old enough, enough events, anchored. This is stricter than the record field `complete`, which only says the numbers have no gap. False or absent applies no filter: it does not select incomplete records. When both this and the deprecated query field are sent, this one decides.","schema":{"type":"boolean"}},"CatalogueVerified":{"name":"verified","in":"query","required":false,"description":"The query field `verified` is deprecated. Use `complete`.","schema":{"type":"boolean"},"deprecated":true},"CatalogueLimit":{"name":"limit","in":"query","required":false,"description":"Most services in one page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},"CatalogueCursor":{"name":"cursor","in":"query","required":false,"description":"A next_cursor from an earlier page. It keeps the first page's time, so the order holds across pages.","schema":{"type":"string"}},"ServiceRecordBefore":{"name":"before","in":"query","required":false,"description":"A seq. The page holds events with a lower seq.","schema":{"type":"integer","minimum":1,"maximum":2147483647}},"SubscriptionStatus":{"name":"status","in":"query","required":false,"description":"Only subscriptions with this status.","schema":{"type":"string","enum":["active","paused","paused_unpaid","paused_cap","paused_plan","ended"]}},"SaleRole":{"name":"role","in":"query","required":false,"description":"seller for your sales, buyer for your purchases. Omit it for both.","schema":{"type":"string","enum":["seller","buyer"]}},"SaleBefore":{"name":"before","in":"query","required":false,"description":"A sale id. The page holds older sales.","schema":{"type":"integer","minimum":1,"maximum":2147483647}},"SaleLimit":{"name":"limit","in":"query","required":false,"description":"Most sales in one page.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}},"headers":{"TerminalRequestId":{"description":"On every answer. req_ and 20 base62 characters. Error bodies repeat it as error.request_id.","schema":{"type":"string","pattern":"^req_[0-9A-Za-z]{20}$"}},"RateLimitLimit":{"description":"The key's calls allowed per minute.","schema":{"type":"integer","minimum":0}},"RateLimitRemaining":{"description":"Calls left in the current minute for the key. Never below 0.","schema":{"type":"integer","minimum":0}},"RateLimitReset":{"description":"Whole seconds until the key's minute window resets.","schema":{"type":"integer","minimum":1}},"TerminalQuotaRemaining":{"description":"Included calls left this month. 0 means later calls use blocks.","schema":{"type":"integer","minimum":0}},"RetryAfter":{"description":"Whole seconds to wait before trying again. At least 1.","schema":{"type":"integer","minimum":1}},"WwwAuthenticate":{"description":"Sent with invalid_key.","schema":{"type":"string","const":"Bearer realm=\"terminal\", error=\"invalid_token\""}},"IdempotentReplayed":{"description":"true when this is the stored answer for the same Idempotency-Key. The body matches the first answer.","schema":{"type":"string","const":"true"}}},"schemas":{"Notice":{"type":"string","description":"The notice carried on every JSON body. Show it with any output a person reads.","examples":["Terminal reports market events for conditions you set. It does not tell you to buy, sell, or hold, and it does not place trades."]},"Terms":{"type":"object","properties":{"version":{"type":"string","examples":["2026-10-draft"]},"url":{"type":"string","format":"uri","examples":["https://terminal.tokensmarketcap.com/api-terms"]}},"description":"API terms. The version is 2026-10-draft until the terms page is published at https://terminal.tokensmarketcap.com/api-terms.","required":["version","url"]},"Price":{"type":"object","properties":{"value":{"type":"number","exclusiveMinimum":0,"description":"Price in US dollars, as stored."},"currency":{"type":"string","const":"USD"},"source":{"type":["string","null"],"enum":["coinbase","kraken","coindesk",null],"description":"Where the price came from: an exchange, or \"coindesk\" for CoinDesk Data. Null only where the source was not recorded."},"at":{"type":["string","null"],"format":"date-time","description":"The trade time, or the end of the candle minute. Null only where the time was not recorded."},"derived":{"type":"boolean","const":true,"description":"Present on CoinDesk Data prices: the price is part of this derived answer, not a data feed. Market data: CoinDesk Data."}},"description":"A price with its source and time. A missing price is null on the field that holds it, never a zero.","required":["value","currency","source","at"]},"Asset":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":["string","null"],"description":"Falls back to the symbol when the name is unknown."}},"required":["symbol","name"]},"ListedAsset":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":["string","null"]},"status":{"type":"string","enum":["active","delisted"]}},"required":["symbol","name","status"]},"Condition":{"description":"The condition as stored. Read-only extras are included. Which fields are present depends on the rule's kind.","anyOf":[{"type":"object","properties":{"level":{"type":"number","exclusiveMinimum":0,"maximum":10000000,"description":"US dollars. Two decimals at or above 1, eight below."},"rearm_pct":{"type":"number","minimum":0.1,"maximum":10,"description":"Percent, 0.1 to 10, two decimals. Default 1."},"rearm_level":{"type":"number","description":"US dollars. level times (1 minus rearm_pct/100) for above, times (1 plus rearm_pct/100) for below."}},"title":"price_above or price_below","additionalProperties":false,"required":["level","rearm_pct","rearm_level"]},{"type":"object","properties":{"threshold_pct":{"type":"number","minimum":0.1,"maximum":100,"description":"Size of the move in percent, without a sign. Two decimals."},"window":{"type":"string","enum":["15m","1h","4h","24h"],"description":"Default 1h."},"direction":{"type":"string","enum":["up","down","either"],"description":"Which way the move counts. Default either."}},"title":"percent_change","additionalProperties":false,"required":["threshold_pct","window","direction"]},{"type":"object","properties":{"threshold_multiple":{"type":"number","minimum":1.5,"maximum":20,"description":"Window volume against its usual level. One decimal. Default 3."},"window":{"type":"string","enum":["15m","1h","4h","24h"],"description":"Default 1h."},"min_usd":{"type":"number","description":"Least trading in the window, in US dollars, that can fire it. 10000."}},"title":"volume_spike","additionalProperties":false,"required":["threshold_multiple","window","min_usd"]},{"type":"object","properties":{"sigmas":{"type":"number","minimum":2,"maximum":6,"description":"How far past the usual move. One decimal. Default 3."},"window":{"type":"string","enum":["15m","1h","4h","24h"],"description":"Default 1h."}},"title":"unusual_move","additionalProperties":false,"required":["sigmas","window"]},{"type":"object","title":"another kind","description":"A subscription rule's { service_id }, or a kind this document does not list yet. Read the condition by the rule's kind."}]},"ConditionInput":{"description":"Public condition names for the rule's kind. Defaults fill optional fields. Read-only extras are refused.","anyOf":[{"type":"object","properties":{"level":{"type":"number","exclusiveMinimum":0,"maximum":10000000,"description":"US dollars. Two decimals at or above 1, eight below."},"rearm_pct":{"type":"number","minimum":0.1,"maximum":10,"description":"Percent, 0.1 to 10, two decimals. Default 1."}},"title":"price_above or price_below","additionalProperties":false,"required":["level"]},{"type":"object","properties":{"threshold_pct":{"type":"number","minimum":0.1,"maximum":100,"description":"Size of the move in percent, without a sign. Two decimals."},"window":{"type":"string","enum":["15m","1h","4h","24h"],"description":"Default 1h."},"direction":{"type":"string","enum":["up","down","either"],"description":"Which way the move counts. Default either."}},"title":"percent_change","additionalProperties":false,"required":["threshold_pct"]},{"type":"object","properties":{"threshold_multiple":{"type":"number","minimum":1.5,"maximum":20,"description":"Window volume against its usual level. One decimal. Default 3."},"window":{"type":"string","enum":["15m","1h","4h","24h"],"description":"Default 1h."}},"title":"volume_spike","additionalProperties":false},{"type":"object","properties":{"sigmas":{"type":"number","minimum":2,"maximum":6,"description":"How far past the usual move. One decimal. Default 3."},"window":{"type":"string","enum":["15m","1h","4h","24h"],"description":"Default 1h."}},"title":"unusual_move","additionalProperties":false}]},"Note":{"type":"object","properties":{"status":{"type":"string","enum":["none","pending","ready","facts_only","failed"]},"text":{"type":["string","null"],"description":"The note, only when status is ready. Otherwise null."},"ai_written":{"type":"boolean","description":"True exactly when text is set."},"label":{"type":["string","null"],"description":"Shown with text when ai_written is true. Otherwise null."},"reason":{"type":["string","null"],"description":"Why there is no note: off, failed, rejected, no_facts, cap, paused, or stale for an explanation. Null when ready, pending or none."}},"required":["status","text","ai_written","label","reason"]},"Receipt":{"type":"object","properties":{"status":{"type":"string","enum":["pending","done","missing"]},"due_at":{"type":["string","null"],"format":"date-time"},"price":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Price"}]},"change_pct":{"type":["number","null"]},"recorded_at":{"type":["string","null"],"format":"date-time"}},"description":"One later price. pending is not due yet, missing means no price was recorded, done is the close near the due time. change_pct is measured from the event's price, except when price.source is coindesk: then it is measured from CoinDesk Data's own close at the alert, so both ends come from one source.","required":["status","due_at","price","change_pct","recorded_at"]},"ReceiptMap":{"type":"object","properties":{"1h":{"$ref":"#/components/schemas/Receipt"},"4h":{"$ref":"#/components/schemas/Receipt"},"24h":{"$ref":"#/components/schemas/Receipt"},"7d":{"$ref":"#/components/schemas/Receipt"}},"required":["1h","4h","24h","7d"]},"WindowChange":{"type":"object","properties":{"15m":{"type":["number","null"]},"1h":{"type":["number","null"]},"4h":{"type":["number","null"]},"24h":{"type":["number","null"]}},"description":"Signed percent move. Each value is a number or null.","required":["15m","1h","4h","24h"]},"VolumeReading":{"type":"object","properties":{"ratio":{"type":["number","null"]},"window_volume":{"type":["number","null"]},"window_minutes":{"type":["integer","null"]},"baseline_per_minute":{"type":["number","null"]},"baseline_days":{"type":["number","null"]}},"description":"The last hour's volume against its usual level. Null on the parent when there is no minute or no baseline.","required":["ratio","window_volume","window_minutes","baseline_per_minute","baseline_days"]},"MarketSnapshot":{"type":"object","properties":{"price":{"$ref":"#/components/schemas/Price"},"change_pct":{"$ref":"#/components/schemas/WindowChange"}},"required":["price","change_pct"]},"EventContext":{"type":"object","properties":{"change_pct":{"$ref":"#/components/schemas/WindowChange"},"volume_1h":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/VolumeReading"}]},"market":{"type":"object","description":"Bitcoin and Ethereum at the same time, except the alert's own coin. A value is null when that price was more than 10 minutes old.","additionalProperties":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/MarketSnapshot"}]}}},"required":["change_pct","volume_1h","market"]},"EventRule":{"type":"object","properties":{"id":{"type":["integer","null"],"minimum":0,"description":"Null on an exchange copy whose service does not name the seller's rule."},"name":{"type":"string"},"kind":{"type":"string","description":"One of price_above, price_below, percent_change, volume_spike, unusual_move, or service for a subscription rule. Treat a kind you do not know as other."},"scope":{"type":"string","description":"symbol (one coin), watchlist (every coin on the watchlist), or service (a subscription rule). Treat a scope you do not know as other."},"condition":{"$ref":"#/components/schemas/Condition"},"cooldown_seconds":{"type":["integer","null"],"description":"Null on an exchange copy whose service does not record it."}},"description":"The rule as it was when the alert fired. A later edit of the rule does not change it.","required":["id","name","kind","scope","condition","cooldown_seconds"]},"AlertService":{"type":"object","properties":{"id":{"type":["integer","null"],"description":"Null when the service row is gone. The values below then come from the copy as stored."},"name":{"type":"string"},"seller":{"type":"object","properties":{"handle":{"type":["string","null"]},"name":{"type":"string"},"kind":{"type":["string","null"],"description":"house or member. Null when the seller row is gone."}},"required":["handle","name","kind"]},"subscription_id":{"type":["integer","null"]},"rule_id":{"type":["integer","null"],"description":"The buyer's routing rule."},"seq":{"type":["integer","null"]},"source_alert_id":{"type":["integer","null"]},"price_cents":{"type":["integer","null"]},"links":{"type":"object","properties":{"page":{"type":["string","null"]},"record":{"type":["string","null"]}},"required":["page","record"]}},"description":"Set when the alert came through an exchange subscription. Null for the account's own rule.","required":["id","name","seller","subscription_id","rule_id","seq","source_alert_id","price_cents","links"]},"EventLinks":{"type":"object","properties":{"alert":{"type":"string"},"api":{"type":["string","null"]},"share":{"type":["string","null"]},"proof":{"type":["string","null"],"description":"Where anyone can check the anchor. Null while anchoring is off, before the minute is anchored, and for tests."}},"required":["alert","api","share","proof"]},"AlertEvent":{"type":"object","properties":{"schema":{"type":"string","const":"terminal.alert.v1"},"id":{"type":"string","description":"alert_<id> for an alert, test_<id> for a test send."},"type":{"type":"string","enum":["alert.fired","alert.test"]},"alert_id":{"type":["integer","null"],"description":"Null for a test send."},"sequence":{"type":["integer","null"],"description":"Per webhook destination. Null in the feed, in reads, in MCP results and in tests."},"fired_at":{"type":"string","format":"date-time"},"sent_at":{"type":"string","format":"date-time"},"rule":{"$ref":"#/components/schemas/EventRule"},"service":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/AlertService"}]},"asset":{"$ref":"#/components/schemas/Asset"},"price":{"$ref":"#/components/schemas/Price"},"measured":{"description":"What the engine measured when the condition was met. Which fields are present depends on the rule kind.","oneOf":[{"type":"object","properties":{"high":{"$ref":"#/components/schemas/Price"},"from_minute":{"type":"string","format":"date-time","description":"The first candle minute that counted."}},"title":"price_above","required":["high","from_minute"]},{"type":"object","properties":{"low":{"$ref":"#/components/schemas/Price"},"from_minute":{"type":"string","format":"date-time","description":"The first candle minute that counted."}},"title":"price_below","required":["low","from_minute"]},{"type":"object","properties":{"change_pct":{"type":"number","description":"Signed move over the window, in percent."},"from":{"$ref":"#/components/schemas/Price"},"to":{"$ref":"#/components/schemas/Price"}},"title":"percent_change","required":["change_pct","from","to"]},{"type":"object","properties":{"ratio":{"type":"number"},"window_volume":{"type":"number","description":"Units of the coin traded in the window."},"window_minutes":{"type":"integer"},"window_usd":{"type":"number","description":"Window volume times the price, in US dollars."},"baseline_per_minute":{"type":"number"},"baseline_days":{"type":"number"},"from_minute":{"type":"string","format":"date-time"},"to_minute":{"type":"string","format":"date-time"}},"title":"volume_spike","required":["ratio","window_volume","window_minutes","window_usd","baseline_per_minute","baseline_days","from_minute","to_minute"]},{"type":"object","properties":{"change_pct":{"type":"number"},"from":{"$ref":"#/components/schemas/Price"},"to":{"$ref":"#/components/schemas/Price"},"range_pct":{"type":"number"},"sigma_pct":{"type":"number"},"samples":{"type":"integer"}},"title":"unusual_move","required":["change_pct","from","to","range_pct","sigma_pct","samples"]}]},"headline":{"type":"string","maxLength":300},"context":{"$ref":"#/components/schemas/EventContext"},"note":{"$ref":"#/components/schemas/Note"},"receipts":{"$ref":"#/components/schemas/ReceiptMap"},"links":{"$ref":"#/components/schemas/EventLinks"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"description":"One alert as software receives it. terminal.alert.v1.","required":["schema","id","type","alert_id","sequence","fired_at","sent_at","rule","service","asset","price","measured","headline","context","note","receipts","links","notice","terms"]},"RuleState":{"type":"object","properties":{"symbol":{"type":"string"},"armed":{"type":"boolean"},"cooldown_until":{"type":["string","null"],"format":"date-time"},"last_fired_at":{"type":["string","null"],"format":"date-time"},"last_alert_id":{"type":["integer","null"]},"fired_count":{"type":"integer"}},"required":["symbol","armed","cooldown_until","last_fired_at","last_alert_id","fired_count"]},"RuleLinks":{"type":"object","properties":{"app":{"type":"string"},"api":{"type":"string"},"record":{"type":"string"}},"required":["app","api","record"]},"Rule":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":1,"maxLength":80},"kind":{"type":"string","description":"One of price_above, price_below, percent_change, volume_spike, unusual_move, or service for a subscription rule. Treat a kind you do not know as other."},"scope":{"type":"string","description":"symbol (one coin), watchlist (every coin on the watchlist), or service (a subscription rule). Treat a scope you do not know as other."},"asset":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Asset"}],"description":"Null for a watchlist rule."},"condition":{"$ref":"#/components/schemas/Condition"},"cooldown_seconds":{"type":"integer","description":"Seconds before the rule can fire again. 900, 1800, 3600, 14400, 43200, 86400, 604800 for the rules you write; a subscription rule uses its own."},"note_mode":{"type":"string","enum":["auto","on_request","off"]},"destination_ids":{"type":["array","null"],"items":{"type":"integer"},"description":"Null sends to every active destination except bot webhooks, which get only the rules that name them."},"status":{"type":"string","enum":["active","paused","paused_plan"]},"muted":{"type":"boolean"},"muted_at":{"type":["string","null"],"format":"date-time"},"snoozed_until":{"type":["string","null"],"format":"date-time"},"source_text":{"type":["string","null"],"description":"The sentence typed in the app, or null."},"active_since":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"state":{"type":"array","items":{"$ref":"#/components/schemas/RuleState"}},"links":{"$ref":"#/components/schemas/RuleLinks"}},"required":["id","name","kind","scope","asset","condition","cooldown_seconds","note_mode","destination_ids","status","muted","muted_at","snoozed_until","source_text","active_since","created_at","updated_at","state","links"]},"RuleCreate":{"type":"object","properties":{"kind":{"type":"string","enum":["price_above","price_below","percent_change","volume_spike","unusual_move"]},"scope":{"type":"string","enum":["symbol","watchlist"],"description":"Default symbol. watchlist is for percent, volume and unusual kinds."},"symbol":{"type":["string","null"],"description":"An active coin. Required for symbol scope. Absent or null for a watchlist."},"condition":{"$ref":"#/components/schemas/ConditionInput"},"cooldown_seconds":{"type":"integer","enum":[900,1800,3600,14400,43200,86400,604800],"description":"Default 3600, or 14400 for unusual_move."},"note_mode":{"type":"string","enum":["auto","on_request","off"],"description":"Default auto."},"destination_ids":{"type":["array","null"],"items":{"type":"integer"},"maxItems":20,"description":"Null, the default, sends to every active destination except bot webhooks."},"name":{"type":"string","minLength":1,"maxLength":80}},"additionalProperties":false,"description":"Saving a coin rule adds that coin to the watchlist.","required":["kind","condition"]},"RulePatch":{"type":"object","properties":{"kind":{"type":"string","enum":["price_above","price_below","percent_change","volume_spike","unusual_move"]},"scope":{"type":"string","enum":["symbol","watchlist"],"description":"Default symbol. watchlist is for percent, volume and unusual kinds."},"symbol":{"type":["string","null"],"description":"An active coin. Required for symbol scope. Absent or null for a watchlist."},"condition":{"$ref":"#/components/schemas/ConditionInput"},"cooldown_seconds":{"type":"integer","enum":[900,1800,3600,14400,43200,86400,604800],"description":"Default 3600, or 14400 for unusual_move."},"note_mode":{"type":"string","enum":["auto","on_request","off"],"description":"Default auto."},"destination_ids":{"type":["array","null"],"items":{"type":"integer"},"maxItems":20,"description":"Null, the default, sends to every active destination except bot webhooks."},"name":{"type":"string","minLength":1,"maxLength":80}},"additionalProperties":false,"minProperties":1,"description":"Any of these fields. status is changed with pause and resume. An empty body is refused. A new kind needs its whole condition."},"EmptyObject":{"type":"object","properties":{},"additionalProperties":false,"description":"An empty object. Omitting the body is the same."},"PreviewRequest":{"type":"object","properties":{"kind":{"type":"string","enum":["price_above","price_below","percent_change","volume_spike","unusual_move"]},"scope":{"type":"string","enum":["symbol","watchlist"],"description":"Default symbol. watchlist is for percent, volume and unusual kinds."},"symbol":{"type":["string","null"],"description":"An active coin. Required for symbol scope. Absent or null for a watchlist."},"condition":{"$ref":"#/components/schemas/ConditionInput"},"cooldown_seconds":{"type":"integer","enum":[900,1800,3600,14400,43200,86400,604800],"description":"Default 3600, or 14400 for unusual_move."}},"additionalProperties":false,"description":"The same condition fields as creating a rule. Other fields are refused.","required":["kind","condition"]},"PreviewOutcome":{"type":"object","properties":{"status":{"type":"string","enum":["done","missing","pending"]},"price":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Price"}]},"change_pct":{"type":["number","null"]}},"description":"price and change_pct are set only when status is done.","required":["status"]},"PreviewFire":{"type":"object","properties":{"at":{"type":"string","format":"date-time"},"asset":{"$ref":"#/components/schemas/Asset"},"price":{"$ref":"#/components/schemas/Price"},"after":{"description":"Null while later prices are switched off. Otherwise the price 1 hour and 24 hours later.","oneOf":[{"type":"null"},{"type":"object","properties":{"1h":{"$ref":"#/components/schemas/PreviewOutcome"},"24h":{"$ref":"#/components/schemas/PreviewOutcome"}},"required":["1h","24h"]}]}},"required":["at","asset","price","after"]},"PreviewRule":{"type":"object","properties":{"kind":{"type":"string","enum":["price_above","price_below","percent_change","volume_spike","unusual_move"]},"scope":{"type":"string","enum":["symbol","watchlist"]},"asset":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Asset"}]},"condition":{"$ref":"#/components/schemas/Condition"},"cooldown_seconds":{"type":"integer"}},"required":["kind","scope","asset","condition","cooldown_seconds"]},"Preview":{"type":"object","properties":{"basis":{"type":"string","const":"hypothetical"},"label":{"type":"string","description":"Fixed text software shows with a preview."},"rule":{"$ref":"#/components/schemas/PreviewRule"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"available":{"type":"boolean"},"reason":{"type":["string","null"],"description":"no_history, no_coins, or null."},"days_checked":{"type":"integer"},"partial":{"type":"boolean"},"count":{"type":["integer","null"],"description":"Null when available is false."},"week_count":{"type":["integer","null"],"description":"Null when available is false."},"per_day":{"type":["number","null"],"description":"Null when available is false."},"per_week":{"type":["number","null"],"description":"Null when available is false."},"assets":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":["string","null"]},"available":{"type":"boolean"},"count":{"type":["integer","null"],"description":"Null when this coin has no history."},"days_checked":{"type":"integer"}},"required":["symbol","name","available","count","days_checked"]}},"assets_total":{"type":"integer"},"fires_total":{"type":["integer","null"],"description":"Fires before the 300 cap. Null when available is false."},"fires":{"type":"array","items":{"$ref":"#/components/schemas/PreviewFire"},"maxItems":300}},"description":"How often the condition would have been met over the last 30 days. Nothing is saved.","required":["basis","label","rule","from","to","available","reason","days_checked","partial","count","week_count","per_day","per_week","assets","assets_total","fires_total","fires"]},"PreviewCharge":{"type":"object","properties":{"paid_with":{"type":"string","enum":["allowance","credits"]},"cents":{"type":"integer","minimum":0,"description":"0, or the preview's price in cents from credits."}},"required":["paid_with","cents"]},"HorizonCounts":{"type":"object","properties":{"recorded":{"type":"integer"},"pending":{"type":"integer"},"missing":{"type":"integer"}},"required":["recorded","pending","missing"]},"HorizonSummary":{"type":"object","properties":{"recorded":{"type":"integer"},"pending":{"type":"integer"},"missing":{"type":"integer"},"median_pct":{"type":["number","null"]},"mean_pct":{"type":["number","null"]},"same":{"type":"integer"},"other":{"type":"integer"},"flat":{"type":"integer"},"no_direction":{"type":"integer"},"same_share":{"type":["number","null"]},"same_share_interval":{"description":"95% interval of same_share, as [low, high]. Null when no recorded move came from an alert with a direction.","oneOf":[{"type":"null"},{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2}]},"median_interval":{"description":"95% interval of the median move, as [low, high] in percent, rounded like median_pct. Null below 6 moves.","oneOf":[{"type":"null"},{"type":"array","items":{"type":"number"},"minItems":2,"maxItems":2}]}},"required":["recorded","pending","missing","median_pct","mean_pct","same","other","flat","no_direction","same_share","same_share_interval","median_interval"]},"RecordAlert":{"type":"object","properties":{"alert_id":{"type":"integer"},"id":{"type":"string"},"fired_at":{"type":"string","format":"date-time"},"asset":{"$ref":"#/components/schemas/Asset"},"price":{"$ref":"#/components/schemas/Price"},"headline":{"type":"string"},"receipts":{"$ref":"#/components/schemas/ReceiptMap"}},"required":["alert_id","id","fired_at","asset","price","headline","receipts"]},"Record":{"type":"object","properties":{"rule_id":{"type":"integer"},"since":{"type":"string","format":"date-time"},"fired":{"type":"integer"},"first_fired_at":{"type":["string","null"],"format":"date-time"},"last_fired_at":{"type":["string","null"],"format":"date-time"},"horizons":{"type":"object","properties":{"1h":{"$ref":"#/components/schemas/HorizonCounts"},"4h":{"$ref":"#/components/schemas/HorizonCounts"},"24h":{"$ref":"#/components/schemas/HorizonCounts"},"7d":{"$ref":"#/components/schemas/HorizonCounts"}},"required":["1h","4h","24h","7d"]},"summary":{"description":"Null while the record summary is switched off. Otherwise one object per horizon.","oneOf":[{"type":"null"},{"type":"object","properties":{"1h":{"$ref":"#/components/schemas/HorizonSummary"},"4h":{"$ref":"#/components/schemas/HorizonSummary"},"24h":{"$ref":"#/components/schemas/HorizonSummary"},"7d":{"$ref":"#/components/schemas/HorizonSummary"}},"required":["1h","4h","24h","7d"]}]},"alerts":{"type":"array","items":{"$ref":"#/components/schemas/RecordAlert"}},"next_before":{"type":["integer","null"],"description":"The lowest alert id on this page when more exist. Otherwise null."}},"description":"What the price did after each alert of one rule, inside the plan's history.","required":["rule_id","since","fired","first_fired_at","last_fired_at","horizons","summary","alerts","next_before"]},"ExplainFacts":{"type":"object","properties":{"change_pct":{"type":["number","null"]},"path":{"$ref":"#/components/schemas/WindowChange"},"range":{"oneOf":[{"type":"null"},{"type":"object","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"minutes":{"type":"integer"},"high":{"$ref":"#/components/schemas/Price"},"low":{"$ref":"#/components/schemas/Price"},"steepest_5m_pct":{"type":["number","null"]}},"required":["from","to","minutes","high","low","steepest_5m_pct"]}]},"volume_1h":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/VolumeReading"}]},"market":{"type":"object","description":"Bitcoin's and Ethereum's change over the same window, the coin itself left out. A value is null when unknown.","additionalProperties":{"type":["number","null"]}},"not_available":{"type":"array","items":{"type":"string"}}},"required":["change_pct","path","range","volume_1h","market","not_available"]},"ExplainCharge":{"type":"object","properties":{"paid_with":{"type":"string","enum":["plan","allowance","credits","none"]},"cents":{"type":"integer"}},"required":["paid_with","cents"]},"Explanation":{"type":"object","properties":{"id":{"type":["string","null"],"description":"exp_<id> when a ready note was counted or charged. Null for a facts-only answer."},"asset":{"$ref":"#/components/schemas/Asset"},"window":{"type":"string","enum":["15m","1h","4h","24h"]},"at":{"type":"string","format":"date-time"},"price":{"$ref":"#/components/schemas/Price"},"stale":{"type":"boolean"},"facts":{"$ref":"#/components/schemas/ExplainFacts"},"lines":{"type":"array","items":{"type":"string"}},"note":{"$ref":"#/components/schemas/Note"},"charge":{"$ref":"#/components/schemas/ExplainCharge"}},"description":"A measured note for one coin over one window, with the facts as fields.","required":["id","asset","window","at","price","stale","facts","lines","note","charge"]},"ExplainRequest":{"type":"object","properties":{"symbol":{"type":"string","description":"An active coin."},"window":{"type":"string","enum":["15m","1h","4h","24h"]}},"additionalProperties":false,"required":["symbol","window"]},"Usage":{"type":"object","properties":{"month":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"resets_at":{"type":"string","format":"date-time"},"calls":{"type":"integer"},"included_calls":{"type":"integer"},"blocks":{"type":"integer","description":"The highest block charged this month."},"block_calls":{"type":"integer"},"block_price_cents":{"type":"integer"},"api_spent_cents":{"type":"integer"},"monthly_spend_cap_cents":{"type":"integer"}},"required":["start","resets_at","calls","included_calls","blocks","block_calls","block_price_cents","api_spent_cents","monthly_spend_cap_cents"]},"today":{"type":"object","properties":{"day":{"type":"string","description":"UTC day, YYYY-MM-DD."},"resets_at":{"type":"string","format":"date-time"},"previews":{"type":"integer"},"included_previews":{"type":"integer"},"key_spent_cents":{"type":"integer"},"key_daily_cap_cents":{"type":"integer"}},"required":["day","resets_at","previews","included_previews","key_spent_cents","key_daily_cap_cents"]},"notes":{"type":"object","properties":{"used_this_month":{"type":"integer"},"included":{"type":["integer","null"]},"fair_use":{"type":["integer","null"]}},"description":"Alert notes and explanations paid by the plan's own limit.","required":["used_this_month","included","fair_use"]},"credits":{"type":"object","properties":{"balance_cents":{"type":"integer"}},"required":["balance_cents"]}},"required":["month","today","notes","credits"]},"AccountLimits":{"type":"object","properties":{"rules":{"type":"integer"},"watchlist_coins":{"type":"integer"},"history_days":{"type":"integer"},"api_keys":{"type":"integer"},"api_calls_per_month":{"type":"integer"},"api_calls_per_minute":{"type":"integer"},"previews_per_day":{"type":"integer"},"webhook_destinations":{"type":"integer"},"notes_per_month":{"type":["integer","null"],"description":"Null on a plan that writes a note for each alert."},"notes_fair_use_per_month":{"type":["integer","null"],"description":"Null on the Free plan."}},"required":["rules","watchlist_coins","history_days","api_keys","api_calls_per_month","api_calls_per_minute","previews_per_day","webhook_destinations","notes_per_month","notes_fair_use_per_month"]},"Account":{"type":"object","properties":{"id":{"type":"integer"},"plan":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}},"required":["code","name"]},"time_zone":{"type":"string"},"limits":{"$ref":"#/components/schemas/AccountLimits"},"features":{"type":"object","properties":{"webhooks":{"type":"boolean"}},"required":["webhooks"]},"credits":{"type":"object","properties":{"balance_cents":{"type":"integer"}},"required":["balance_cents"]},"monthly_spend_cap_cents":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}},"description":"The account and the plan. Email, name and payment details are never included.","required":["id","plan","time_zone","limits","features","credits","monthly_spend_cap_cents","created_at"]},"CallingKey":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"prefix":{"type":"string"},"last4":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"daily_cap_cents":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"last_used_at":{"type":["string","null"],"format":"date-time"}},"required":["id","name","prefix","last4","scopes","daily_cap_cents","created_at","last_used_at"]},"DestinationInput":{"type":"object","properties":{"name":{"type":"string"},"value":{"description":"The value the person typed. A secret is never returned."}},"required":["name","value"]},"DestinationTemplate":{"type":"object","properties":{"content_type":{"type":"string","enum":["json","text"]},"body":{"type":"string"}},"required":["content_type","body"]},"LastTest":{"type":"object","properties":{"delivery_id":{"type":"integer"},"status":{"type":"string","enum":["queued","sent","failed"]},"http_status":{"type":["integer","null"],"description":"The status the receiver answered, or null when nothing answered."},"error":{"type":["string","null"]},"at":{"type":["string","null"],"format":"date-time"}},"required":["delivery_id","status","http_status","error","at"]},"Destination":{"type":"object","properties":{"id":{"type":"integer"},"kind":{"type":"string","enum":["telegram","webpush","discord","email","webhook"]},"label":{"type":"string"},"status":{"type":"string","enum":["active","paused","failing","revoked","unverified"]},"paused_reason":{"type":["string","null"]},"format":{"type":["string","null"],"enum":["terminal","template","preset",null],"description":"Null for a kind other than webhook."},"preset":{"type":["string","null"]},"host":{"type":["string","null"],"description":"The receiver's host name, with no port. The full URL is never returned."},"inputs":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DestinationInput"},"description":"Non-secret values, in the preset's field order. Null when there are none."},"secrets_set":{"type":["array","null"],"items":{"type":"string"},"description":"Names of the secrets stored. Values are never returned."},"template":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/DestinationTemplate"}]},"retries":{"type":["boolean","null"]},"last_sequence":{"type":["integer","null"]},"verified_at":{"type":["string","null"],"format":"date-time"},"last_success_at":{"type":["string","null"],"format":"date-time"},"last_error":{"type":["string","null"]},"consecutive_failures":{"type":"integer"},"last_test":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/LastTest"}]},"created_at":{"type":"string","format":"date-time"}},"description":"One destination. Kinds other than webhook leave the webhook fields null, and no address is shown.","required":["id","kind","label","status","paused_reason","format","preset","host","inputs","secrets_set","template","retries","last_sequence","verified_at","last_success_at","last_error","consecutive_failures","last_test","created_at"]},"DestinationCreate":{"type":"object","properties":{"kind":{"type":"string","const":"webhook"},"format":{"type":"string","enum":["terminal","template","preset"]},"url":{"type":"string","description":"A public https URL with no credentials. Required for terminal, template, and the cryptohopper preset."},"preset":{"type":"string","enum":["3commas_signal_bot","cryptohopper"],"description":"Required when format is preset."},"inputs":{"type":"object","additionalProperties":true,"description":"Values for the preset fields, or the template input names."},"secrets":{"type":"object","additionalProperties":true,"description":"Values for secret fields. Returned only as names afterwards."},"template":{"$ref":"#/components/schemas/DestinationTemplate"},"retries":{"type":"boolean","description":"Template only. Default false."},"label":{"type":"string","minLength":1,"maxLength":60}},"additionalProperties":false,"description":"Fields that belong to another format are refused, unless null or an empty object. A preset that is not released yet cannot be chosen, except by an allowlisted account.","required":["kind","format"]},"DestinationPatch":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":60,"description":"Cannot be emptied."},"paused":{"type":"boolean","description":"Cannot clear unverified. Only a test can."},"url":{"type":"string","description":"Terminal format only. Changing it makes the destination unverified again."}},"additionalProperties":false,"description":"A key may change the label, paused, and, for the terminal format, the URL. inputs, secrets and template change only in the signed-in app."},"DestinationTest":{"type":"object","properties":{"confirm":{"type":"boolean","description":"Required, and true, for a template or a preset. A test sends the body an alert would send, and a bot may act on it."}},"additionalProperties":false,"description":"An empty object for the terminal format."},"PresetField":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"string","enum":["secret","text","text_with_variables","number","choice","checkbox"]},"required":{"type":"boolean"},"choices":{"type":"array","items":{"type":"string"},"description":"Choice fields only. The receiver's own values."},"pattern":{"type":"string"},"min":{"type":"number"},"max":{"type":"number"},"decimals":{"type":"integer"},"required_with":{"type":"string"},"label_key":{"type":"string"}},"required":["name","kind","required","label_key"]},"Preset":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","description":"The receiver's own name."},"url":{"type":"object","properties":{"mode":{"type":"string","enum":["fixed","person"]},"host":{"type":"string"},"host_suffix":{"type":"string"}},"required":["mode"]},"content_type":{"type":"string"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/PresetField"}},"released":{"type":"boolean"}},"required":["id","name","url","content_type","fields","released"]},"Error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_key","scope_missing","terms_required","credits_required","quota_exceeded","payment_required","rate_limited","not_found","conflict","validation_failed","not_available","server_error"]},"message":{"type":"string","description":"English for people. It may change. Branch on code."},"request_id":{"type":"string"},"fields":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"description":"For validation_failed. Each key is a field path or a header name, and each value is a message. Exchange routes may send a list of short codes instead (such as [\"range\"]). For rule_not_eligible, each key is a refused rule id and each value is why: not_found, not_active, not_symbol, kind, cooldown or backs_service."},"required_scope":{"type":"string","description":"For scope_missing. A key scope, or session when only the signed-in app may make the change."},"version":{"type":"string","description":"For terms_required. The current Terms version."},"price_cents":{"type":"integer"},"balance_cents":{"type":"integer","description":"For balance_cap. The credit balance now."},"limit":{"type":"string","enum":["key_daily_spend","account_monthly_spend","rules","coins","keys","webhook_destinations","destinations","subscription_monthly","exchange_monthly"]},"max":{"type":"integer"},"used":{"type":"integer"},"resets_at":{"type":"string","format":"date-time","description":"Spend caps only."},"plan":{"type":"string"},"reason":{"type":"string","description":"The detail of a code. Exchange routes use the values in ExchangeErrorReason."},"rule_id":{"type":"integer"},"service_id":{"type":"integer"},"missing":{"type":"array","items":{"type":"string","enum":["min_events","min_days","account_age","email","complete","plan"]},"description":"For not_listable. Every part of the minimum record that is not met yet."},"available_cents":{"type":"integer","description":"For insufficient_earnings. Earnings that can move into credits now."},"room_cents":{"type":"integer","description":"For balance_cap. What the balance can still take, after top-ups on their way."},"offer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExchangeOffer"}],"description":"For offer_changed. The service's active offer now, or null when it has none."},"retry_after":{"type":"string","format":"date-time","description":"For offer_change_too_soon. The first time the offer can change again."},"cap_cents":{"type":"integer","description":"For quota_exceeded with limit subscription_monthly or exchange_monthly: the spend cap. For balance_cap: the cap on a credit balance."},"spent_cents":{"type":"integer","description":"For quota_exceeded with limit subscription_monthly or exchange_monthly."}},"additionalProperties":true,"description":"payment_required is for x402 routes, not /v1. While credit packs are on sale, a credits_required object also carries buy_url, the address of the app's billing screen (/app/settings/billing), where a person adds credits. While they are not on sale, it has no buy_url.","required":["code","message","request_id"]},"ErrorBody":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/Error"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["error","notice","terms"]},"AccountResponse":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/Account"},"key":{"$ref":"#/components/schemas/CallingKey"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["account","key","notice","terms"]},"UsageResponse":{"type":"object","properties":{"usage":{"$ref":"#/components/schemas/Usage"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["usage","notice","terms"]},"AssetListResponse":{"type":"object","properties":{"assets":{"type":"array","items":{"$ref":"#/components/schemas/ListedAsset"}},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["assets","notice","terms"]},"RuleResponse":{"type":"object","properties":{"rule":{"$ref":"#/components/schemas/Rule"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["rule","notice","terms"]},"RuleListResponse":{"type":"object","properties":{"rules":{"type":"array","items":{"$ref":"#/components/schemas/Rule"}},"usage":{"type":"object","properties":{"active":{"type":"integer"},"limit":{"type":"integer"}},"required":["active","limit"]},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["rules","usage","notice","terms"]},"DeletedRuleResponse":{"type":"object","properties":{"deleted":{"type":"boolean","const":true},"rule_id":{"type":"integer"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["deleted","rule_id","notice","terms"]},"PreviewResponse":{"type":"object","properties":{"preview":{"$ref":"#/components/schemas/Preview"},"charge":{"$ref":"#/components/schemas/PreviewCharge"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["preview","charge","notice","terms"]},"RecordResponse":{"type":"object","properties":{"record":{"$ref":"#/components/schemas/Record"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["record","notice","terms"]},"EventFeedResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AlertEvent"}},"next_cursor":{"type":"string","description":"Opaque. Pass it back as cursor."},"has_more":{"type":"boolean"},"gap":{"type":"boolean","description":"True when a cursor was given and an alert after it is older than 7 days."},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["events","next_cursor","has_more","gap","notice","terms"]},"NoteFacts":{"type":"object","properties":{"at":{"type":["string","null"],"format":"date-time"},"lines":{"type":"array","items":{"type":"string"}}},"required":["at","lines"]},"AlertResponse":{"type":"object","properties":{"alert":{"$ref":"#/components/schemas/AlertEvent"},"note_facts":{"description":"The facts sheet the note was written from, only when note.status is ready. Otherwise null.","oneOf":[{"type":"null"},{"$ref":"#/components/schemas/NoteFacts"}]},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["alert","note_facts","notice","terms"]},"ExplanationResponse":{"type":"object","properties":{"explanation":{"$ref":"#/components/schemas/Explanation"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["explanation","notice","terms"]},"DestinationResponse":{"type":"object","properties":{"destination":{"$ref":"#/components/schemas/Destination"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["destination","notice","terms"]},"DestinationListResponse":{"type":"object","properties":{"destinations":{"type":"array","items":{"$ref":"#/components/schemas/Destination"}},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["destinations","notice","terms"]},"CreatedDestinationResponse":{"type":"object","properties":{"destination":{"$ref":"#/components/schemas/Destination"},"signing_secret":{"type":"string","description":"Shown only on this answer, and again on an idempotent replay. It signs every POST to this destination."},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["destination","signing_secret","notice","terms"]},"DeletedDestinationResponse":{"type":"object","properties":{"deleted":{"type":"boolean","const":true},"destination_id":{"type":"integer"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["deleted","destination_id","notice","terms"]},"PresetListResponse":{"type":"object","properties":{"presets":{"type":"array","items":{"$ref":"#/components/schemas/Preset"}},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"description":"The same list as the app. A preset that is not released is left out unless the account is allowlisted.","required":["presets","notice","terms"]},"TestSendResponse":{"type":"object","properties":{"delivery_id":{"type":"integer"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"description":"The test is queued. The result shows up later on destination.last_test.","required":["delivery_id","notice","terms"]},"ExchangeErrorReason":{"type":"string","enum":["profile_required","profile_suspended","handle_taken","handle_reserved","handle_locked","slug_taken","service_limit","rule_not_eligible","rule_backs_service","use_subscription","not_listable","service_not_listed","service_retired","own_service","already_subscribed","offer_changed","preset_not_allowed","offer_change_too_soon","report_window_passed","email_unverified","copy_not_shareable","already_reported","insufficient_earnings","balance_cap","ended","paused_plan","sanctions_address","reports_limit","subscriptions_limit","credits_required","exchange_closed"],"description":"Values of error.reason on exchange routes. 409 conflict: profile_required, profile_suspended, handle_taken, handle_reserved, handle_locked, slug_taken, service_limit, rule_not_eligible, rule_backs_service, use_subscription, not_listable, service_not_listed, service_retired, own_service, already_subscribed, offer_changed, preset_not_allowed, offer_change_too_soon, report_window_passed, email_unverified, copy_not_shareable, already_reported, insufficient_earnings, balance_cap, ended, paused_plan, sanctions_address. 429 rate_limited: reports_limit, subscriptions_limit. 402 credits_required: credits_required (a listing fee or a resume). 402 quota_exceeded carries limit subscription_monthly or exchange_monthly instead. 503 not_available: exchange_closed."},"ExchangeProfile":{"type":"object","properties":{"handle":{"type":"string","pattern":"^[a-z0-9](?:[a-z0-9-]{1,30})[a-z0-9]$","description":"3 to 32 characters: a-z, 0-9 and single hyphens."},"name":{"type":"string","description":"1 to 60 characters. Closed account for a closed profile. The seller's own words."},"bio":{"type":"string","description":"0 to 280 characters. Empty for a closed profile. The seller's own words."},"kind":{"type":"string","enum":["house","member"],"description":"house is Terminal. member is anyone else."},"status":{"type":"string","enum":["active","suspended","closed"]},"since":{"type":"string","format":"date-time"},"record":{"type":"object","properties":{"tenure_days":{"type":"integer"},"services_listed":{"type":"integer"},"services_retired":{"type":"integer"},"services_created":{"type":"integer"},"events":{"type":"integer"},"complete":{"type":"boolean"},"buyers_paying_30d":{"type":"integer"},"reports_90d":{"type":"integer"}},"description":"Counts from the latest daily run. Before the first run every count is 0 and complete is true.","required":["tenure_days","services_listed","services_retired","services_created","events","complete","buyers_paying_30d","reports_90d"]},"links":{"type":"object","properties":{"page":{"type":"string","format":"uri"}},"required":["page"]},"handle_locked":{"type":"boolean","description":"Only on GET and PUT /profile. True after the first listing: the handle can no longer change."}},"required":["handle","name","bio","kind","status","since","record","links"]},"ProfileWrite":{"type":"object","properties":{"handle":{"type":"string","minLength":3,"maxLength":32},"name":{"type":"string","minLength":1,"maxLength":60},"bio":{"type":"string","maxLength":280}},"description":"Creates the account's profile, or changes it. The same handle keeps it. Text with a link, a contact or trading words is refused (validation_failed).","required":["handle","name"]},"ExchangeOffer":{"type":"object","properties":{"id":{"type":"integer"},"kind":{"type":"string","enum":["free","per_event","per_call","per_block","plan_included"]},"method":{"type":"string","enum":["credits","x402","plan"]},"price_cents":{"type":"integer","description":"Per unit, in credits (1 credit is 1 cent). 0 for free and plan_included."},"unit":{"type":"string","enum":["event","call","block"],"description":"call is one API request. block is 1,000 requests."},"fee_bps":{"type":"integer","description":"Seller's view only. Terminal's fee in basis points: 2000 on a member offer."},"seller_receives_cents":{"type":"integer","description":"Seller's view only. price_cents minus the fee."}},"description":"Price terms. An offer never changes: a new price is a new offer.","required":["id","kind","method","price_cents","unit"]},"ServiceSeller":{"type":"object","properties":{"handle":{"type":"string"},"name":{"type":"string","description":"Closed account for a closed profile. The seller's own words."},"kind":{"type":"string","enum":["house","member"]}},"required":["handle","name","kind"]},"DefinitionRule":{"type":"object","properties":{"position":{"type":"integer","minimum":1},"kind":{"type":"string","description":"One of price_above, price_below, percent_change, volume_spike, unusual_move, or service for a subscription rule. Treat a kind you do not know as other."},"asset":{"$ref":"#/components/schemas/Asset"},"condition":{"type":"object","description":"The public condition fields of this kind, as on a rule."},"cooldown_seconds":{"type":"integer","minimum":900}},"required":["position","kind","asset","condition","cooldown_seconds"]},"ServiceDefinition":{"type":"object","properties":{"version":{"type":"integer","const":1},"kind":{"type":"string","enum":["feed","call"]},"rules":{"type":"array","items":{"$ref":"#/components/schemas/DefinitionRule"},"description":"A feed's backing rules, 1 to 20, in the order of rule_ids."},"route":{"type":"string","description":"An on-request service's route, such as POST /v1/explain."}},"description":"What the service watches, frozen when it was created. definition_hash is the SHA-256 of it.","required":["version","kind"]},"RecordHeader":{"type":"object","properties":{"status":{"type":"string","enum":["recording","verified","incomplete"],"description":"recording, incomplete, or a complete record. The status value `verified` is deprecated. It means a complete record."},"events":{"type":"integer"},"complete":{"type":"boolean","description":"Numbers run from 1 with no gap."},"anchored_share":{"type":["number","null"]},"anchorable_events":{"type":["integer","null"],"description":"Null exactly when anchored_share is."},"anchored_events":{"type":["integer","null"],"description":"Null exactly when anchored_share is."},"first_event_at":{"type":["string","null"],"format":"date-time"},"last_event_at":{"type":["string","null"],"format":"date-time"}},"description":"For anyone but the seller, events from the last 24 hours are left out, except the ones a subscriber's account received.","required":["status","events","complete","anchored_share","anchorable_events","anchored_events","first_event_at","last_event_at"]},"ServiceReputation":{"type":"object","properties":{"on_time_share":{"type":["number","null"]},"copies_30d":{"type":"integer"},"buyers_paying_30d":{"type":"integer"},"repeat_buyers":{"type":"integer"},"reports_90d":{"type":"integer"},"days_recording":{"type":"integer"}},"description":"Counts from the latest daily run. They are not a rating.","required":["on_time_share","copies_30d","buyers_paying_30d","repeat_buyers","reports_90d","days_recording"]},"ExchangeService":{"type":"object","properties":{"id":{"type":"integer"},"kind":{"type":"string","enum":["feed","call"],"description":"feed sends events. call answers one API request."},"slug":{"type":"string"},"name":{"type":"string","description":"1 to 80 characters. The seller's own words."},"description":{"type":"string","description":"Up to 1000 characters. The seller's own words."},"seller":{"$ref":"#/components/schemas/ServiceSeller"},"status":{"type":"string","enum":["recording","listed","unlisted","retired"]},"definition":{"$ref":"#/components/schemas/ServiceDefinition"},"definition_hash":{"type":"string","pattern":"^[0-9a-f]{64}$"},"recording_since":{"type":"string","format":"date-time"},"listed_at":{"type":["string","null"],"format":"date-time"},"offers":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeOffer"}},"record":{"$ref":"#/components/schemas/RecordHeader"},"subscribers":{"type":"integer","description":"Active subscriptions now."},"reputation":{"$ref":"#/components/schemas/ServiceReputation"},"links":{"type":"object","properties":{"page":{"type":"string","format":"uri"},"record":{"type":"string","format":"uri"}},"required":["page","record"]},"rule_ids":{"type":"array","items":{"type":"integer"},"description":"Seller's view only. The backing rules."},"listing_paid_until":{"type":["string","null"],"format":"date-time","description":"Seller's view only."},"unlisted_reason":{"type":["string","null"],"enum":["fee_unpaid","seller","owner","plan",null],"description":"Seller's view only."},"retired_reason":{"type":["string","null"],"enum":["seller","owner","rule_lost",null],"description":"Seller's view only."}},"required":["id","kind","slug","name","description","seller","status","definition","definition_hash","recording_since","listed_at","offers","record","subscribers","reputation","links"]},"OfferInput":{"type":"object","properties":{"kind":{"type":"string","enum":["free","per_event"]},"price_cents":{"type":"integer","minimum":0,"maximum":100,"multipleOf":5,"description":"0 for free. 5 to 100 for per_event, in steps of 5."}},"required":["kind","price_cents"]},"ServiceCreate":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{1,46}[a-z0-9]$","description":"3 to 48 characters: a-z, 0-9 and hyphens. Unique among the profile's services."},"name":{"type":"string","minLength":1,"maxLength":80},"description":{"type":"string","maxLength":1000},"rule_ids":{"type":"array","items":{"type":"integer"},"minItems":1,"maxItems":20,"description":"Your active one-coin rules, each waiting at least 900 seconds between alerts, not backing another service."},"offer":{"$ref":"#/components/schemas/OfferInput"}},"required":["slug","name","rule_ids","offer"]},"ServicePatch":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"description":{"type":"string","maxLength":1000}},"description":"Only the name and the description change. Send at least one."},"ServiceRecordItem":{"type":"object","properties":{"seq":{"type":"integer","minimum":1},"alert_id":{"type":"integer"},"fired_at":{"type":"string","format":"date-time"},"asset":{"$ref":"#/components/schemas/Asset"},"price":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Price"}]},"headline":{"type":"string"},"receipts":{"$ref":"#/components/schemas/ReceiptMap"},"proof":{"type":["string","null"],"description":"Where anyone can check the anchor. Null while anchoring is off or before the minute is anchored."}},"required":["seq","alert_id","fired_at","asset","price","headline","receipts","proof"]},"ServiceRecord":{"type":"object","properties":{"service_id":{"type":"integer"},"definition_hash":{"type":"string"},"recording_since":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["recording","verified","incomplete"],"description":"recording, incomplete, or a complete record. The status value `verified` is deprecated. It means a complete record."},"events":{"type":"integer"},"complete":{"type":"boolean"},"anchored_share":{"type":["number","null"]},"anchorable_events":{"type":["integer","null"]},"anchored_events":{"type":["integer","null"]},"horizons":{"type":"object","properties":{"1h":{"$ref":"#/components/schemas/HorizonCounts"},"4h":{"$ref":"#/components/schemas/HorizonCounts"},"24h":{"$ref":"#/components/schemas/HorizonCounts"},"7d":{"$ref":"#/components/schemas/HorizonCounts"}},"required":["1h","4h","24h","7d"]},"summary":{"description":"Null while the record summary is switched off.","oneOf":[{"type":"null"},{"type":"object","properties":{"1h":{"$ref":"#/components/schemas/HorizonSummary"},"4h":{"$ref":"#/components/schemas/HorizonSummary"},"24h":{"$ref":"#/components/schemas/HorizonSummary"},"7d":{"$ref":"#/components/schemas/HorizonSummary"}},"required":["1h","4h","24h","7d"]}]},"items":{"type":"array","items":{"$ref":"#/components/schemas/ServiceRecordItem"},"description":"Newest first."},"next_before":{"type":["integer","null"],"description":"Send it as before for the next page. Null on the last page."}},"required":["service_id","definition_hash","recording_since","status","events","complete","anchored_share","anchorable_events","anchored_events","horizons","summary","items","next_before"]},"SubscriptionService":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string","description":" The seller's own words."},"seller":{"$ref":"#/components/schemas/ServiceSeller"}},"required":["id","name","seller"]},"Subscription":{"type":"object","properties":{"id":{"type":"integer"},"service":{"$ref":"#/components/schemas/SubscriptionService"},"offer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExchangeOffer"}],"description":"The offer this subscription pays."},"pending_offer":{"oneOf":[{"type":"null"},{"$ref":"#/components/schemas/ExchangeOffer"}],"description":"The service's active offer when it differs: a new price waiting for accept-offer. Otherwise null."},"offer_until":{"type":["string","null"],"format":"date-time","description":"When a raised price is not accepted by then, the subscription ends (price_changed)."},"rule_id":{"type":["integer","null"],"description":"The routing rule in your account. Its alerts are the copies."},"status":{"type":"string","enum":["active","paused","paused_unpaid","paused_cap","paused_plan","ended"]},"monthly_cap_cents":{"type":"integer","description":"100 to 10000, a multiple of 100. 0 on a free offer."},"spent_this_month_cents":{"type":"integer","description":"Settled charges this UTC month."},"events_delivered":{"type":"integer"},"events_missed":{"type":"integer","description":"Events skipped as stale."},"destination_ids":{"type":["array","null"],"items":{"type":"integer"},"description":"Null sends to every destination that can take it. Template and preset webhooks never receive copies."},"created_at":{"type":"string","format":"date-time"},"ended_at":{"type":["string","null"],"format":"date-time"},"end_reason":{"type":["string","null"],"enum":["buyer","service_retired","price_changed","reported","account_deleted","owner",null]}},"required":["id","service","offer","pending_offer","offer_until","rule_id","status","monthly_cap_cents","spent_this_month_cents","events_delivered","events_missed","destination_ids","created_at","ended_at","end_reason"]},"SubscriptionCreate":{"type":"object","properties":{"service_id":{"type":"integer"},"offer_id":{"type":"integer","description":"The service's active offer, as you read it. Another one answers offer_changed."},"monthly_cap_cents":{"type":"integer","minimum":100,"maximum":10000,"multipleOf":100,"description":"Paid offers: 100 to 10000 cents a month, a multiple of 100. Default 500. Ignored on a free offer."},"destination_ids":{"type":["array","null"],"items":{"type":"integer"},"description":"Null, or ids of your destinations. A template or preset webhook is refused (preset_not_allowed)."},"name":{"type":"string","minLength":1,"maxLength":80,"description":"The routing rule's name. Default: the service's name."}},"required":["service_id","offer_id"]},"SubscriptionPatch":{"type":"object","properties":{"monthly_cap_cents":{"type":"integer","minimum":100,"maximum":10000,"multipleOf":100,"description":"Paid offers: 100 to 10000 cents a month, a multiple of 100. Default 500. Ignored on a free offer."},"destination_ids":{"type":["array","null"],"items":{"type":"integer"},"description":"Null, or ids of your destinations. A template or preset webhook is refused (preset_not_allowed)."},"name":{"type":"string","minLength":1,"maxLength":80}},"description":"Send at least one field."},"AcceptOffer":{"type":"object","properties":{"offer_id":{"type":"integer","description":"pending_offer.id, the offer you were shown."},"monthly_cap_cents":{"type":"integer","minimum":100,"maximum":10000,"multipleOf":100,"description":"Paid offers: 100 to 10000 cents a month, a multiple of 100. Default 500. Ignored on a free offer."}},"required":["offer_id"]},"ReportCreate":{"type":"object","properties":{"reason":{"type":"string","enum":["not_as_described","did_not_subscribe","spam","other"]},"note":{"type":"string","maxLength":500}},"required":["reason"]},"Report":{"type":"object","properties":{"id":{"type":"integer"},"refunded_cents":{"type":"integer","description":"Charges still on hold that were returned as credits."},"sales_refunded":{"type":"integer"}},"required":["id","refunded_cents","sales_refunded"]},"EarningsRow":{"type":"object","properties":{"id":{"type":"integer"},"at":{"type":"string","format":"date-time"},"delta_cents":{"type":"integer"},"reason":{"type":"string","enum":["sale","reversal","to_credits","adjustment"]},"sale_id":{"type":["integer","null"]},"available_at":{"type":"string","format":"date-time"}},"required":["id","at","delta_cents","reason","sale_id","available_at"]},"Earnings":{"type":"object","properties":{"balance_cents":{"type":"integer"},"available_cents":{"type":"integer","description":"Can move into credits now."},"on_hold_cents":{"type":"integer","description":"Sales from the last 7 days."},"moved_to_credits_cents":{"type":"integer"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/EarningsRow"},"description":"The last 50 rows, newest first."}},"description":"What sellers are owed. Earnings move into credits only. There is no cash payout.","required":["balance_cents","available_cents","on_hold_cents","moved_to_credits_cents","rows"]},"EarningsMove":{"type":"object","properties":{"cents":{"type":"integer","minimum":100,"description":"At least 100, at most available_cents."}},"required":["cents"]},"Sale":{"type":"object","properties":{"id":{"type":"integer"},"at":{"type":"string","format":"date-time"},"role":{"type":"string","enum":["seller","buyer"]},"service":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string","description":" The seller's own words."}},"required":["id","name"]},"units":{"type":"integer"},"gross_cents":{"type":"integer","description":"What the buyer paid."},"fee_cents":{"type":"integer","description":"Seller role only. Terminal's part."},"net_cents":{"type":"integer","description":"Seller role only. The seller's part."},"method":{"type":"string","enum":["credits","x402"]},"status":{"type":"string","enum":["settled","reversed"]},"alert_id":{"type":["integer","null"],"description":"The buyer's copy for a buyer, the source alert for the seller."}},"required":["id","at","role","service","units","gross_cents","method","status","alert_id"]},"ExchangeSettings":{"type":"object","properties":{"monthly_cap_cents":{"type":"integer","description":"The account's cap on all subscriptions in a UTC month."},"spent_this_month_cents":{"type":"integer"}},"required":["monthly_cap_cents","spent_this_month_cents"]},"ExchangeSettingsPatch":{"type":"object","properties":{"monthly_cap_cents":{"type":"integer","minimum":0,"maximum":50000,"multipleOf":100}},"required":["monthly_cap_cents"]},"ProfileResponse":{"type":"object","properties":{"profile":{"$ref":"#/components/schemas/ExchangeProfile"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["profile","notice","terms"]},"ServiceResponse":{"type":"object","properties":{"service":{"$ref":"#/components/schemas/ExchangeService"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["service","notice","terms"]},"ServiceListResponse":{"type":"object","properties":{"services":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeService"}},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["services","notice","terms"]},"CatalogueResponse":{"type":"object","properties":{"services":{"type":"array","items":{"$ref":"#/components/schemas/ExchangeService"}},"next_cursor":{"type":["string","null"],"description":"Opaque. Send it as cursor. Null on the last page."},"has_more":{"type":"boolean"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"description":"Listed services. Complete records first, then the oldest. Nothing is ordered by what prices did.","required":["services","next_cursor","has_more","notice","terms"]},"ServiceRecordResponse":{"type":"object","properties":{"record":{"$ref":"#/components/schemas/ServiceRecord"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["record","notice","terms"]},"SubscriptionResponse":{"type":"object","properties":{"subscription":{"$ref":"#/components/schemas/Subscription"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["subscription","notice","terms"]},"SubscriptionListResponse":{"type":"object","properties":{"subscriptions":{"type":"array","items":{"$ref":"#/components/schemas/Subscription"}},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["subscriptions","notice","terms"]},"ReportResponse":{"type":"object","properties":{"report":{"$ref":"#/components/schemas/Report"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["report","notice","terms"]},"EarningsResponse":{"type":"object","properties":{"earnings":{"$ref":"#/components/schemas/Earnings"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["earnings","notice","terms"]},"EarningsMoveResult":{"type":"object","properties":{"requested_cents":{"type":"integer"},"moved_cents":{"type":"integer","description":"What reached credits. Less than requested_cents when the credit balance cap stopped the move; the rest stays in earnings."},"capped":{"type":"boolean"}},"required":["requested_cents","moved_cents","capped"]},"EarningsMoveResponse":{"type":"object","properties":{"earnings":{"$ref":"#/components/schemas/Earnings"},"move":{"$ref":"#/components/schemas/EarningsMoveResult"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["earnings","move","notice","terms"]},"SaleListResponse":{"type":"object","properties":{"sales":{"type":"array","items":{"$ref":"#/components/schemas/Sale"}},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["sales","notice","terms"]},"ExchangeSettingsResponse":{"type":"object","properties":{"settings":{"$ref":"#/components/schemas/ExchangeSettings"},"notice":{"$ref":"#/components/schemas/Notice"},"terms":{"$ref":"#/components/schemas/Terms"}},"required":["settings","notice","terms"]}}}}