---
title: "Get customer by external ID"
method: GET
path: "/customers/external/{external_id}"
tags: ["Customers"]
---

# Get customer by external ID

`GET /customers/external/{external_id}`

Use when resolving a customer by your app's id (e.g. from your user table). Ideal for integrations that key by external id.

## Path parameters

- `external_id` string, required

## Response `200`

OK

- CustomerResponse — Customer response object containing all customer information
  - `address_city` string — AddressCity is the city of the customer's address
  - `address_country` string — AddressCountry is the country of the customer's address (ISO 3166-1 alpha-2)
  - `address_line1` string — AddressLine1 is the first line of the customer's address
  - `address_line2` string — AddressLine2 is the second line of the customer's address
  - `address_postal_code` string — AddressPostalCode is the postal code of the customer's address
  - `address_state` string — AddressState is the state of the customer's address
  - `created_at` string, date-time
  - `created_by` string
  - `email` string — Email is the email of the customer
  - `environment_id` string — EnvironmentID is the environment identifier for the customer
  - `external_id` string — ExternalID is the external identifier for the customer
  - `id` string — ID is the unique identifier for the customer
  - `integrations` EntityIntegrationMappingResponse[]
    - `created_at` string, date-time
    - `created_by` string
    - `entity_id` string
    - `entity_type` 'customer' | 'plan' | 'invoice' | 'subscription' | 'payment' | 'credit_note' | 'addon' | 'item' | 'item_price' | 'price'
    - `environment_id` string
    - `id` string
    - `metadata` object
    - `provider_entity_id` string
    - `provider_type` string
    - `status` 'published' | 'deleted' | 'archived'
    - `tenant_id` string
    - `updated_at` string, date-time
    - `updated_by` string
  - `metadata` object — Metadata
  - `name` string — Name is the name of the customer
  - `status` 'published' | 'deleted' | 'archived'
  - `tenant_id` string
  - `timezone` string — Timezone is the customer's IANA timezone name (e.g. "Asia/Kolkata"). Defaults to "UTC". Inherited by subscriptions at creation time.
  - `updated_at` string, date-time
  - `updated_by` string

## Other responses

- `400` — Invalid request
- `404` — Resource not found
- `500` — Server error

## Changes

- **2026-06-29** `cef2964c102c` — 2 info
  - added the optional property `integrations/items/metadata` to the response with the `200` status
  - added the optional property `timezone` to the response with the `200` status
- **2026-05-18** `f62d8a5fe7cf` — 6 warning
  - removed the optional property `details` from the response with the `400` status
  - removed the optional property `details` from the response with the `404` status
  - removed the optional property `details` from the response with the `500` status
  - added the new `too_many_requests` enum value to the `code` response property for the response status `400`
  - …2 more
- **2026-04-06** `4ded3711f401` — 8 warning, 12 info
  - removed the optional property `error` from the response with the `400` status
  - removed the optional property `error` from the response with the `404` status
  - removed the optional property `error` from the response with the `500` status
  - removed the optional property `parent_customer` from the response with the `200` status
  - …16 more
- **2026-04-04** `d1860fe0ee67` — 1 info
  - added the optional property `integrations` to the response with the `200` status

[Change history](https://skmtc.dev/flexprice/apis/flexprice-api-2/changes/customers/external/:external_id/get.md)

---

[API](https://skmtc.dev/flexprice/apis/flexprice-api-2.md) · [All operations](https://skmtc.dev/flexprice/apis/flexprice-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/flexprice/flexprice-api-2/revisions/da8f268dc77d/schema)
