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

# Quickstart

> Create a project, add context, and chat with your first NPC

<Info>
  Follow these steps to go from a brand-new account to your first NPC conversation.
</Info>

## In-app setup

<Steps>
  <Step title="Create a game">
    Sign in at <a href="https://app.npcbuilder.com">
    app.npcbuilder.com</a> and click Add new project

    <img src="https://mintcdn.com/npcbuilder/LOHLFSZc-xfyG2Ok/media/quickstart-1.png?fit=max&auto=format&n=LOHLFSZc-xfyG2Ok&q=85&s=ad011c09524fdc02f5021e9ab73c3c96" alt="quickstart-1" width="2872" height="1934" data-path="media/quickstart-1.png" />

    Then access the game and copy the generated <code>GAME\_ID</code>

    <img src="https://mintcdn.com/npcbuilder/LOHLFSZc-xfyG2Ok/media/quickstart-2.png?fit=max&auto=format&n=LOHLFSZc-xfyG2Ok&q=85&s=47351e4219442ca9991a981031beb2fb" alt="quickstart-2" width="2872" height="1934" data-path="media/quickstart-2.png" />
  </Step>

  <Step title="Add a world">
    Inside the game, click Add World

    ; fill name and lore.\
    Copy the <code>
    WORLD\_ID</code>

    .
  </Step>

  <Step title="Add region & location">
    Open your world → Add Region

    (e.g. “Northern Kingdom”) →\
    inside that region, Add Location

    (e.g. “Capital City”).
  </Step>

  <Step title="Create a character">
    In the location, click Add Character

    → fill name, description, role, traits, etc.\
    Save; note the <code>character\_id</code>

    <img src="https://mintcdn.com/npcbuilder/aOSAihaLlvAQpr3f/media/quickstart-5.png?fit=max&auto=format&n=aOSAihaLlvAQpr3f&q=85&s=4f60c7f4c029546e723262fb599e4ce8" alt="quickstart-5" width="3044" height="1934" data-path="media/quickstart-5.png" />

    to use in the API.
  </Step>

  <Step title="Chat in dashboard">
    On the character page, open the Chat

    tab and send a test message—confirm the NPC responds.
  </Step>
</Steps>

## Generate credentials

<Steps>
  <Step title="Bearer token (quick)">
    Go to the developers section under graphics engine integration and generate Bearer Token

    <img src="https://mintcdn.com/npcbuilder/fm4fYReQmAyZGfZw/media/quickstart-auth-1.png?fit=max&auto=format&n=fm4fYReQmAyZGfZw&q=85&s=36fb72dcffa76da612c4a48b4d88afcb" alt="quickstart-auth-1" width="2872" height="1934" data-path="media/quickstart-auth-1.png" />

    Use in header:

    ```http theme={null}
    Authorization: Bearer YOUR_TOKEN
    ```
  </Step>

  <Step title="API keys (production)">
    Still in Developers, you can create an API Key.

    <img src="https://mintcdn.com/npcbuilder/fm4fYReQmAyZGfZw/media/quickstart-auth-2.png?fit=max&auto=format&n=fm4fYReQmAyZGfZw&q=85&s=7a21b30fa04bf1c1d975b04ed469fac7" alt="quickstart-auth-2" width="2872" height="1934" data-path="media/quickstart-auth-2.png" />

    <Warning>Generated API Key secret must be stored securely. If you lose it, you must delete it and generate a new one. We can't recover API Key secrets </Warning>
    Use in headers with combination of clientId and clientSecret (the generated api key):

    <img src="https://mintcdn.com/npcbuilder/fm4fYReQmAyZGfZw/media/quickstart-auth-3.png?fit=max&auto=format&n=fm4fYReQmAyZGfZw&q=85&s=3facf95e7ad570faafb1ae25bca86f58" alt="quickstart-auth-3" width="2872" height="1934" data-path="media/quickstart-auth-3.png" />

    ```json theme={null}
    {
      "clientId": "API_KEY_ID",
      "clientSecret": "API_KEY_SECRET"
    }
    ```
  </Step>
</Steps>

## Call the Interactions API

```bash theme={null}
curl -X POST https://app.npcbuilder.com/api/interactions \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "character_id": "CHARACTER_ID",
    "game_id": "GAME_ID",
    "world_id": "WORLD_ID",
    "messages": [
      { "role": "user", "content": "Hello!" }
    ]
  }'
```

### Expected JSON

```json theme={null}
{
  "response": "Greetings, traveler!",
  "user_events": [],
  "character_events": []
}
```

<Callout type="tip"> Include previous user + NPC messages in <code>messages\[]</code> on each call to keep context. </Callout> <Note> Unity and Unreal plugins wrap these calls—see <a href="/integrations/unity">Unity</a> or <a href="/integrations/unreal">Unreal</a> guides. </Note>
