Skip to content

List the entity's demand by jurisdiction

The waitlist.demand.list operation: GET /api/v1/waitlist/demand in the REST API and the waitlist_demand_list tool in the MCP server.

GET/api/v1/waitlist/demand

Where the legal entity's brands can't sell to consumers yet, and what it would take: one row per customer-location jurisdiction with waitlist entries or blocked checkouts, all brands combined, in the mode of the request (spec §23).

Each row has the waitlist by stage (waiting, pending, notified, left) and the waiting entries' estimatedMonthlyValue per currency (recurring prices per month; one-time prices and credit packs counted once, as a first month's purchase); the checkouts paused there in the window (blockedCheckouts, by reason); and the regimes that apply there: the entity's registration state, the prerequisites with their lead times and status, leadTimeDays (the longest lead time of what isn't done) and the compliance effort (a fiscal representative, a local agent, the filing frequency). brands splits the counts per brand; they add up to the row. Counts and sums only: no customer is named.

Sort by waitlist, monthly_value (EUR equivalent), blocked_checkouts, lead_time or jurisdiction; brand limits every count to one brand of the entity. Callers who can't read registrations get the knowledge base's side only (registrationsVisible: false).

At a glance

  • REST: GET /api/v1/waitlist/demand
  • MCP tool: waitlist_demand_list
  • Operation ID: waitlist.demand.list
  • Scope: Legal entity
  • Permission: waitlist:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the waitlist:read scope
  • Since: M7

Request

Query parameters

FieldTypeRequiredDescription
monthsinteger (1 to 36)NoThe window for blocked checkouts: this calendar month and the ones before it (1–36, default 12).
sortone of jurisdiction, waitlist, monthly_value, blocked_checkouts, lead_timeNowaitlist (waiting entries), monthly_value (EUR equivalent), blocked_checkouts, lead_time or jurisdiction.
orderone of asc, descNo
brandbrd_… IDNoOnly this brand of the entity (brd_…); all brands when absent.

Response

200 OK with a JSON object:

FieldTypeDescription
object"entity_demand"
entityIdent_… ID
livemodeboolean
windowobject
window.monthsinteger (at least 1)
window.fromstring
window.tostring
sortone of jurisdiction, waitlist, monthly_value, blocked_checkouts, lead_time
orderone of asc, desc
brandbrd_… ID or nullThe brand filter, or null for every brand.
brandsarray of objectThe entity's brands (the split's names and the filter's choices).
brands[].idbrd_… ID
brands[].namestring
brands[].slugstring
registrationsVisiblebooleanFalse when you can't read registrations: registration and prerequisite statuses are null.
fxRateDatestring or null
dataarray of object
data[].jurisdictionstringThe customer-location jurisdiction: GB, US-TX, a territory's code.
data[].namestring or null
data[].territoryOfstring or null
data[].waitlistobject
data[].waitlist.waitinginteger (at least 0)Confirmed entries waiting for the brand to be able to sell there.
data[].waitlist.pendinginteger (at least 0)Entries whose email isn't confirmed yet.
data[].waitlist.notifiedinteger (at least 0)Entries told once that the brand can sell there.
data[].waitlist.leftinteger (at least 0)Entries whose customer left the waitlist.
data[].waitlist.estimatedMonthlyValueobjectWhat the waiting entries wanted to buy, per month and currency.
data[].waitlist.estimatedMonthlyValue.totalarray of money
data[].waitlist.estimatedMonthlyValue.recurringarray of moneyRecurring prices, per month.
data[].waitlist.estimatedMonthlyValue.oneTimearray of moneyOne-time prices and credit packs, counted once (as a first month's purchase).
data[].blockedCheckoutsobject
data[].blockedCheckouts.totalinteger (at least 0)Checkouts paused there in the window (once per session and reason).
data[].blockedCheckouts.registrationRequiredinteger (at least 0)
data[].blockedCheckouts.jurisdictionBlockedinteger (at least 0)
data[].blockedCheckouts.otherinteger (at least 0)Other reasons, e.g. unclear location evidence.
data[].monthlyValueEurmoney or nullThe estimated monthly value in EUR at the ECB rates of fxRateDate (for sorting).
data[].leadTimeDaysinteger or nullThe longest lead time of the row's regimes.
data[].regimesarray of objectThe regimes that apply there and the registration.
data[].regimes[].regimeIdstring
data[].regimes[].namestring or null
data[].regimes[].registrationobject or nullThe entity's registration; null when it has none, or you can't read registrations.
data[].regimes[].prerequisitesarray of object
data[].regimes[].prerequisites[].codestring
data[].regimes[].prerequisites[].descriptionstring or null
data[].regimes[].prerequisites[].leadTimeDaysinteger or null
data[].regimes[].prerequisites[].statusone of todo, in_progress, done or null
data[].regimes[].leadTimeDaysinteger or nullThe longest lead time of the prerequisites not done yet (0 when all are done).
data[].regimes[].typicalProcessingDaysinteger or null
data[].regimes[].effortobject
data[].regimes[].effort.fiscalRepresentativeboolean or null
data[].regimes[].effort.localAgentboolean or null
data[].regimes[].effort.filingFrequencyone of monthly, quarterly, annual, varies or null
data[].brandsarray of objectThe same counts per brand with a signal there; they add up to the row.
data[].brands[].brandIdbrd_… ID
data[].brands[].waitlistobject
data[].brands[].waitlist.waitinginteger (at least 0)Confirmed entries waiting for the brand to be able to sell there.
data[].brands[].waitlist.pendinginteger (at least 0)Entries whose email isn't confirmed yet.
data[].brands[].waitlist.notifiedinteger (at least 0)Entries told once that the brand can sell there.
data[].brands[].waitlist.leftinteger (at least 0)Entries whose customer left the waitlist.
data[].brands[].waitlist.estimatedMonthlyValueobjectWhat the waiting entries wanted to buy, per month and currency.
data[].brands[].blockedCheckoutsobject
data[].brands[].blockedCheckouts.totalinteger (at least 0)Checkouts paused there in the window (once per session and reason).
data[].brands[].blockedCheckouts.registrationRequiredinteger (at least 0)
data[].brands[].blockedCheckouts.jurisdictionBlockedinteger (at least 0)
data[].brands[].blockedCheckouts.otherinteger (at least 0)Other reasons, e.g. unclear location evidence.

Examples

Live demand over 12 months

HTTP
GET /api/v1/waitlist/demand
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "entity_demand",
  "entityId": "ent_01m4tx5nj8emwbyf7y9vcf47x2",
  "livemode": true,
  "window": {
    "months": 12,
    "from": "2025-11-01",
    "to": "2026-10-20"
  },
  "sort": "waitlist",
  "order": "desc",
  "brand": null,
  "brands": [
    {
      "id": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
      "name": "Genno",
      "slug": "genno"
    },
    {
      "id": "brd_01m4tx5nj8emwbyf7y9vcf47x5",
      "name": "Genno Pro",
      "slug": "genno-pro"
    }
  ],
  "registrationsVisible": true,
  "fxRateDate": "2026-10-16",
  "data": [
    {
      "jurisdiction": "GB",
      "name": "United Kingdom",
      "territoryOf": null,
      "waitlist": {
        "waiting": 12,
        "pending": 2,
        "notified": 0,
        "left": 0,
        "estimatedMonthlyValue": {
          "total": [
            {
              "amount": "485000000",
              "currency": "EUR"
            }
          ],
          "recurring": [
            {
              "amount": "365000000",
              "currency": "EUR"
            }
          ],
          "oneTime": [
            {
              "amount": "120000000",
              "currency": "EUR"
            }
          ]
        }
      },
      "blockedCheckouts": {
        "total": 37,
        "registrationRequired": 37,
        "jurisdictionBlocked": 0,
        "other": 0
      },
      "monthlyValueEur": {
        "amount": "485000000",
        "currency": "EUR"
      },
      "leadTimeDays": 21,
      "regimes": [
        {
          "regimeId": "GB_VAT_NETP",
          "name": "UK VAT for non-established sellers",
          "registration": {
            "state": "blocked_b2c",
            "armed": false,
            "stateReason": "zero_threshold"
          },
          "prerequisites": [
            {
              "code": "gateway_account",
              "description": "Open a Government Gateway account",
              "leadTimeDays": 10,
              "status": "done"
            },
            {
              "code": "uk_agent",
              "description": "Appoint a UK tax agent",
              "leadTimeDays": 21,
              "status": "todo"
            }
          ],
          "leadTimeDays": 21,
          "typicalProcessingDays": 30,
          "effort": {
            "fiscalRepresentative": false,
            "localAgent": false,
            "filingFrequency": "quarterly"
          }
        }
      ],
      "brands": [
        {
          "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x4",
          "waitlist": {
            "waiting": 9,
            "pending": 1,
            "notified": 0,
            "left": 0,
            "estimatedMonthlyValue": {
              "total": [
                {
                  "amount": "410000000",
                  "currency": "EUR"
                }
              ],
              "recurring": [
                {
                  "amount": "290000000",
                  "currency": "EUR"
                }
              ],
              "oneTime": [
                {
                  "amount": "120000000",
                  "currency": "EUR"
                }
              ]
            }
          },
          "blockedCheckouts": {
            "total": 31,
            "registrationRequired": 31,
            "jurisdictionBlocked": 0,
            "other": 0
          }
        },
        {
          "brandId": "brd_01m4tx5nj8emwbyf7y9vcf47x5",
          "waitlist": {
            "waiting": 3,
            "pending": 1,
            "notified": 0,
            "left": 0,
            "estimatedMonthlyValue": {
              "total": [
                {
                  "amount": "75000000",
                  "currency": "EUR"
                }
              ],
              "recurring": [
                {
                  "amount": "75000000",
                  "currency": "EUR"
                }
              ],
              "oneTime": []
            }
          },
          "blockedCheckouts": {
            "total": 6,
            "registrationRequired": 6,
            "jurisdictionBlocked": 0,
            "other": 0
          }
        }
      ]
    }
  ]
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400The window, the sort or the brand is malformed.Fix the fields listed in details.issues and send the request again.
scope_required400The request names no legal entity (an org key without Ownrecord-Entity).Call the operation with credentials or a target at its level: an organization, a legal entity, a brand or the platform (details.required_scope).
resource_not_found404The brand filter isn't a brand of this entity.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
permission_denied403You can't read this entity's waitlist (brand-scoped members never can: the page combines brands).Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, dry_run_not_supported, rate_limited, internal_error.