> ## 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.

# Locations

> Understand test locations in the Aniva API

A location is a physical test center where blood draws are performed by healthcare professionals. You use a location's `id` to schedule `practitioner` appointments.

<Note>
  Your API key only returns locations within your partner access context. Use `GET
      /api/v1/locations` to list all locations available to you.
</Note>

## Fields

<ResponseField name="id" type="string" required>
  UUID for the location. Pass this as `location_id` when creating an appointment.
</ResponseField>

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

<ResponseField name="company_name" type="string">
  Clinic or company operating the location. May be null.
</ResponseField>

<ResponseField name="address_line_1" type="string">
  Primary street address. May be null.
</ResponseField>

<ResponseField name="address_line_2" type="string">
  Secondary address line (suite, floor, etc.). May be null.
</ResponseField>

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

<ResponseField name="state" type="string">
  State or province (resolved via the city's linked state). May be null when the city has no linked
  state.
</ResponseField>

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

<ResponseField name="country_name" type="string">
  Full country name (e.g., `Germany`). May be null.
</ResponseField>

<ResponseField name="country_code" type="string">
  Two-letter country code per [ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html)
  (e.g., `DE`, `US`). May be null.
</ResponseField>

<ResponseField name="timezone" type="string">
  IANA timezone identifier for the location (e.g., `Europe/Berlin`, `America/New_York`). Use this to
  display scheduled times in the correct local time. May be null.
</ResponseField>

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

<ResponseField name="email" type="string">
  Email address for the location. May be null.
</ResponseField>

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

<ResponseField name="google_maps_url" type="string">
  Direct link to the location on Google Maps. May be null.
</ResponseField>

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

<ResponseField name="open_hours" type="object">
  Weekly opening hours for the location. Each weekday key (`monday`–`sunday`) maps to an array of
  `{ open, close }` time ranges in `HH:MM` (24h) format. An empty array means the location is closed
  that day. May be null if hours are not available for the location.
</ResponseField>

<Tip>
  Always use the `timezone` field to convert `scheduled_at` datetimes into local time before
  displaying them to patients or staff.
</Tip>

## Availability

The `open_hours` field above describes the static weekly opening schedule. To render real bookable slots — and avoid double-booking against existing Aniva sessions — call [Get Availability](/api/locations/get-availability) for the location and pass it the date window you want to display. That endpoint surfaces live slot starts (combining the location's upstream scheduling provider with subtraction of already-booked sessions) and is the right source of truth for any booking UI.

## Example location

```json theme={null}
{
  "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "name": "Mitte Health Center",
  "company_name": "Aniva Berlin GmbH",
  "address_line_1": "Friedrichstraße 100",
  "address_line_2": null,
  "city": "Berlin",
  "state": "Berlin",
  "postal_code": "10117",
  "country_name": "Germany",
  "country_code": "DE",
  "timezone": "Europe/Berlin",
  "contact_phone": "+493012345678",
  "email": "berlin@anivahealth.com",
  "website": "https://anivahealth.com",
  "google_maps_url": "https://maps.google.com/?q=Friedrichstra%C3%9Fe+100+Berlin",
  "image_url": "https://anivahealth.com/images/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": []
  }
}
```
