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

# List Locations

> Retrieve all test locations available to your API key

Retrieve all test locations accessible to your API key. Use the `id` from a returned location when creating an appointment with [Create Appointment](/api/appointments/create-appointment).

## Request

This endpoint takes no request parameters.

## Response

On success, the API returns `200 OK` with an array of location objects.

<ResponseField name="id" type="string" required>
  Unique location identifier (UUID).
</ResponseField>

<ResponseField name="name" type="string" required>
  Display name of the location.
</ResponseField>

<ResponseField name="company_name" type="string">
  Company or clinic name. May be `null`.
</ResponseField>

<ResponseField name="address_line_1" type="string">
  Street address line 1. May be `null`.
</ResponseField>

<ResponseField name="address_line_2" type="string">
  Street address line 2. May be `null`.
</ResponseField>

<ResponseField name="city" type="string">
  City. May be `null`.
</ResponseField>

<ResponseField name="state" type="string">
  State or province. May be `null` when the city has no linked state (e.g. city-states or unmapped
  imports).
</ResponseField>

<ResponseField name="postal_code" type="string">
  Postal or ZIP code. May be `null`.
</ResponseField>

<ResponseField name="country_name" type="string">
  Full country name. May be `null`.
</ResponseField>

<ResponseField name="country_code" type="string">
  ISO 3166-1 alpha-2 country code (e.g., `DE`, `US`, `FI`). May be `null`.
</ResponseField>

<ResponseField name="timezone" type="string">
  IANA timezone identifier (e.g., `Europe/Berlin`). May be `null`.
</ResponseField>

<ResponseField name="contact_phone" type="string">
  Contact phone number for the location. May be `null`.
</ResponseField>

<ResponseField name="email" type="string">
  Contact email address. May be `null`.
</ResponseField>

<ResponseField name="website" type="string">
  Website URL. May be `null`.
</ResponseField>

<ResponseField name="google_maps_url" type="string">
  Google Maps link for the location. May be `null`.
</ResponseField>

<ResponseField name="image_url" type="string">
  URL of a location photo. May be `null`.
</ResponseField>

<ResponseField name="open_hours" type="object">
  Weekly opening hours. Each weekday key (`monday`–`sunday`) maps to an array of open/close time
  ranges. An empty array means the location is closed that day. The whole object is `null` when
  hours are not available for the location.

  <Expandable title="per-day time range">
    <ResponseField name="open" type="string" required>
      Opening time in `HH:MM` (24h) format.
    </ResponseField>

    <ResponseField name="close" type="string" required>
      Closing time in `HH:MM` (24h) format.
    </ResponseField>
  </Expandable>
</ResponseField>

## Error responses

| Status | Description                                                      |
| ------ | ---------------------------------------------------------------- |
| `403`  | Forbidden — your API key does not have access to this operation. |
| `500`  | Internal server error.                                           |

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url https://anivahealth.com/api/v1/locations \
    --header 'x-api-key: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "id": "b7e2d1f5-3c4a-4e8b-a2f1-9d0c1e2f3a4b",
      "name": "Aniva Berlin Mitte",
      "company_name": "Aniva GmbH",
      "address_line_1": "Unter den Linden 42",
      "address_line_2": null,
      "city": "Berlin",
      "state": "Berlin",
      "postal_code": "10117",
      "country_name": "Germany",
      "country_code": "DE",
      "timezone": "Europe/Berlin",
      "contact_phone": "+4930987654321",
      "email": "berlin-mitte@anivahealth.com",
      "website": "https://anivahealth.com",
      "google_maps_url": "https://maps.google.com/?q=Unter+den+Linden+42+Berlin",
      "image_url": "https://cdn.anivahealth.com/locations/berlin-mitte.jpg",
      "open_hours": {
        "monday": [{ "open": "08:00", "close": "18:00" }],
        "tuesday": [{ "open": "08:00", "close": "18:00" }],
        "wednesday": [{ "open": "08:00", "close": "18:00" }],
        "thursday": [{ "open": "08:00", "close": "18:00" }],
        "friday": [{ "open": "08:00", "close": "16:00" }],
        "saturday": [],
        "sunday": []
      }
    },
    {
      "id": "f1a2b3c4-d5e6-4f7a-8b9c-0d1e2f3a4b5c",
      "name": "Aniva Helsinki Central",
      "company_name": "Aniva Oy",
      "address_line_1": "Mannerheimintie 12",
      "address_line_2": null,
      "city": "Helsinki",
      "state": "Uusimaa",
      "postal_code": "00100",
      "country_name": "Finland",
      "country_code": "FI",
      "timezone": "Europe/Helsinki",
      "contact_phone": "+358912345678",
      "email": "helsinki@anivahealth.com",
      "website": "https://anivahealth.com",
      "google_maps_url": "https://maps.google.com/?q=Mannerheimintie+12+Helsinki",
      "image_url": "https://cdn.anivahealth.com/locations/helsinki-central.jpg",
      "open_hours": {
        "monday": [{ "open": "07:30", "close": "17:00" }],
        "tuesday": [{ "open": "07:30", "close": "17:00" }],
        "wednesday": [{ "open": "07:30", "close": "17:00" }],
        "thursday": [{ "open": "07:30", "close": "17:00" }],
        "friday": [{ "open": "07:30", "close": "15:00" }],
        "saturday": [],
        "sunday": []
      }
    }
  ]
  ```
</ResponseExample>
