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

# Purchase

> StateSet Voice API operation.

StateSet Voice API operation.

### Request body

`PurchaseBody`

<ParamField body="phone_number" type="string" required>
  E.164 phone number to purchase, as returned by `GET /api/v1/customer/numbers/search`
</ParamField>

### Response

`object`

<ResponseField name="ok" type="boolean" required />

<ResponseField name="number" type="PhoneNumberRoute" required>
  <Expandable title="PhoneNumberRoute">
    <ResponseField name="agent_id" type="string (uuid)" required />

    <ResponseField name="agent_key" type="string" required />

    <ResponseField name="agent_name" type="string" required />

    <ResponseField name="agent_version_id" type="string,null (uuid)" />

    <ResponseField name="created_at" type="string (date-time)" required />

    <ResponseField name="direction" type="PhoneNumberRouteDirection" required />

    <ResponseField name="greeting" type="string,null" />

    <ResponseField name="id" type="string (uuid)" required />

    <ResponseField name="phone_number" type="string" required />

    <ResponseField name="resolved_agent_version_id" type="string,null (uuid)" />

    <ResponseField name="resolved_version_number" type="integer,null (int32)" />

    <ResponseField name="tenant_id" type="string" required />

    <ResponseField name="updated_at" type="string (date-time)" required />
  </Expandable>
</ResponseField>

### Status codes

| Code  | Meaning                                                            |
| ----- | ------------------------------------------------------------------ |
| `201` | Phone number purchased and routed to the tenant                    |
| `402` | Payment method required                                            |
| `404` | Number provisioning disabled or customer self-serve plane disabled |
| `409` | Number limit reached or number already claimed                     |
| `502` | Number provider (Twilio) error                                     |

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://api.voice.stateset.com/api/v1/customer/numbers' \
    --header "Authorization: Bearer $STATESET_VOICE_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{
    "phone_number": "+15555555678"
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "ok": true,
    "number": {
      "agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "agent_key": "string",
      "agent_name": "string",
      "agent_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "created_at": "2026-08-31T14:22:05Z",
      "direction": "inbound",
      "greeting": "string",
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "phone_number": "+1 415 555 0142",
      "resolved_agent_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "resolved_version_number": 1001,
      "tenant_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "updated_at": "2026-08-31T14:22:05Z"
    }
  }
  ```
</ResponseExample>
