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

# Quickstart

> Reduce your LLM application infrastructure burden in under 5 minutes

## Create your Waystone account

Create a Waystone account by logging in at [waystone.run](https://www.waystone.run).
Get yourself set up with your first organization, then create a project.

## Projects

Almost everything in Waystone is scoped to a project. How you choose to use projects
is totally up to you, but we generally recommend having one project for each of your
environments (`dev`, `stag`, `prod`, etc.). Each project will have a slug unique to
your organization that you can use to reference the project via the API.

## Create an API key

Head to your project 'Settings' to create your first API key. The key will start with
`wsak-`, and you can use it with the API when making requests via the Waystone
gateway, in place of your model provider-specific API key, allowing you to easily
switch models at-will.

## Set up model providers

On the project 'Settings' page, configure the model providers (OpenAI, Anthropic, etc.)
that you wish to use through Waystone. Your API keys will be encrypted and stored
securely in Waystone.

Once you've configured providers, the 'Models' page will show you the models available
to you. You can still use models that aren't listed, but traces and observations (coming
soon) may be missing cost information.

## Send your first request

Send your first request to Waystone using any OpenAI compatible client! You only have to
change two lines of code.

<CodeGroup>
  ```diff TypeScript theme={null}
    const client = new OpenAI({
  -   apiKey: process.env['OPENAI_API_KEY'],
  +   apiKey: process.env['WAYSTONE_API_KEY'],
  +   baseURL: 'https://waystone.run/api/gateway/v1',
    });

    const response = await client.responses.create({
      model: 'gpt-4o',
      instructions: 'You are a coding assistant that talks like a pirate',
      input: 'Are semicolons optional in JavaScript?',
    });
  ```

  ```diff Python theme={null}
    client = OpenAI(
  -     api_key=os.environ.get("OPENAI_API_KEY"),
  +     api_key=os.environ.get("WAYSTONE_API_KEY"),
  +     base_url="https://waystone.run/api/gateway/v1",
    )

    response = client.responses.create(
        model="gpt-4o",
        instructions="You are a coding assistant that talks like a pirate.",
        input="How do I check if a Python object is an instance of a class?",
    )
  ```
</CodeGroup>

## Walkthrough example

<div class="max-w-full aspect-video rounded-2xl border border-transparent dark:border-gray-800/50 overflow-hidden">
  <iframe width="100%" height="100%" src="https://www.youtube.com/embed/UvZngUf0GKM" title="Waystone Demo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen sandbox />
</div>

## Quick links

<CardGroup>
  <Card title="Create your Waystone account" icon="mountain" href="https://www.waystone.run">
    It takes less than two minutes!
  </Card>

  <Card title="API reference" icon="code" href="/api-reference">
    Check out our REST API reference. Our gateway API is a super-powered superset of
    the OpenAI API, and is fully compatible!
  </Card>

  <Card title="Cookbook: Manage model access" icon="users" href="/cookbooks/free-user-routing">
    Follow this recipe for managing which models your different tiers of users can access.
  </Card>

  <Card title="Cookbook: Model fallback" icon="refresh-cw" href="/cookbooks/model-fallback">
    Follow this recipe to set up fallbacks for your requests in case a model becomes unavailable.
  </Card>
</CardGroup>
