List event sources
Lists the event sources an automation's rule may watch, each with its configuration schema, its data fields, and this owner's current ability to use it. Reading the catalog does not fetch a live value or create a connection.
Authentication
Both headers are required.
- Header:
X-Api-Key: YOUR_API_KEY - Header:
Authorization: Bearer YOUR_USER_TOKEN
Path parameters
userIdstring · uuidrequiredThe user in the path; must equal the token's own account.
Validation rules
- Format
"uuid"- Pattern
"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
Request example
Illustrative request. Replace the host, credentials and resource IDs with your own. If a request file is shown, create it from the schema above. Review the requested action before sending it.
curl --request GET 'https://api.example.test/v1/users/YOUR_USER_ID/automation-sources' \
--header 'X-Api-Key: YOUR_API_KEY' \
--header 'Authorization: Bearer YOUR_USER_TOKEN'
Responses
200 The event sources an automation may watch.
The event sources an automation may watch.
application/json · object
dataarrayrequiredThis page's rows.
Show attributes
This page's rows.
Array items · object
One event source an automation may watch: its configuration schema, its data fields, and this owner's current ability to use it.
idstringrequiredThe operation's id within the catalog.
Validation rules
- Pattern
"^[a-z][a-z0-9_.-]{0,79}$"
versionintegerrequiredThe operation's version.
Validation rules
- Greater than
0- Maximum
9007199254740991
labelstringrequiredA short display name for this source.
Validation rules
- Minimum length
1- Maximum length
120
descriptionstringrequiredWhat this source reads, in the catalog's own words.
Validation rules
- Maximum length
2048
semanticIdentitystringrequiredWhat this operation actually reads, independent of its exact configuration; used to tell equivalent sources apart.
Validation rules
- Minimum length
1- Maximum length
2048
schemaFingerprintstringrequiredA content hash of this operation's exact configuration and result field types, derived from the registry.
Validation rules
- Pattern
"^[a-f0-9]{64}$"
configSchemaobjectrequiredThis source's configuration, as a bounded JSON Schema subset the generic source editor can render.
Show attributes
This source's configuration, as a bounded JSON Schema subset the generic source editor can render.
typestringrequiredAlways object: a source's configuration is a flat set of named fields.
Validation rules
- Exact value
"object"
propertiesobjectrequiredEach configuration field this source accepts, keyed by field name.
Show attributes
Each configuration field this source accepts, keyed by field name.
Validation rules
- propertyNames
{"type":"string","pattern":"^[A-Za-z_][A-Za-z0-9_-]{0,63}$"}
Additional property values
anyOf · 2 variants
Variant 1 · oneOf
oneOf · 3 variants
Variant 1 · type: string
titlestringoptionalA short label for this configuration field, for display.
Validation rules
- Maximum length
120
descriptionstringoptionalHelp text for this configuration field, for display.
Validation rules
- Maximum length
2048
typestringrequiredA text value.
Validation rules
- Exact value
"string"
enumarrayoptionalThe exact values allowed, when this field is closed to a fixed list.
Show attributes
The exact values allowed, when this field is closed to a fixed list.
Validation rules
- Minimum items
1- Maximum items
128
Array items · string
Validation rules
- Maximum length
4096
minLengthintegeroptionalThe shortest allowed length, in characters.
Validation rules
- Minimum
0- Maximum
4096
maxLengthintegeroptionalThe longest allowed length, in characters.
Validation rules
- Minimum
0- Maximum
4096
patternstringoptionalA regular expression this field's value must match, when its shape is constrained.
Validation rules
- Maximum length
1024
defaultstringoptionalThe value used when this field is left unset.
Validation rules
- Maximum length
4096
Variant 2 · type: boolean
titlestringoptionalA short label for this configuration field, for display.
Validation rules
- Maximum length
120
descriptionstringoptionalHelp text for this configuration field, for display.
Validation rules
- Maximum length
2048
typestringrequiredA true/false value.
Validation rules
- Exact value
"boolean"
defaultbooleanoptionalThe value used when this field is left unset.
Variant 3 · type: integer
titlestringoptionalA short label for this configuration field, for display.
Validation rules
- Maximum length
120
descriptionstringoptionalHelp text for this configuration field, for display.
Validation rules
- Maximum length
2048
typestringrequiredA whole-number value.
Validation rules
- Exact value
"integer"
minimumintegeroptionalThe smallest allowed value.
Validation rules
- Minimum
-9007199254740991- Maximum
9007199254740991
maximumintegeroptionalThe largest allowed value.
Validation rules
- Minimum
-9007199254740991- Maximum
9007199254740991
enumarrayoptionalThe exact values allowed, when this field is closed to a fixed list.
Show attributes
The exact values allowed, when this field is closed to a fixed list.
Validation rules
- Minimum items
1- Maximum items
128
Array items · integer
Validation rules
- Minimum
-9007199254740991- Maximum
9007199254740991
defaultintegeroptionalThe value used when this field is left unset.
Validation rules
- Minimum
-9007199254740991- Maximum
9007199254740991
Variant 2 · type: array
titlestringoptionalA short label for this configuration field, for display.
Validation rules
- Maximum length
120
descriptionstringoptionalHelp text for this configuration field, for display.
Validation rules
- Maximum length
2048
typestringrequiredA list of scalar values.
Validation rules
- Exact value
"array"
itemsoneOfrequiredThe type each item in the list must match.
Show attributes
The type each item in the list must match.
oneOf · 3 variants
Variant 1 · type: string
titlestringoptionalA short label for this configuration field, for display.
Validation rules
- Maximum length
120
descriptionstringoptionalHelp text for this configuration field, for display.
Validation rules
- Maximum length
2048
typestringrequiredA text value.
Validation rules
- Exact value
"string"
enumarrayoptionalThe exact values allowed, when this field is closed to a fixed list.
Show attributes
The exact values allowed, when this field is closed to a fixed list.
Validation rules
- Minimum items
1- Maximum items
128
Array items · string
Validation rules
- Maximum length
4096
minLengthintegeroptionalThe shortest allowed length, in characters.
Validation rules
- Minimum
0- Maximum
4096
maxLengthintegeroptionalThe longest allowed length, in characters.
Validation rules
- Minimum
0- Maximum
4096
patternstringoptionalA regular expression this field's value must match, when its shape is constrained.
Validation rules
- Maximum length
1024
defaultstringoptionalThe value used when this field is left unset.
Validation rules
- Maximum length
4096
Variant 2 · type: boolean
titlestringoptionalA short label for this configuration field, for display.
Validation rules
- Maximum length
120
descriptionstringoptionalHelp text for this configuration field, for display.
Validation rules
- Maximum length
2048
typestringrequiredA true/false value.
Validation rules
- Exact value
"boolean"
defaultbooleanoptionalThe value used when this field is left unset.
Variant 3 · type: integer
titlestringoptionalA short label for this configuration field, for display.
Validation rules
- Maximum length
120
descriptionstringoptionalHelp text for this configuration field, for display.
Validation rules
- Maximum length
2048
typestringrequiredA whole-number value.
Validation rules
- Exact value
"integer"
minimumintegeroptionalThe smallest allowed value.
Validation rules
- Minimum
-9007199254740991- Maximum
9007199254740991
maximumintegeroptionalThe largest allowed value.
Validation rules
- Minimum
-9007199254740991- Maximum
9007199254740991
enumarrayoptionalThe exact values allowed, when this field is closed to a fixed list.
Show attributes
The exact values allowed, when this field is closed to a fixed list.
Validation rules
- Minimum items
1- Maximum items
128
Array items · integer
Validation rules
- Minimum
-9007199254740991- Maximum
9007199254740991
defaultintegeroptionalThe value used when this field is left unset.
Validation rules
- Minimum
-9007199254740991- Maximum
9007199254740991
minItemsintegeroptionalThe fewest items allowed.
Validation rules
- Minimum
0- Maximum
64
maxItemsintegeroptionalThe most items allowed.
Validation rules
- Minimum
0- Maximum
64
requiredarrayrequiredWhich configuration fields must be set.
Show attributes
Which configuration fields must be set.
Validation rules
- Default
[]- Maximum items
64
Array items · string
Validation rules
- Pattern
"^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
additionalPropertiesbooleanrequiredAlways false: no configuration field outside properties is accepted.
Validation rules
- Exact value
false
fieldsarrayrequiredThe data fields this source's observations carry.
Show attributes
The data fields this source's observations carry.
Validation rules
- Minimum items
1- Maximum items
64
Array items · object
One data field an event or a source's observation carries: where it lives, and its type.
patharrayrequiredThe keys to walk, in order, from an observation's top level down to this field.
Show attributes
The keys to walk, in order, from an observation's top level down to this field.
Validation rules
- Minimum items
1- Maximum items
8
Array items · string
Validation rules
- Pattern
"^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
valueTypeoneOfrequiredWhat type this field's value has, and the unit it carries when it has one.
Show attributes
What type this field's value has, and the unit it carries when it has one.
oneOf · 4 variants
Variant 1 · type: boolean
typestringrequiredA true/false value.
Validation rules
- Exact value
"boolean"
Variant 2 · type: string
typestringrequiredA text value.
Validation rules
- Exact value
"string"
Variant 3 · type: integer
typestringrequiredA whole-number value, compared exactly.
Validation rules
- Exact value
"integer"
unitstringrequiredThe unit an integer or decimal value is measured in, as the source or literal declares it.
Validation rules
- Minimum length
1- Maximum length
64
Variant 4 · type: decimal
typestringrequiredAn exact decimal value, as text, compared exactly.
Validation rules
- Exact value
"decimal"
unitstringrequiredThe unit an integer or decimal value is measured in, as the source or literal declares it.
Validation rules
- Minimum length
1- Maximum length
64
optionalbooleanoptionalWhether the provider may genuinely not observe this field, rather than fail to read it. When true, a missing value resolves a condition over it to missing_field and the rule's verdict to unknown, rather than zero, null or false.
publicbooleanrequiredWhether this source reads data anyone can read, rather than data scoped to the owner's own connection.
requiredConnectionScopesarrayrequiredThe connection scopes a binding needs before this source is available, when it needs any.
Show attributes
The connection scopes a binding needs before this source is available, when it needs any.
Validation rules
- Maximum items
64
Array items · string
Validation rules
- Minimum length
1- Maximum length
256
supportedSubjectsobjectrequiredWhat this source can be configured to read, where the catalog knows the bounds; empty where any value is accepted.
Show attributes
What this source can be configured to read, where the catalog knows the bounds; empty where any value is accepted.
subjectsarrayrequiredThe subjects this source can be configured to read, when it is bounded to a known list.
Show attributes
The subjects this source can be configured to read, when it is bounded to a known list.
Validation rules
- Maximum items
64
Array items · string
Validation rules
- Minimum length
1- Maximum length
256
assetsarrayrequiredThe assets this source can be configured to read, when it is bounded to a known list.
Show attributes
The assets this source can be configured to read, when it is bounded to a known list.
Validation rules
- Maximum items
64
Array items · string
Validation rules
- Minimum length
1- Maximum length
256
networksarrayrequiredThe networks this source can be configured to read, when it is bounded to a known list.
Show attributes
The networks this source can be configured to read, when it is bounded to a known list.
Validation rules
- Maximum items
64
Array items · string
Validation rules
- Minimum length
1- Maximum length
256
filtersarrayrequiredThe other filters this source accepts, when it is bounded to a known list.
Show attributes
The other filters this source accepts, when it is bounded to a known list.
Validation rules
- Maximum items
64
Array items · string
Validation rules
- Minimum length
1- Maximum length
256
guaranteesobjectrequiredWhat an operation promises about the snapshots it serves: cadence, freshness and how many subjects it can batch. Describes sampled state; nothing here promises that a change between two polls was seen.
Show attributes
What an operation promises about the snapshots it serves: cadence, freshness and how many subjects it can batch. Describes sampled state; nothing here promises that a change between two polls was seen.
minCadenceSecondsintegerrequiredThe shortest interval between requests the provider permits, in seconds.
Validation rules
- Minimum
0- Maximum
2147483
expectedLatencySecondsanyOfrequiredHow stale the provider's own value may be when it answers, in seconds; null when the provider establishes no bound. A reader with a delivery deadline cannot use a source that promises nothing here.
Show attributes
How stale the provider's own value may be when it answers, in seconds; null when the provider establishes no bound. A reader with a delivery deadline cannot use a source that promises nothing here.
anyOf · 2 variants
Variant 1 · integer
Validation rules
- Minimum
0- Maximum
2147483
Variant 2 · null
maxAgeSecondsintegerrequiredMaximum snapshot observation age accepted at collection. This acquisition guarantee does not shorten a reader's separately declared evaluation-age window.
Validation rules
- Minimum
0- Maximum
2147483
requestsPerMinuteanyOfrequiredThe provider's own rate limit for this source, when it publishes one.
Show attributes
The provider's own rate limit for this source, when it publishes one.
anyOf · 2 variants
Variant 1 · integer
Validation rules
- Greater than
0- Maximum
9007199254740991
Variant 2 · null
observationReuseSecondsintegeroptionalHow long one provider observation may serve every reader watching the same subject under the same connection, in seconds. Absent or 0 means each reader causes its own request. A reused observation keeps the provider's own sourceTime, so declared freshness still governs; what reuse changes is how often the provider is asked, not how old an accepted observation may be. Keep it at or below the cadence readers are expected to poll at.
Validation rules
- Minimum
0- Maximum
2147483
batchLimitintegeroptionalHow many distinct subjects the provider can serve in one request. Absent or 1 means no batching. Only providers implementing readBatch may declare more: the framework cannot infer that an API accepts several subjects.
Validation rules
- Greater than
0- Maximum
1000
presentationobjectoptionalReviewed display copy for the source editor: cosmetic only, never part of an execution descriptor or a saved source pin.
Show attributes
Reviewed display copy for the source editor: cosmetic only, never part of an execution descriptor or a saved source pin.
subjectConfigKeystringoptionalWhich configuration field names the subject being watched, when the editor should highlight one.
Validation rules
- Pattern
"^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
fieldsarrayrequiredReviewed display labels for a subset of this source's fields.
Show attributes
Reviewed display labels for a subset of this source's fields.
Validation rules
- Minimum items
1- Maximum items
64
Array items · object
patharrayrequiredThe keys to walk, in order, from an observation's top level down to this field.
Show attributes
The keys to walk, in order, from an observation's top level down to this field.
Validation rules
- Minimum items
1- Maximum items
8
Array items · string
Validation rules
- Pattern
"^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
labelstringrequiredA short display label for this field.
Validation rules
- Minimum length
1- Maximum length
120
recipeobjectoptionalA reviewed, public description of how a source is collected: the steps a reviewer confirmed, never an executable request or a resolved private endpoint.
Show attributes
A reviewed, public description of how a source is collected: the steps a reviewer confirmed, never an executable request or a resolved private endpoint.
versionintegerrequiredThe recipe description's own version, bumped when its steps change.
Validation rules
- Greater than
0- Maximum
9007199254740991
titlestringrequiredThe recipe's short label, for the reviewed catalog.
Validation rules
- Minimum length
1- Maximum length
120
summarystringrequiredWhat the recipe does, for the reviewed catalog.
Validation rules
- Minimum length
1- Maximum length
600
stepsarrayrequiredThe recipe's steps, in order.
Show attributes
The recipe's steps, in order.
Validation rules
- Minimum items
1- Maximum items
12
Array items · object
idstringrequiredThe step's identifier, unique within its recipe.
Validation rules
- Pattern
"^[a-z][a-z0-9_-]{0,47}$"
kindstringrequiredWhat this step does: request calls the provider, validate checks what it returned, calculate derives a value from earlier steps.
Validation rules
- Allowed values
["request","validate","calculate"]
titlestringrequiredThe step's short label, for the reviewed catalog.
Validation rules
- Minimum length
1- Maximum length
120
descriptionstringrequiredWhat this step does, for the reviewed catalog.
Validation rules
- Minimum length
1- Maximum length
600
apiobjectoptionalThe request this step makes, when it calls the provider.
Show attributes
The request this step makes, when it calls the provider.
methodstringrequiredThe request's method or protocol.
Validation rules
- Allowed values
["GET","POST","GRAPHQL"]
resourcestringrequiredThe request's path or resource name.
Validation rules
- Minimum length
1- Maximum length
160- Pattern
"^\\/?[A-Za-z0-9_{}][A-Za-z0-9_./{} -]*$"
limitationsarrayrequiredWhat the recipe does not cover, in the reviewer's own words.
Show attributes
What the recipe does not cover, in the reviewer's own words.
Validation rules
- Maximum items
6
Array items · string
Validation rules
- Minimum length
1- Maximum length
600
fingerprintstringrequiredA content hash identifying this exact recipe, independent of execution or connection identity.
Validation rules
- Pattern
"^[a-f0-9]{64}$"
availabilityobjectrequiredThis owner's ability to use this source right now: whether it is connected and verified. Carries no credential, account or provider connection identifier.
Show attributes
This owner's ability to use this source right now: whether it is connected and verified. Carries no credential, account or provider connection identifier.
statusstringrequiredWhether this source is usable for the current owner: available ready to use, needs_connection a connection must be granted first, unknown availability has not been checked yet, or an earlier check's validity window has expired. unavailable marks a source this deployment cannot offer at all; automationSources.list never returns it today.
Validation rules
- Allowed values
["available","needs_connection","unavailable","unknown"]
configuredbooleanrequiredWhether the owner has set up a connection for this source.
verifiedbooleanrequiredWhether that connection has been confirmed to work.
grantedScopesarrayrequiredThe connection scopes the owner has actually granted.
Show attributes
The connection scopes the owner has actually granted.
Validation rules
- Maximum items
64
Array items · string
Validation rules
- Minimum length
1- Maximum length
256
checkedAtanyOfrequiredWhen availability was last checked, when it has been.
Show attributes
When availability was last checked, when it has been.
anyOf · 2 variants
Variant 1 · string · date-time
Validation rules
- Format
"date-time"- Pattern
"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
Variant 2 · null
expiresAtanyOfrequiredWhen this availability check expires and must be re-checked, when it has an expiry.
Show attributes
When this availability check expires and must be re-checked, when it has an expiry.
anyOf · 2 variants
Variant 1 · string · date-time
Validation rules
- Format
"date-time"- Pattern
"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
Variant 2 · null
reasonanyOfrequiredWhy this source is not available, when it is not.
Show attributes
Why this source is not available, when it is not.
anyOf · 2 variants
Variant 1 · string
Validation rules
- Maximum length
2048
Variant 2 · null
nextCursorstring or nullrequiredThe cursor for the next page; null once there are no more rows.
totalintegerrequiredHow many rows the list holds in all.
Validation rules
- Minimum
0- Maximum
9007199254740991
400 The request could not be read as this operation expects.
The request could not be read as this operation expects.
invalid_input— the body or query failed validation;issuesnames each fieldinvalid_cursor— thecursoris not one this list minted
application/problem+json · object
RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.
typestringrequiredThe kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it
titlestringrequiredThe kind's human title, for logs; never parse it
statusintegerrequiredThe HTTP status, repeated in the body
Validation rules
- Minimum
400- Maximum
599
reasonstringoptionalThe machine-readable why. One of:
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againautomation_limit(409) — the user already has as many automations as the deployment allowsprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerengine_unavailable(503) — the execution engine did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originpermission_required(403) — the operator credential lacks the scope this call needsrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted
Validation rules
- Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequiredThe id Fin used for this request; quote it when reporting a problem
retryablebooleanrequiredWhether repeating the same request later can succeed without changing it
detailstringoptionalOnly on invalid_input: which part of the request failed validation
issuesarrayoptionalOnly on invalid_input: one entry per failing field
Show attributes
Only on invalid_input: one entry per failing field
Array items · object
pathstringrequiredThe JSON pointer of the failing field; empty for the root object
messagestringrequiredWhy the field failed
401 A credential is missing, invalid or expired.
A credential is missing, invalid or expired.
partner_key_required— noX-Api-Keyheader was sentpartner_key_invalid— theX-Api-Keyis unknown or revokedcredential_expired— the user token has expired; obtain a fresh one
application/problem+json · object
RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.
typestringrequiredThe kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it
titlestringrequiredThe kind's human title, for logs; never parse it
statusintegerrequiredThe HTTP status, repeated in the body
Validation rules
- Minimum
400- Maximum
599
reasonstringoptionalThe machine-readable why. One of:
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againautomation_limit(409) — the user already has as many automations as the deployment allowsprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerengine_unavailable(503) — the execution engine did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originpermission_required(403) — the operator credential lacks the scope this call needsrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted
Validation rules
- Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequiredThe id Fin used for this request; quote it when reporting a problem
retryablebooleanrequiredWhether repeating the same request later can succeed without changing it
detailstringoptionalOnly on invalid_input: which part of the request failed validation
issuesarrayoptionalOnly on invalid_input: one entry per failing field
Show attributes
Only on invalid_input: one entry per failing field
Array items · object
pathstringrequiredThe JSON pointer of the failing field; empty for the root object
messagestringrequiredWhy the field failed
403 The credentials are valid but may not do this.
The credentials are valid but may not do this.
subject_mismatch— the{userId}in the path is not the token's useraccount_disabled— an operator disabled the accountorigin_rejected— a browserOriginother than the configured web origin
application/problem+json · object
RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.
typestringrequiredThe kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it
titlestringrequiredThe kind's human title, for logs; never parse it
statusintegerrequiredThe HTTP status, repeated in the body
Validation rules
- Minimum
400- Maximum
599
reasonstringoptionalThe machine-readable why. One of:
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againautomation_limit(409) — the user already has as many automations as the deployment allowsprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerengine_unavailable(503) — the execution engine did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originpermission_required(403) — the operator credential lacks the scope this call needsrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted
Validation rules
- Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequiredThe id Fin used for this request; quote it when reporting a problem
retryablebooleanrequiredWhether repeating the same request later can succeed without changing it
detailstringoptionalOnly on invalid_input: which part of the request failed validation
issuesarrayoptionalOnly on invalid_input: one entry per failing field
Show attributes
Only on invalid_input: one entry per failing field
Array items · object
pathstringrequiredThe JSON pointer of the failing field; empty for the root object
messagestringrequiredWhy the field failed
404 The resource is missing, belongs to someone else, or its id is malformed: all three answer alike.
The resource is missing, belongs to someone else, or its id is malformed: all three answer alike.
application/problem+json · object
RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.
typestringrequiredThe kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it
titlestringrequiredThe kind's human title, for logs; never parse it
statusintegerrequiredThe HTTP status, repeated in the body
Validation rules
- Minimum
400- Maximum
599
reasonstringoptionalThe machine-readable why. One of:
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againautomation_limit(409) — the user already has as many automations as the deployment allowsprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerengine_unavailable(503) — the execution engine did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originpermission_required(403) — the operator credential lacks the scope this call needsrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted
Validation rules
- Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequiredThe id Fin used for this request; quote it when reporting a problem
retryablebooleanrequiredWhether repeating the same request later can succeed without changing it
detailstringoptionalOnly on invalid_input: which part of the request failed validation
issuesarrayoptionalOnly on invalid_input: one entry per failing field
Show attributes
Only on invalid_input: one entry per failing field
Array items · object
pathstringrequiredThe JSON pointer of the failing field; empty for the root object
messagestringrequiredWhy the field failed
412 The identity is verified but has no account yet.
The identity is verified but has no account yet.
account_not_provisioned— the identity is verified but has no account yet; callusers.ensurefirst
application/problem+json · object
RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.
typestringrequiredThe kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it
titlestringrequiredThe kind's human title, for logs; never parse it
statusintegerrequiredThe HTTP status, repeated in the body
Validation rules
- Minimum
400- Maximum
599
reasonstringoptionalThe machine-readable why. One of:
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againautomation_limit(409) — the user already has as many automations as the deployment allowsprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerengine_unavailable(503) — the execution engine did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originpermission_required(403) — the operator credential lacks the scope this call needsrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted
Validation rules
- Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequiredThe id Fin used for this request; quote it when reporting a problem
retryablebooleanrequiredWhether repeating the same request later can succeed without changing it
detailstringoptionalOnly on invalid_input: which part of the request failed validation
issuesarrayoptionalOnly on invalid_input: one entry per failing field
Show attributes
Only on invalid_input: one entry per failing field
Array items · object
pathstringrequiredThe JSON pointer of the failing field; empty for the root object
messagestringrequiredWhy the field failed
429 A limiter refused the request; honour `Retry-After`.
A limiter refused the request; honour Retry-After.
rate_limited— the per-key or per-user limit is spent; honourRetry-After
application/problem+json · object
RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.
typestringrequiredThe kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it
titlestringrequiredThe kind's human title, for logs; never parse it
statusintegerrequiredThe HTTP status, repeated in the body
Validation rules
- Minimum
400- Maximum
599
reasonstringoptionalThe machine-readable why. One of:
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againautomation_limit(409) — the user already has as many automations as the deployment allowsprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerengine_unavailable(503) — the execution engine did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originpermission_required(403) — the operator credential lacks the scope this call needsrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted
Validation rules
- Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequiredThe id Fin used for this request; quote it when reporting a problem
retryablebooleanrequiredWhether repeating the same request later can succeed without changing it
detailstringoptionalOnly on invalid_input: which part of the request failed validation
issuesarrayoptionalOnly on invalid_input: one entry per failing field
Show attributes
Only on invalid_input: one entry per failing field
Array items · object
pathstringrequiredThe JSON pointer of the failing field; empty for the root object
messagestringrequiredWhy the field failed
500 A fault on our side; quote `requestId` when reporting it.
A fault on our side; quote requestId when reporting it.
internal— a fault on our side; quoterequestIdwhen reporting it
application/problem+json · object
RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.
typestringrequiredThe kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it
titlestringrequiredThe kind's human title, for logs; never parse it
statusintegerrequiredThe HTTP status, repeated in the body
Validation rules
- Minimum
400- Maximum
599
reasonstringoptionalThe machine-readable why. One of:
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againautomation_limit(409) — the user already has as many automations as the deployment allowsprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerengine_unavailable(503) — the execution engine did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originpermission_required(403) — the operator credential lacks the scope this call needsrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted
Validation rules
- Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequiredThe id Fin used for this request; quote it when reporting a problem
retryablebooleanrequiredWhether repeating the same request later can succeed without changing it
detailstringoptionalOnly on invalid_input: which part of the request failed validation
issuesarrayoptionalOnly on invalid_input: one entry per failing field
Show attributes
Only on invalid_input: one entry per failing field
Array items · object
pathstringrequiredThe JSON pointer of the failing field; empty for the root object
messagestringrequiredWhy the field failed
503 The replica is draining or a dependency did not answer; `retryable` says whether to try again.
The replica is draining or a dependency did not answer; retryable says whether to try again.
internal— a fault on our side; quoterequestIdwhen reporting it
application/problem+json · object
RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack.
typestringrequiredThe kind of problem as a URN, urn:fin:error:<kind>; stable, compare against it
titlestringrequiredThe kind's human title, for logs; never parse it
statusintegerrequiredThe HTTP status, repeated in the body
Validation rules
- Minimum
400- Maximum
599
reasonstringoptionalThe machine-readable why. One of:
run_active(409) — a run already holds this conversationbudget_exhausted(409) — the user's spend headroom is gone, or an operator froze itapproval_not_pending(409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversationexecution_capacity(409) — no execution capacity is free right now;retryablesays whether to try againexecution_unavailable(409) — the execution engine could not take the workstop_pending(409) — a stop is already in progress and its cleanup is not yet confirmedautomation_changed(409) — therevisionsent is stale; reload the automationautomation_held(409) — an operator holds the automation; it fires again when releasedautomation_invalid(409) — the automation's definition cannot run as writtenautomation_completed(409) — the automation has finished for good and cannot fire againautomation_limit(409) — the user already has as many automations as the deployment allowsprofile_unknown_tool(409) — the run profile names a tool this deployment does not havedeployment_paused(409) — an operator paused a deployment control; nothing was admitted or firedrun_not_active(409) — the run named in the path is not the conversation's live runwithdrawal_changed(409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progresscredential_expired(401) — the user token has expired; obtain a fresh oneaccount_disabled(403) — an operator disabled the accountaccount_not_provisioned(412) — the identity is verified but has no account yet; callusers.ensurefirstprovider_unavailable(503) — an external provider the call depends on did not answerengine_unavailable(503) — the execution engine did not answerinvalid_input(400) — the body or query failed validation;issuesnames each fieldinternal(500) — a fault on our side; quoterequestIdwhen reporting itpartner_key_required(401) — noX-Api-Keyheader was sentpartner_key_invalid(401) — theX-Api-Keyis unknown or revokedsubject_mismatch(403) — the{userId}in the path is not the token's userorigin_rejected(403) — a browserOriginother than the configured web originpermission_required(403) — the operator credential lacks the scope this call needsrate_limited(429) — the per-key or per-user limit is spent; honourRetry-Afterstream_capacity(429) — no stream socket is free on this replica or for this user; honourRetry-Afterinvalid_cursor(400) — thecursoris not one this list minted
Validation rules
- Allowed values
["run_active","budget_exhausted","approval_not_pending","execution_capacity","execution_unavailable","stop_pending","automation_changed","automation_held","automation_invalid","automation_completed","automation_limit","profile_unknown_tool","deployment_paused","run_not_active","withdrawal_changed","credential_expired","account_disabled","account_not_provisioned","provider_unavailable","engine_unavailable","invalid_input","internal","partner_key_required","partner_key_invalid","subject_mismatch","origin_rejected","permission_required","rate_limited","stream_capacity","invalid_cursor"]
requestIdstringrequiredThe id Fin used for this request; quote it when reporting a problem
retryablebooleanrequiredWhether repeating the same request later can succeed without changing it
detailstringoptionalOnly on invalid_input: which part of the request failed validation
issuesarrayoptionalOnly on invalid_input: one entry per failing field
Show attributes
Only on invalid_input: one entry per failing field
Array items · object
pathstringrequiredThe JSON pointer of the failing field; empty for the root object
messagestringrequiredWhy the field failed
Complete OpenAPI definition
The exact operation and all referenced components, including recursive schemas.
{
"operation": {
"operationId": "automationSources.list",
"summary": "List event sources",
"tags": [
"automations"
],
"description": "Lists the event sources an automation's rule may watch, each with its configuration schema, its data fields, and this owner's current ability to use it. Reading the catalog does not fetch a live value or create a connection.",
"parameters": [
{
"schema": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"in": "path",
"name": "userId",
"required": true,
"description": "The user in the path; must equal the token's own account."
}
],
"security": [
{
"apiKey": [],
"userToken": []
}
],
"responses": {
"200": {
"description": "The event sources an automation may watch.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AutomationSource"
},
"description": "This page's rows."
},
"nextCursor": {
"description": "The cursor for the next page; null once there are no more rows.",
"type": [
"string",
"null"
]
},
"total": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "How many rows the list holds in all."
}
},
"required": [
"data",
"nextCursor",
"total"
]
}
}
}
},
"400": {
"$ref": "#/components/responses/InvalidInput"
},
"401": {
"$ref": "#/components/responses/Unauthorized"
},
"403": {
"$ref": "#/components/responses/Forbidden"
},
"404": {
"$ref": "#/components/responses/NotFound"
},
"412": {
"$ref": "#/components/responses/AccountNotProvisioned"
},
"429": {
"$ref": "#/components/responses/TooManyRequests"
},
"500": {
"$ref": "#/components/responses/Internal"
},
"503": {
"$ref": "#/components/responses/Unavailable"
}
}
},
"components": {
"schemas": {
"AutomationSource": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9_.-]{0,79}$",
"description": "The operation's id within the catalog."
},
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The operation's version."
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A short display name for this source."
},
"description": {
"type": "string",
"maxLength": 2048,
"description": "What this source reads, in the catalog's own words."
},
"semanticIdentity": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"description": "What this operation actually reads, independent of its exact configuration; used to tell equivalent sources apart."
},
"schemaFingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "A content hash of this operation's exact configuration and result field types, derived from the registry."
},
"configSchema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "object",
"description": "Always `object`: a source's configuration is a flat set of named fields."
},
"properties": {
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"oneOf": [
{
"type": "object",
"properties": {
"title": {
"description": "A short label for this configuration field, for display.",
"type": "string",
"maxLength": 120
},
"description": {
"description": "Help text for this configuration field, for display.",
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "string",
"description": "A text value."
},
"enum": {
"description": "The exact values allowed, when this field is closed to a fixed list.",
"minItems": 1,
"maxItems": 128,
"type": "array",
"items": {
"type": "string",
"maxLength": 4096
}
},
"minLength": {
"description": "The shortest allowed length, in characters.",
"type": "integer",
"minimum": 0,
"maximum": 4096
},
"maxLength": {
"description": "The longest allowed length, in characters.",
"type": "integer",
"minimum": 0,
"maximum": 4096
},
"pattern": {
"description": "A regular expression this field's value must match, when its shape is constrained.",
"type": "string",
"maxLength": 1024
},
"default": {
"description": "The value used when this field is left unset.",
"type": "string",
"maxLength": 4096
}
},
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"title": {
"description": "A short label for this configuration field, for display.",
"type": "string",
"maxLength": 120
},
"description": {
"description": "Help text for this configuration field, for display.",
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "boolean",
"description": "A true/false value."
},
"default": {
"description": "The value used when this field is left unset.",
"type": "boolean"
}
},
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"title": {
"description": "A short label for this configuration field, for display.",
"type": "string",
"maxLength": 120
},
"description": {
"description": "Help text for this configuration field, for display.",
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "integer",
"description": "A whole-number value."
},
"minimum": {
"description": "The smallest allowed value.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"maximum": {
"description": "The largest allowed value.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"enum": {
"description": "The exact values allowed, when this field is closed to a fixed list.",
"minItems": 1,
"maxItems": 128,
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"default": {
"description": "The value used when this field is left unset.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"type"
]
}
]
},
{
"type": "object",
"properties": {
"title": {
"description": "A short label for this configuration field, for display.",
"type": "string",
"maxLength": 120
},
"description": {
"description": "Help text for this configuration field, for display.",
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "array",
"description": "A list of scalar values."
},
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"title": {
"description": "A short label for this configuration field, for display.",
"type": "string",
"maxLength": 120
},
"description": {
"description": "Help text for this configuration field, for display.",
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "string",
"description": "A text value."
},
"enum": {
"description": "The exact values allowed, when this field is closed to a fixed list.",
"minItems": 1,
"maxItems": 128,
"type": "array",
"items": {
"type": "string",
"maxLength": 4096
}
},
"minLength": {
"description": "The shortest allowed length, in characters.",
"type": "integer",
"minimum": 0,
"maximum": 4096
},
"maxLength": {
"description": "The longest allowed length, in characters.",
"type": "integer",
"minimum": 0,
"maximum": 4096
},
"pattern": {
"description": "A regular expression this field's value must match, when its shape is constrained.",
"type": "string",
"maxLength": 1024
},
"default": {
"description": "The value used when this field is left unset.",
"type": "string",
"maxLength": 4096
}
},
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"title": {
"description": "A short label for this configuration field, for display.",
"type": "string",
"maxLength": 120
},
"description": {
"description": "Help text for this configuration field, for display.",
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "boolean",
"description": "A true/false value."
},
"default": {
"description": "The value used when this field is left unset.",
"type": "boolean"
}
},
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"title": {
"description": "A short label for this configuration field, for display.",
"type": "string",
"maxLength": 120
},
"description": {
"description": "Help text for this configuration field, for display.",
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "integer",
"description": "A whole-number value."
},
"minimum": {
"description": "The smallest allowed value.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"maximum": {
"description": "The largest allowed value.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"enum": {
"description": "The exact values allowed, when this field is closed to a fixed list.",
"minItems": 1,
"maxItems": 128,
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"default": {
"description": "The value used when this field is left unset.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"type"
]
}
],
"description": "The type each item in the list must match."
},
"minItems": {
"description": "The fewest items allowed.",
"type": "integer",
"minimum": 0,
"maximum": 64
},
"maxItems": {
"description": "The most items allowed.",
"type": "integer",
"minimum": 0,
"maximum": 64
}
},
"required": [
"type",
"items"
]
}
]
},
"description": "Each configuration field this source accepts, keyed by field name."
},
"required": {
"default": [],
"description": "Which configuration fields must be set.",
"maxItems": 64,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
}
},
"additionalProperties": {
"type": "boolean",
"const": false,
"description": "Always `false`: no configuration field outside `properties` is accepted."
}
},
"required": [
"type",
"properties",
"required",
"additionalProperties"
],
"description": "This source's configuration, as a bounded JSON Schema subset the generic source editor can render."
},
"fields": {
"minItems": 1,
"maxItems": 64,
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
},
"description": "The keys to walk, in order, from an observation's top level down to this field."
},
"valueType": {
"oneOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "boolean",
"description": "A true/false value."
}
},
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "string",
"description": "A text value."
}
},
"required": [
"type"
]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "integer",
"description": "A whole-number value, compared exactly."
},
"unit": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "The unit an integer or decimal value is measured in, as the source or literal declares it."
}
},
"required": [
"type",
"unit"
]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "decimal",
"description": "An exact decimal value, as text, compared exactly."
},
"unit": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "The unit an integer or decimal value is measured in, as the source or literal declares it."
}
},
"required": [
"type",
"unit"
]
}
],
"description": "What type this field's value has, and the unit it carries when it has one."
},
"optional": {
"description": "Whether the provider may genuinely not observe this field, rather than fail to read it. When true, a missing value resolves a condition over it to `missing_field` and the rule's verdict to `unknown`, rather than zero, null or false.",
"type": "boolean"
}
},
"required": [
"path",
"valueType"
],
"description": "One data field an event or a source's observation carries: where it lives, and its type."
},
"description": "The data fields this source's observations carry."
},
"public": {
"type": "boolean",
"description": "Whether this source reads data anyone can read, rather than data scoped to the owner's own connection."
},
"requiredConnectionScopes": {
"maxItems": 64,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"description": "The connection scopes a binding needs before this source is available, when it needs any."
},
"supportedSubjects": {
"type": "object",
"properties": {
"subjects": {
"maxItems": 64,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"description": "The subjects this source can be configured to read, when it is bounded to a known list."
},
"assets": {
"maxItems": 64,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"description": "The assets this source can be configured to read, when it is bounded to a known list."
},
"networks": {
"maxItems": 64,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"description": "The networks this source can be configured to read, when it is bounded to a known list."
},
"filters": {
"maxItems": 64,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"description": "The other filters this source accepts, when it is bounded to a known list."
}
},
"required": [
"subjects",
"assets",
"networks",
"filters"
],
"description": "What this source can be configured to read, where the catalog knows the bounds; empty where any value is accepted."
},
"guarantees": {
"type": "object",
"properties": {
"minCadenceSeconds": {
"type": "integer",
"minimum": 0,
"maximum": 2147483,
"description": "The shortest interval between requests the provider permits, in seconds."
},
"expectedLatencySeconds": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 2147483
},
{
"type": "null"
}
],
"description": "How stale the provider's own value may be when it answers, in seconds; null when the provider establishes no bound. A reader with a delivery deadline cannot use a source that promises nothing here."
},
"maxAgeSeconds": {
"type": "integer",
"minimum": 0,
"maximum": 2147483,
"description": "Maximum snapshot observation age accepted at collection. This acquisition guarantee does not shorten a reader's separately declared evaluation-age window."
},
"requestsPerMinute": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
],
"description": "The provider's own rate limit for this source, when it publishes one."
},
"observationReuseSeconds": {
"description": "How long one provider observation may serve every reader watching the same subject under the same connection, in seconds. Absent or 0 means each reader causes its own request. A reused observation keeps the provider's own `sourceTime`, so declared freshness still governs; what reuse changes is how often the provider is asked, not how old an accepted observation may be. Keep it at or below the cadence readers are expected to poll at.",
"type": "integer",
"minimum": 0,
"maximum": 2147483
},
"batchLimit": {
"description": "How many distinct subjects the provider can serve in one request. Absent or 1 means no batching. Only providers implementing `readBatch` may declare more: the framework cannot infer that an API accepts several subjects.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
}
},
"required": [
"minCadenceSeconds",
"expectedLatencySeconds",
"maxAgeSeconds",
"requestsPerMinute"
],
"description": "What an operation promises about the snapshots it serves: cadence, freshness and how many subjects it can batch. Describes sampled state; nothing here promises that a change between two polls was seen."
},
"presentation": {
"type": "object",
"properties": {
"subjectConfigKey": {
"description": "Which configuration field names the subject being watched, when the editor should highlight one.",
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
},
"fields": {
"minItems": 1,
"maxItems": 64,
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_-]{0,63}$"
},
"description": "The keys to walk, in order, from an observation's top level down to this field."
},
"label": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "A short display label for this field."
}
},
"required": [
"path",
"label"
]
},
"description": "Reviewed display labels for a subset of this source's fields."
}
},
"required": [
"fields"
],
"description": "Reviewed display copy for the source editor: cosmetic only, never part of an execution descriptor or a saved source pin."
},
"recipe": {
"type": "object",
"properties": {
"version": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The recipe description's own version, bumped when its steps change."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "The recipe's short label, for the reviewed catalog."
},
"summary": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"description": "What the recipe does, for the reviewed catalog."
},
"steps": {
"minItems": 1,
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9_-]{0,47}$",
"description": "The step's identifier, unique within its recipe."
},
"kind": {
"type": "string",
"enum": [
"request",
"validate",
"calculate"
],
"description": "What this step does: `request` calls the provider, `validate` checks what it returned, `calculate` derives a value from earlier steps."
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "The step's short label, for the reviewed catalog."
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"description": "What this step does, for the reviewed catalog."
},
"api": {
"type": "object",
"properties": {
"method": {
"type": "string",
"enum": [
"GET",
"POST",
"GRAPHQL"
],
"description": "The request's method or protocol."
},
"resource": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"pattern": "^\\/?[A-Za-z0-9_{}][A-Za-z0-9_./{} -]*$",
"description": "The request's path or resource name."
}
},
"required": [
"method",
"resource"
],
"description": "The request this step makes, when it calls the provider."
}
},
"required": [
"id",
"kind",
"title",
"description"
]
},
"description": "The recipe's steps, in order."
},
"limitations": {
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 600
},
"description": "What the recipe does not cover, in the reviewer's own words."
},
"fingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "A content hash identifying this exact recipe, independent of execution or connection identity."
}
},
"required": [
"version",
"title",
"summary",
"steps",
"limitations",
"fingerprint"
],
"description": "A reviewed, public description of how a source is collected: the steps a reviewer confirmed, never an executable request or a resolved private endpoint."
},
"availability": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"available",
"needs_connection",
"unavailable",
"unknown"
],
"description": "Whether this source is usable for the current owner: `available` ready to use, `needs_connection` a connection must be granted first, `unknown` availability has not been checked yet, or an earlier check's validity window has expired. `unavailable` marks a source this deployment cannot offer at all; `automationSources.list` never returns it today."
},
"configured": {
"type": "boolean",
"description": "Whether the owner has set up a connection for this source."
},
"verified": {
"type": "boolean",
"description": "Whether that connection has been confirmed to work."
},
"grantedScopes": {
"maxItems": 64,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"description": "The connection scopes the owner has actually granted."
},
"checkedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
],
"description": "When availability was last checked, when it has been."
},
"expiresAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
},
{
"type": "null"
}
],
"description": "When this availability check expires and must be re-checked, when it has an expiry."
},
"reason": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
],
"description": "Why this source is not available, when it is not."
}
},
"required": [
"status",
"configured",
"verified",
"grantedScopes",
"checkedAt",
"expiresAt",
"reason"
],
"description": "This owner's ability to use this source right now: whether it is connected and verified. Carries no credential, account or provider connection identifier."
}
},
"required": [
"id",
"version",
"label",
"description",
"semanticIdentity",
"schemaFingerprint",
"configSchema",
"fields",
"public",
"requiredConnectionScopes",
"supportedSubjects",
"guarantees",
"availability"
],
"description": "One event source an automation may watch: its configuration schema, its data fields, and this owner's current ability to use it."
},
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The kind of problem as a URN, `urn:fin:error:<kind>`; stable, compare against it"
},
"title": {
"type": "string",
"description": "The kind's human title, for logs; never parse it"
},
"status": {
"type": "integer",
"minimum": 400,
"maximum": 599,
"description": "The HTTP status, repeated in the body"
},
"reason": {
"description": "The machine-readable why. One of:\n\n- `run_active` (409) — a run already holds this conversation\n- `budget_exhausted` (409) — the user's spend headroom is gone, or an operator froze it\n- `approval_not_pending` (409) — the approval was already decided or has expired, or its id does not exist or belongs to a different conversation\n- `execution_capacity` (409) — no execution capacity is free right now; `retryable` says whether to try again\n- `execution_unavailable` (409) — the execution engine could not take the work\n- `stop_pending` (409) — a stop is already in progress and its cleanup is not yet confirmed\n- `automation_changed` (409) — the `revision` sent is stale; reload the automation\n- `automation_held` (409) — an operator holds the automation; it fires again when released\n- `automation_invalid` (409) — the automation's definition cannot run as written\n- `automation_completed` (409) — the automation has finished for good and cannot fire again\n- `automation_limit` (409) — the user already has as many automations as the deployment allows\n- `profile_unknown_tool` (409) — the run profile names a tool this deployment does not have\n- `deployment_paused` (409) — an operator paused a deployment control; nothing was admitted or fired\n- `run_not_active` (409) — the run named in the path is not the conversation's live run\n- `withdrawal_changed` (409) — the withdrawal cannot be prepared or confirmed as asked: the balance no longer covers it, its terms changed or expired, or it is already in progress\n- `credential_expired` (401) — the user token has expired; obtain a fresh one\n- `account_disabled` (403) — an operator disabled the account\n- `account_not_provisioned` (412) — the identity is verified but has no account yet; call `users.ensure` first\n- `provider_unavailable` (503) — an external provider the call depends on did not answer\n- `engine_unavailable` (503) — the execution engine did not answer\n- `invalid_input` (400) — the body or query failed validation; `issues` names each field\n- `internal` (500) — a fault on our side; quote `requestId` when reporting it\n- `partner_key_required` (401) — no `X-Api-Key` header was sent\n- `partner_key_invalid` (401) — the `X-Api-Key` is unknown or revoked\n- `subject_mismatch` (403) — the `{userId}` in the path is not the token's user\n- `origin_rejected` (403) — a browser `Origin` other than the configured web origin\n- `permission_required` (403) — the operator credential lacks the scope this call needs\n- `rate_limited` (429) — the per-key or per-user limit is spent; honour `Retry-After`\n- `stream_capacity` (429) — no stream socket is free on this replica or for this user; honour `Retry-After`\n- `invalid_cursor` (400) — the `cursor` is not one this list minted",
"type": "string",
"enum": [
"run_active",
"budget_exhausted",
"approval_not_pending",
"execution_capacity",
"execution_unavailable",
"stop_pending",
"automation_changed",
"automation_held",
"automation_invalid",
"automation_completed",
"automation_limit",
"profile_unknown_tool",
"deployment_paused",
"run_not_active",
"withdrawal_changed",
"credential_expired",
"account_disabled",
"account_not_provisioned",
"provider_unavailable",
"engine_unavailable",
"invalid_input",
"internal",
"partner_key_required",
"partner_key_invalid",
"subject_mismatch",
"origin_rejected",
"permission_required",
"rate_limited",
"stream_capacity",
"invalid_cursor"
]
},
"requestId": {
"type": "string",
"description": "The id Fin used for this request; quote it when reporting a problem"
},
"retryable": {
"type": "boolean",
"description": "Whether repeating the same request later can succeed without changing it"
},
"detail": {
"description": "Only on `invalid_input`: which part of the request failed validation",
"type": "string"
},
"issues": {
"description": "Only on `invalid_input`: one entry per failing field",
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The JSON pointer of the failing field; empty for the root object"
},
"message": {
"type": "string",
"description": "Why the field failed"
}
},
"required": [
"path",
"message"
]
}
}
},
"required": [
"type",
"title",
"status",
"requestId",
"retryable"
],
"description": "RFC 9457 problem details: what every error response carries. Never a provider's message, a query or a stack."
}
},
"responses": {
"InvalidInput": {
"description": "The request could not be read as this operation expects.\n\n- `invalid_input` — the body or query failed validation; `issues` names each field\n- `invalid_cursor` — the `cursor` is not one this list minted",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"Unauthorized": {
"description": "A credential is missing, invalid or expired.\n\n- `partner_key_required` — no `X-Api-Key` header was sent\n- `partner_key_invalid` — the `X-Api-Key` is unknown or revoked\n- `credential_expired` — the user token has expired; obtain a fresh one",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"Forbidden": {
"description": "The credentials are valid but may not do this.\n\n- `subject_mismatch` — the `{userId}` in the path is not the token's user\n- `account_disabled` — an operator disabled the account\n- `origin_rejected` — a browser `Origin` other than the configured web origin",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"NotFound": {
"description": "The resource is missing, belongs to someone else, or its id is malformed: all three answer alike.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"AccountNotProvisioned": {
"description": "The identity is verified but has no account yet.\n\n- `account_not_provisioned` — the identity is verified but has no account yet; call `users.ensure` first",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"TooManyRequests": {
"description": "A limiter refused the request; honour `Retry-After`.\n\n- `rate_limited` — the per-key or per-user limit is spent; honour `Retry-After`",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"Internal": {
"description": "A fault on our side; quote `requestId` when reporting it.\n\n- `internal` — a fault on our side; quote `requestId` when reporting it",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"Unavailable": {
"description": "The replica is draining or a dependency did not answer; `retryable` says whether to try again.\n\n- `internal` — a fault on our side; quote `requestId` when reporting it",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"securitySchemes": {
"apiKey": {
"type": "apiKey",
"in": "header",
"name": "X-Api-Key"
},
"userToken": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}
}
}
}