> ## Documentation Index
> Fetch the complete documentation index at: https://nusaai-edit.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Get started with Neosantara AI API in minutes

This guide will help you make your first API call to Neosantara AI. Our API is designed to be fully compatible with the OpenAI SDK, making it easy to integrate into your existing workflows.

<Steps>
  <Step title="Create an Account">
    Sign up for a free account to get your API key.

    <Card icon="user-plus" href="https://app.neosantara.xyz/signup" title="Sign Up for Free" horizontal>
      Get **10,000 free credits** monthly. No credit card required.
    </Card>
  </Step>

  <Step title="Generate an API Key">
    Go to your [Dashboard](https://app.neosantara.xyz/dashboard) and navigate to the **API Keys** section. Click "Create New Key" and save it securely.
    <Warning>Do not share your API key with anyone or commit it to public repositories.</Warning>
  </Step>

  <Step title="Install Dependencies">
    Since Neosantara is OpenAI-compatible, you can use the official OpenAI SDKs.

    <CodeGroup>
      ```bash npm theme={null}
      npm install openai
      ```

      ```bash pip theme={null}
      pip install openai
      ```
    </CodeGroup>

    Or use in the Claude Code see [Anthropic compatible](/api-reference/anthropic-compatible)
  </Step>

  <Step title="Make Your First Request">
    Copy the code below to test your connection. Replace `<YOUR_API_KEY>` with the key you generated.

    <CodeGroup>
      ```javascript Node.js icon="square-js" theme={null}
      import OpenAI from "openai";

      const client = new OpenAI({
        baseURL: "https://api.neosantara.xyz/v1",
        apiKey: "<YOUR_API_KEY>", // process.env.NAI_API_KEY
      });

      async function main() {
        const completion = await client.chat.completions.create({
          model: "nusantara-base",
          messages: [
            { role: "system", content: "You are a helpful assistant." },
            { role: "user", content: "Hello! Who are you?" },
          ],
        });

        console.log(completion.choices[0].message.content);
      }

      main();
      ```

      ```python Python icon="py" theme={null}
      from openai import OpenAI

      client = OpenAI(
          base_url="https://api.neosantara.xyz/v1",
          api_key="<YOUR_API_KEY>" // os.environ.get("NAI_API_KEY")
      )

      response = client.chat.completions.create(
          model="nusantara-base",
          messages=[
              {"role": "system", "content": "You are a helpful assistant."},
              {"role": "user", "content": "Hello! Who are you?"}
          ]
      )

      print(response.choices[0].message.content)
      ```

      ```bash cURL icon="terminal" theme={null}
      curl https://api.neosantara.xyz/v1/chat/completions \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer <YOUR_API_KEY>" \
        -d '{ \
          "model": "nusantara-base", \
          "messages": [ \
            {"role": "system", "content": "You are a helpful assistant."}, \
            {"role": "user", "content": "Hello! Who are you?"} \
          ] \
        }'
      ```
    </CodeGroup>
  </Step>
</Steps>

## Next Steps

Now that you've made your first request, explore what else you can build:

<CardGroup cols={2}>
  <Card title="Models Overview" icon="layer-group" href="/en/models-overview">
    Discover our range of models including Multimodal and Image models.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/introduction">
    Explore detailed documentation for all endpoints.
  </Card>

  <Card title="Rate Limits" icon="gauge-high" href="/en/about/rate-limits">
    Understand the limits for different tiers.
  </Card>

  <Card title="Integrations" icon="puzzle-piece" href="/en/integrations">
    Connect Neosantara with LangChain, LlamaIndex, and more.
  </Card>
</CardGroup>
