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

# Environments

> Endstate exposes a single API base URL. Develop and test against it safely using test chips, then switch to encoded hardware for production.

The Endstate API is served from a single base URL. You build, test, and run live traffic against the same endpoints — you isolate development from production data using **test chips** rather than a separate host.

## Base URL

| Environment | Base URL                   |
| ----------- | -------------------------- |
| Production  | `https://api2.endstate.io` |

All requests go to this base URL. There is no flag or header to switch behavior — what differs is whether you work with test chips or encoded hardware chips.

## Developing without hardware

You can exercise the full verification flow before you have physical chips. Create a test chip (`is_test: true`) and use the tap simulator to generate a fresh scan credential, then pass it to the verify endpoint. Test chips behave identically to encoded chips in every API call.

See [Testing without hardware](/guides/testing-without-hardware) for a step-by-step walkthrough.

## HTTPS

HTTPS is required. Plain HTTP requests return `426 Upgrade Required`.

## OpenAPI spec

The OpenAPI specification is served at `https://api2.endstate.io/openapi.json`.

## Credentials and limits

<Note>
  Your API key and your organization's network configuration (read-only on `GET
      /v1/settings`) are set up by Endstate during onboarding. Confirm any rate
  limits or configuration with your Endstate contact.
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="/quickstart">
    Make your first API call end to end.
  </Card>

  <Card title="Authentication" icon="key" href="/authentication">
    Learn how API keys and session tokens work.
  </Card>
</CardGroup>
