> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.etera.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.etera.dev/_mcp/server.

# Environments

## Available Environments

ETERA provides three isolated environments, each with independent data and authentication:

#### Production

`https://api.etera.dev` — Live traffic with real data

#### Staging

`https://api-stage.etera.dev` — Pre-production validation

#### Development

`https://api-dev.etera.dev` — Testing and development

---

## URL Structure

All ETERA services follow a consistent URL pattern across environments:

```
https://{environment}/{vertical}/{service}/{endpoint}
```

#### Production

| Service           | URL                                                        |
| ----------------- | ---------------------------------------------------------- |
| Restaurant Search | `https://api.etera.dev/restaurant/search/recommendations/` |
| Hotel Booking     | `https://api.etera.dev/hotel/booking/bookings/`            |
| Flight Data       | `https://api.etera.dev/flight/data/airlines/`              |
| Auth              | `https://api.etera.dev/auth/api/auth/me`                   |
| Payment           | `https://api.etera.dev/payment/webhook`                    |

#### Staging

| Service           | URL                                                              |
| ----------------- | ---------------------------------------------------------------- |
| Restaurant Search | `https://api-stage.etera.dev/restaurant/search/recommendations/` |
| Hotel Booking     | `https://api-stage.etera.dev/hotel/booking/bookings/`            |
| Flight Data       | `https://api-stage.etera.dev/flight/data/airlines/`              |
| Auth              | `https://api-stage.etera.dev/auth/api/auth/me`                   |
| Payment           | `https://api-stage.etera.dev/payment/webhook`                    |

#### Development

| Service           | URL                                                            |
| ----------------- | -------------------------------------------------------------- |
| Restaurant Search | `https://api-dev.etera.dev/restaurant/search/recommendations/` |
| Hotel Booking     | `https://api-dev.etera.dev/hotel/booking/bookings/`            |
| Flight Data       | `https://api-dev.etera.dev/flight/data/airlines/`              |
| Auth              | `https://api-dev.etera.dev/auth/api/auth/me`                   |
| Payment           | `https://api-dev.etera.dev/payment/webhook`                    |

---

## Switching Environments

To switch environments, replace the base URL:

```bash
# Development
curl https://api-dev.etera.dev/restaurant/search/recommendations/

# Staging
curl https://api-stage.etera.dev/restaurant/search/recommendations/

# Production
curl https://api.etera.dev/restaurant/search/recommendations/
```

> **Info**
>
> Use the **environment selector** on any endpoint page in this documentation to switch between Production, Staging, and Development servers. Each API reference page includes a server dropdown powered by `x-fern-server-name`.

---

## Authentication per Environment

> **Warning**
>
> API keys and JWT tokens are **scoped per environment**. A token obtained from `api-dev.etera.dev` will not authenticate against `api.etera.dev`. Generate separate credentials for each environment through the [Dashboard](https://dashboard.etera.dev).

---

## Deployment Pipeline

Changes are promoted through the environment pipeline:

#### Development

Build and test new features with synthetic test data. Rapid iteration with no impact on real users.

#### Staging

Validate against production-mirrored data (refreshed weekly). Run integration tests and pre-production checks.

#### Production

Go live. All environments run the same API contracts — if it works in staging, it works in production.

---

## Service Health

Each service exposes health check endpoints across all environments:

```bash
# Basic health
curl https://api.etera.dev/restaurant/search/health

# Detailed health (where available)
curl https://api.etera.dev/ai/health/detailed

# Readiness check
curl https://api.etera.dev/ai/health/ready
```

## Next Steps

#### [Authentication](/guides/authentication)

Set up API keys and JWT tokens

#### [Getting Started](/guides/getting-started)

Make your first API call

#### [Error Handling](/guides/error-handling)

Handle environment-specific errors