> ## Documentation Index
> Fetch the complete documentation index at: https://docs.capcells.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Decide an application

> Submit an application and receive a Decision — refuse, approve with terms, refer, or not offered — recorded whole.

This call decides an application under the policy version you adopted for the Configuration the application names, and records the Decision before it answers.

You submit a registered Client, a Configuration version, a requested principal, a reference of your own, and a value for every attribute the adopted version reads. You receive the Decision: its outcome, its score, the terms an approval carries, and the full trace of every rule that ran.

<Warning>
  A Decision is never edited and never deleted. Its outcome, score and band stand as recorded, whatever you later adopt.
</Warning>

## Path parameters

<ParamField path="tenant_id" type="string" required>
  The Tenancy deciding. Another Tenancy's path answers `403`.
</ParamField>

## Body

<ParamField body="reference" type="string" required>
  Your own name for the application, unique within the Tenancy. 1–64 characters of `a–z A–Z 0–9 - _`. Submitting again under a recorded reference with the same application answers that Decision; a different application under it is refused `409`.
</ParamField>

<ParamField body="client_id" type="string" required>
  A Client your Tenancy has registered. One it never registered is refused, and nothing is recorded.
</ParamField>

<ParamField body="configuration_id" type="string" required>
  The Configuration the application is against.
</ParamField>

<ParamField body="configuration_version" type="integer" required>
  Its version, counting from 1. The requested principal is held against that version's bounds and currency, and the approving band's rate against its rate corridor.
</ParamField>

<ParamField body="principal" type="object">
  What is requested, as `minor_units` and `currency`. It must lie inside the Configuration version's principal bounds and be denominated in its currency. Required unless you ask for a `limit`, and refused beside one.
</ParamField>

<ParamField body="limit" type="boolean">
  Ask for the most the policy would lend this Client under the Configuration, instead of a principal. The application is evaluated as one stating the version's lowest principal, so a derived ratio reads a figure the product sells. An approval approves the approving band's ceiling, bounded by the version's highest principal.

  A [line](/lending/facilities#lines) is granted from a limit Decision. Not available on the menu route.
</ParamField>

<ParamField body="submitted_on" type="string" required>
  The day the application is submitted, as `YYYY-MM-DD`. Every declared value's own day is held against it: a value dated after it is refused, and one older than its attribute admits is refused naming the bound.

  It is stated rather than taken from a clock. The Platform supplies no today.
</ParamField>

<ParamField body="attributes" type="object" required>
  One entry per declared attribute the adopted version reads, keyed by the attribute's name. An attribute the vocabulary does not define is refused naming it; a derived attribute you state is refused naming it.

  You may state more than the version reads, and what you state is validated all the same — bounds, unit, admitted states, and how old the value is — whether the version reads it or not. Unread is not unrecorded: the Decision carries every attribute you stated, immutably, so a record cannot later be asked what you knew and answer with a number nobody checked.

  <Expandable title="value">
    <ParamField body="state" type="string" required>
      `present` — you state a number. `not_applicable` — the Client has no such fact. `unavailable` — nobody gathered it, or a source failed. The attribute's frame says which of the two absences it admits.
    </ParamField>

    <ParamField body="number" type="integer">
      Required when the state is `present`, and refused otherwise. In the attribute's own unit, inside its bounds.
    </ParamField>

    <ParamField body="as_of" type="string" required>
      The day you hold the value to be true, as `YYYY-MM-DD`.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="identity" type="object">
  What a [Source](/lending/credit-sources) needs in order to address a lookup at the person, keyed by the identity vocabulary's own field names — `given_name`, `first_surname`, `second_surname`, `rfc`, `curp`, `birth_date`, and the six-part domicile (`address`, `address_colonia`, `address_municipio`, `address_city`, `address_state`, `address_postal_code`). Which of them are required is the Source's own declaration, served on `GET …/sources`.

  Omit it for a policy version that reads no Source. It travels to the Source and is recorded in **no** Decision: what the Platform keeps of it lives beside the record, under the custody rules the source surface states.
</ParamField>

<ParamField body="consent" type="object">
  The borrower's authorisation as you hold it. Required for a policy version that reads a Source declaring it, and refused before anything is fetched when absent.

  Named per application rather than remembered per Client: an authorisation is given for a purpose and a moment, not granted in perpetuity.

  <Expandable title="consent">
    <ParamField body="artifact_id" type="string" required>
      Your reference for the authorisation document. The papers stay with you; the Platform holds the identifier.
    </ParamField>

    <ParamField body="given_at" type="string" required>
      RFC 3339: when the borrower gave it.
    </ParamField>

    <ParamField body="expires_at" type="string" required>
      RFC 3339: when it stops running. A lookup outside the window is refused.
    </ParamField>

    <ParamField body="attested" type="boolean" required>
      Your own statement that you hold what the Source's law requires. The Platform composes none of its own: `false` is refused, and no field here is filled on your behalf.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="context" type="object">
  Your key-value object: at most 16 keys, 64 bytes a key, 4096 bytes rendered, string values. Stored, echoed on every read, read by nothing — and part of what a reused `reference` restates.
</ParamField>

<ParamField body="outcomes" type="string">
  How many outcomes your integration reads: `three` (the default) or `four`. With `four` a Decision may be `not_offered`. An application under a policy version that can answer `not_offered`, from a caller that did not state `four`, is refused `422 outcomes_unstated` before anything is read or recorded.
</ParamField>

<ParamField body="facility" type="object">
  Grant a [Facility](/lending/facilities) from an approval in the same act. The window is held to the bound a separate creation is held to — a window beyond it is refused `422 outside_window_bound` before any Source is read. Anything but an approval grants nothing.

  <Expandable title="facility">
    <ParamField body="opens_on" type="string" required>
      The first day the grant may be drawn, as `YYYY-MM-DD`.
    </ParamField>

    <ParamField body="expires_on" type="string" required>
      The last day the grant may be drawn, as `YYYY-MM-DD`. It bounds drawing, not repayment.
    </ParamField>
  </Expandable>
</ParamField>

## The three states

One empty value cannot carry three meanings, so the Platform asks for the state and refuses a number beside an absence.

| State | What it says | Example |
| - | - | - |
| `present` | You hold the fact and state it | A monthly income of `1500000` (MXN 15,000.00) |
| `not_applicable` | The Client has no such fact | No employer beneath `employment_months` |
| `unavailable` | Nobody gathered it, or a source failed | An income you never asked for |

A scorecard entry bands each state its attribute admits, so `unavailable` scores what an absence of knowledge is worth rather than what a zero would.

## Response

<ResponseField name="id" type="string" required>
  The Platform's identifier for the Decision. Read it back with it.
</ResponseField>

<ResponseField name="reference" type="string" required>
  The reference you submitted under.
</ResponseField>

<ResponseField name="client_id" type="string" required>
  The Client the application named.
</ResponseField>

<ResponseField name="configuration_id" type="string" required>
  The Product configuration the application was priced against, with `configuration_version` beside it.
</ResponseField>

<ResponseField name="configuration_version" type="integer" required>
  Its version.
</ResponseField>

<ResponseField name="principal" type="object" required>
  What was applied for, as an amount.
</ResponseField>

<ResponseField name="submitted_on" type="string" required>
  The civil date the application was submitted, as it stated it.
</ResponseField>

<ResponseField name="policy" type="string" required>
  The policy this was decided under.
</ResponseField>

<ResponseField name="policy_version" type="integer" required>
  Its version. It never changes, whatever you later adopt.
</ResponseField>

<ResponseField name="policy_digest" type="string" required>
  The digest of that version's content at the moment of deciding. Recorded beside the number because the number alone names content that could later change.
</ResponseField>

<ResponseField name="score" type="integer" required>
  The integer sum of the points the scorecard awarded.
</ResponseField>

<ResponseField name="outcome" type="string" required>
  `refuse`, `approve`, `refer` or — where you stated `outcomes: four` — `not_offered`: the product is not sold to this applicant, not yet or not through this channel. A `not_offered` Decision carries no terms and no moratorium, bars nothing, and is not a refusal.
</ResponseField>

<ResponseField name="band" type="string">
  The cutoff band the score fell in. Absent when a knockout settled the application before the score was consulted.
</ResponseField>

<ResponseField name="limit" type="boolean">
  `true` where the application asked for a limit. `principal` is then the figure it was evaluated at: the version's lowest principal.
</ResponseField>

<ResponseField name="approved_principal" type="object">
  What was approved, as `minor_units` and `currency`. Only an approval carries it. It is the principal you requested — the Platform makes no counter-offer — or, on a limit, the band's ceiling bounded by the version's highest principal.
</ResponseField>

<ResponseField name="ceiling" type="object">
  The approving band's principal ceiling. Present on an approval, and on a refusal the ceiling produced.
</ResponseField>

<ResponseField name="over_ceiling" type="boolean" required>
  `true` where the refusal was the ceiling's: the score reached an approving band that will not carry the principal you asked for. Ask for at most `ceiling` under a new reference, or ask for a limit.
</ResponseField>

<ResponseField name="rate" type="object">
  The approving band's exact annual rate, as `numerator`, `denominator` and `quotation`, and as `percent` — the decimal percentage a Loan states, digit for digit what issuance compares against the grant, so restating the rate is copying the field. Only an approval carries it.
</ResponseField>

<ResponseField name="moratorium_days" type="integer">
  How many whole days this refusal stands against re-application. Only a refusal under a band or by a knockout that binds carries one.
</ResponseField>

<ResponseField name="attributes" type="object" required>
  The application as the Platform read it: every attribute, declared and derived, with the state it arrived in.
</ResponseField>

<ResponseField name="trace" type="object" required>
  Every rule of the version, evaluated.

  <Expandable title="trace">
    <ResponseField name="knockouts" type="array" required>
      Each with its identifier, its text, the bound it applied, the value it saw, whether it fired and what firing produces. Every knockout of the version appears, not only the ones that fired. A rule the evaluation could not reach carries `unevaluated: true` and `why` says what stopped it; both are absent on a rule that ran.
    </ResponseField>

    <ResponseField name="scorecard" type="array" required>
      Each with its identifier, its text, the value it saw, the band that matched and the points awarded — and `unevaluated` with `why` where the entry could not be scored.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="sources" type="array" required>
  Every external source of credit information that entered the Decision, with the authorisation that permitted reading it. Empty where the adopted policy version reads no Source — then every attribute is one you declared.

  <Expandable title="entry">
    <ResponseField name="name" type="string" required>
      The Source, by its catalogue name.
    </ResponseField>

    <ResponseField name="consent_id" type="string" required>
      Your reference for the authorisation, with `consented_at` and `consent_expires_at` beside it and `attested` your own statement. Four fields where one identifier would have "identified" it, because what an audit asks of a bureau enquiry is not whether a consent record existed but whether this lookup fell inside the window of an authorisation somebody attested to.
    </ResponseField>

    <ResponseField name="source_reference" type="string">
      The Source's own handle for the lookup — a folio at a Mexican bureau — where it assigned one. It is what a dispute is taken back to the Source under. Absent where the Source assigned none.
    </ResponseField>

    <ResponseField name="mapping_version" type="integer">
      The version of the Platform's mapping this Source's payload was read under, with `mapping_digest` beside it. Recorded for the reason the policy digest is: a read attribute is a function of the payload and the mapping, and a record keeping only the value could neither explain it later nor notice the mapping moving beneath it.
    </ResponseField>

    <ResponseField name="attempt_id" type="string">
      The dispatch this reading came from — the join to [the ledger](/api-reference/sources/ledger) you show a regulator.
    </ResponseField>

    <ResponseField name="unavailable" type="boolean" required>
      The Source was reached and did not answer. The Decision is readable as one taken without it, and `failure_posture` says what that meant.
    </ResponseField>

    <ResponseField name="failure_posture" type="string">
      What this Source's failure meant for this Decision — `proceed_and_record`, `refuse` or `refer` — as the catalogue declared it at the moment of deciding. Present only where `unavailable` is true.

      Recorded rather than looked up, so a catalogue that later changes a Source's posture cannot change what a past Decision replays to.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="binding" type="boolean" required>
  Whether this is the evaluation that binds. Always `true`.
</ResponseField>

<ResponseField name="time_zone" type="string">
  The Tenancy's zone as this Decision froze it, and the zone a moratorium is counted in. Absent on a Decision recorded before the field existed, which counts its days in UTC.
</ResponseField>

<ResponseField name="context" type="object">
  Your object, as the application carried it. Absent where none was attached.
</ResponseField>

<ResponseField name="self_confirmed_version" type="boolean" required>
  `true` when the policy version was confirmed by the person who published it, which only a sandbox Tenancy permits. `false` under a pack and under a version a second person confirmed. Frozen with the Decision.
</ResponseField>

<ResponseField name="bound_from" type="string">
  The day a moratorium counts from and a Facility's window is bounded from, as `YYYY-MM-DD`. It is `submitted_on` where that day is earlier than the day the Decision was recorded on, and the recording day otherwise. Absent on a Decision recorded before the field existed, which counts from the day `decided_at` falls on.
</ResponseField>

<ResponseField name="decided_at" type="string" required>
  RFC 3339 in UTC: the moment the Decision was recorded.
</ResponseField>

<ResponseField name="facility" type="object">
  Present only where the application stated `facility`. `granted` is `true` with the Facility's `id`, `amount`, `rate`, `opens_on` and `expires_on` where the Decision is an approval, and `false` otherwise. A later read of the Decision does not carry it; read the Facility at `/facilities/{facility_id}`. Creating it separately afterwards answers the one already created.
</ResponseField>

<ResponseField name="awaits_resolution" type="boolean" required>
  `true` for a `refer` nobody has resolved, and `false` for every other Decision. See [Resolving a refer](/lending/decisions#resolving-a-refer).
</ResponseField>

<ResponseField name="resolution" type="object">
  What a person settled a `refer` as, read beside the Decision's own outcome and never in place of it. Absent where nobody resolved one.

  <Expandable title="resolution">
    <ResponseField name="id" type="string" required>
      The Platform's identifier for the resolution.
    </ResponseField>

    <ResponseField name="outcome" type="string" required>
      `approve` or `refuse`.
    </ResponseField>

    <ResponseField name="approved_principal" type="object">
      What the person approved, as `minor_units` and `currency`. Only an approval carries it.
    </ResponseField>

    <ResponseField name="rate" type="object">
      The approved annual rate, as `numerator`, `denominator`, `quotation` and `percent`. Only an approval carries it.
    </ResponseField>

    <ResponseField name="moratorium_days" type="integer">
      How many whole days the refusal binds, counted from the day it was resolved. Only a refusal that states one carries it.
    </ResponseField>

    <ResponseField name="resolved_by" type="string" required>
      The person, as your identity provider names them.
    </ResponseField>

    <ResponseField name="basis" type="string" required>
      Why, in their words.
    </ResponseField>

    <ResponseField name="time_zone" type="string" required>
      Your zone as the resolution froze it, and the zone its moratorium is counted in.
    </ResponseField>

    <ResponseField name="resolved_at" type="string" required>
      RFC 3339 in UTC: the moment the resolution was recorded.
    </ResponseField>
  </Expandable>
</ResponseField>

## What is recorded and what is not

A refusal about the applicant is a Decision. A refusal about the request is not, and nothing is written for it.

| The Platform answers | Recorded | Why |
| - | - | - |
| A knockout fired | Yes | A statement about the applicant |
| The score fell below the cutoff | Yes | A statement about the applicant |
| The request exceeded the band's ceiling | Yes | The score is the band's; the application is answered as submitted |
| The policy declines to settle | Yes, as `refer` | Recorded with its score and trace, and never as a refusal |
| A rule says the product is not sold to this applicant | Yes, as `not_offered` | A statement about the offer, never about the applicant: no terms, no moratorium, no bar |
| The application was incomplete or out of bounds | No | A typo is not an adverse fact about a person |
| The Client is not registered | No | Nothing about them was assessed |
| An approving band's rate falls outside the Configuration's corridor | No | Two of your own documents disagree; it is not a fact about the applicant |

An application refused unrecorded leaves its reference free. Correct it and submit again under the same reference.

The corridor refusal is answered before any Source is read. Every approving band the adopted version carries is held against the Configuration's corridor when the application arrives, so a version the product cannot price is refused on the first application, costs no consulta, registers no enquiry on the applicant's file, and spends none of your daily bound. The refusal names every band outside the corridor and both corridor ends. A resubmission under a reference that already names a decision is answered from the record whatever the corridor now says.

<Info>
  The Platform never counter-offers. A request above the approving band's ceiling is refused naming the ceiling, so you know exactly what a new application should ask for — under a new reference.
</Info>

## Refusals

This route reads no query parameter.

| Status | When |
| - | - |
| `400` | The body names a field this call does not read, or states one twice |
| `403` | The key authenticates for another Tenancy, or its scope is read-only |
| `404` | The Tenancy has adopted no policy version for the Configuration the application names |
| `409` | The reference already names a Decision taken on a different application |
| `409` | `client_barred`: the adoption enforces the bar and a recorded refusal bars the Client on `submitted_on`. The message names the day the bar lifts and the refusal. Nothing is recorded, no Source is read, and the reference stays free |
| `422` | The application is incomplete, out of bounds, stale, or priced outside the Configuration's corridor |
| `422` | The adopted version can answer `not_offered` and you did not state `outcomes: four` — `outcomes_unstated` |
| `422` | The `facility` window admits no day or reaches past the Platform's bound — `outside_window_bound`, naming the bound |
| `422` | A Source this Decision needs cannot be read — `source_access`, carrying the [Source surface's](/lending/credit-sources) own sentence |
| `424` | A Source under the `retry` posture was reached and did not answer — `source_unavailable`, naming the attempt. No Decision is recorded and the reference stays free |
| `429` | Your daily bound for a Source this Decision needs is spent — `source_quota_spent`, with `Retry-After` saying when the next dispatch is admitted |

<RequestExample>
  ```bash Decide theme={null}
  BODY='{
    "reference": "app-0001",
    "client_id": "client-alonso",
    "configuration_id": "49edf7ee-80d9-4500-b480-89977cfb48d3",
    "configuration_version": 1,
    "principal": {"minor_units": 1000000, "currency": "MXN"},
    "submitted_on": "2026-08-24",
    "attributes": {
      "age_years":                 {"state": "present", "number": 35,      "as_of": "2026-08-24"},
      "monthly_income_minor":      {"state": "present", "number": 1500000, "as_of": "2026-08-24"},
      "monthly_obligations_minor": {"state": "present", "number": 200000,  "as_of": "2026-08-24"},
      "employment_months":         {"state": "present", "number": 48,      "as_of": "2026-08-24"},
      "tenure_months":             {"state": "present", "number": 24,      "as_of": "2026-08-24"},
      "prior_loans_repaid":        {"state": "present", "number": 2,       "as_of": "2026-08-24"},
      "prior_loans_defaulted":     {"state": "present", "number": 0,       "as_of": "2026-08-24"}
    }
  }'

  curl -X POST https://api.capcells.com/v1/tenants/capyplazo/credit-decisions \
    -H "Authorization: $(capcells_sign "$CAPCELLS_API_KEY" POST /v1/tenants/capyplazo/credit-decisions "$BODY")" \
    -H "Content-Type: application/json" \
    -d "$BODY"
  ```
</RequestExample>

<ResponseExample>
  ```json 201 Approved, abridged theme={null}
  {
    "id": "a0deb1fc-b160-4088-92eb-c1e8b7b58001",
    "reference": "app-0001",
    "client_id": "client-alonso",
    "policy": "mx-base",
    "policy_version": 1,
    "policy_digest": "498e17408e74013e84c500e261fa7bc3f22a51a721c7c1540e1b5b755ad85cab",
    "configuration_id": "49edf7ee-80d9-4500-b480-89977cfb48d3",
    "configuration_version": 1,
    "principal": { "minor_units": 1000000, "currency": "MXN" },
    "submitted_on": "2026-08-24",
    "score": 99,
    "band": "capcells:mx.cutoff.preferred",
    "outcome": "approve",
    "approved_principal": { "minor_units": 1000000, "currency": "MXN" },
    "rate": { "numerator": 9, "denominator": 20, "quotation": "annual nominal", "percent": "45" },
    "attributes": {
      "age_years": { "state": "present", "number": 35, "as_of": "2026-08-24" },
      "monthly_income_minor": { "state": "present", "number": 1500000, "as_of": "2026-08-24" },
      "obligations_to_income_bps": { "state": "present", "number": 1333 },
      "combined_to_income_bps": { "state": "present", "number": 7999 },
      "declared_present_count": { "state": "present", "number": 7 }
    },
    "trace": {
      "knockouts": [
        {
          "id": "capcells:mx.age.under-minimum",
          "text": "The client is younger than the minimum age this policy lends to.",
          "attribute": "age_years",
          "comparison": "less_than",
          "bound": 21,
          "observed": { "state": "present", "number": 35, "as_of": "2026-08-24" },
          "fired": false,
          "outcome": "refuse"
        },
        {
          "id": "capcells:mx.affordability.over-committed",
          "text": "The requested principal and the client's existing monthly obligations together come to more than six months of the declared income.",
          "attribute": "combined_to_income_bps",
          "comparison": "greater_than",
          "bound": 60000,
          "observed": { "state": "present", "number": 7999 },
          "fired": false,
          "outcome": "refuse"
        }
      ],
      "scorecard": [
        {
          "id": "capcells:mx.score.age",
          "text": "Points for the client's age, most at the middle of a working life.",
          "attribute": "age_years",
          "observed": { "state": "present", "number": 35, "as_of": "2026-08-24" },
          "band": "35-49",
          "points": 20
        },
        {
          "id": "capcells:mx.score.obligations",
          "text": "Points for how much of the client's monthly income is already committed to other obligations.",
          "attribute": "obligations_to_income_bps",
          "observed": { "state": "present", "number": 1333 },
          "band": "0-1999",
          "points": 20
        }
      ]
    },
    "sources": [],
    "binding": true,
    "self_confirmed_version": false,
    "bound_from": "2026-08-24",
    "decided_at": "2026-08-24T21:29:03.271513Z"
  }
  ```

  ```json 201 Refused with a moratorium, abridged theme={null}
  {
    "id": "6a279744-0a45-45f2-a0ae-cc3e94a2af14",
    "reference": "app-thin",
    "client_id": "client-alonso",
    "policy": "mx-base",
    "policy_version": 1,
    "policy_digest": "498e17408e74013e84c500e261fa7bc3f22a51a721c7c1540e1b5b755ad85cab",
    "principal": { "minor_units": 100000, "currency": "MXN" },
    "submitted_on": "2026-08-24",
    "score": 16,
    "band": "capcells:mx.cutoff.below",
    "outcome": "refuse",
    "moratorium_days": 30,
    "sources": [],
    "binding": true
  }
  ```

  ```json 201 Referred, abridged theme={null}
  {
    "id": "ed998122-5889-449c-81fb-73773a1c8041",
    "reference": "app-refer",
    "client_id": "client-alonso",
    "policy": "mx-base",
    "policy_version": 1,
    "score": 57,
    "outcome": "refer",
    "sources": [],
    "binding": true
  }
  ```

  ```json 201 Under a policy that read a Source, abridged — captured from a real run theme={null}
  {
    "id": "9f5f1a24-1f2c-4d6a-9c2f-1b6c9c2f4d6a",
    "reference": "app-rcc-0001",
    "client_id": "client-alonso",
    "policy": "mx-base",
    "policy_version": 1,
    "score": 71,
    "outcome": "approve",
    "sources": [
      {
        "name": "circulo_rcc",
        "consent_id": "consent-0001",
        "consented_at": "2026-09-04T10:23:35+02:00",
        "consent_expires_at": "2026-12-03T10:23:35+01:00",
        "attested": true,
        "source_reference": "folio-e2e-0001",
        "mapping_version": 1,
        "mapping_digest": "97d9e839fac025596925499bcbff7ea676738f170e7a12d5dacd2844a0fcad24",
        "attempt_id": "4bca2d5c-c242-49ce-a849-12f78ebec2c0",
        "unavailable": false
      }
    ],
    "binding": true
  }
  ```

  ```json 422 Out of bounds theme={null}
  {
    "error": "risk: the application cannot be decided: \"age_years\" is 240 and the platform reads it from 18 to 100 in years",
    "code": "invalid_application"
  }
  ```

  ```json 422 Outside the corridor theme={null}
  {
    "error": "risk: the band's rate is outside the product's corridor: mx-base v1 prices this application at 9/20 annual nominal and the configuration version's corridor runs from 91/200 annual nominal to 91/200 annual nominal",
    "code": "rate_outside_corridor"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.