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

# Consumer Authentication API Reference

> Use the Stytch Consumer API to build single-tenant authentication for your application.

Our authentication API is organized around REST principles and has resource-oriented URLs, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

All API resources are scoped to the Project of the API keys you provide.

## API keys

To connect to the Stytch API, you need to authenticate your requests using your `project_id` and `secret` from the *Project & API keys* section in your [Dashboard](https://stytch.com/dashboard).

* For direct API calls, you'll need to pass these credentials into the Authorization request header using [basic authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication).
* For our backend SDKs, you'll need to provide these credentials when initializing the Stytch SDK client.

<CodeGroup>
  ```jsx Node SDK theme={null}
  const stytch = require('stytch');

  const client = new stytch.Client({
    project_id: "PROJECT_ID",
    secret: "SECRET",
  });
  ```

  ```python Python SDK theme={null}
  from stytch import Client

  client = Client(
    project_id="PROJECT_ID",
    secret="SECRET",
  )
  ```

  ```ruby Ruby SDK theme={null}
  require 'stytch'

  client = Stytch::Client.new(
    project_id: "PROJECT_ID",
    secret: "SECRET"
  )
  ```

  ```go Go SDK theme={null}
  import (
      "context"

      "github.com/stytchauth/stytch-go/v12/stytch"
      "github.com/stytchauth/stytch-go/v12/stytch/consumer/stytchapi"
      "github.com/stytchauth/stytch-go/v12/stytch/consumer/users"
  )

  stytchClient, err := stytchapi.NewClient(
      "PROJECT_ID",
      "SECRET",
  )
  ```

  ```kotlin Java SDK theme={null}
  import com.stytch.java.consumer.StytchClient;
  StytchClient.configure(
      "PROJECT_ID",
      "SECRET"
  );
  ```

  ```bash cURL theme={null}
  curl --request POST \
    --url https://test.stytch.com/v1/users \
    -u 'PROJECT_ID:{$secret}' \
    -H 'Content-Type: application/json' \
    -d '{
      "email": "adalovelace@stytch.com",
      "name": {"first_name": "Ada", "last_name": "Lovelace"}
    }'
  ```
</CodeGroup>

## Environments

By default, a Stytch project includes one Live and one Test environment.  Your Live environment should map to production.  You can make as many Test environments as you need for your various stacks (development, staging, QA, etc.).

Each environment type has its own API root URL:

* Test environments: `test.stytch.com`
* Live environment: `api.stytch.com`

All resources and data objects are tied to the environment they were created in. Also, the IDs include their respective environment.

For example, `user-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6` indicates a User was created in a TEST environment.
