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

# Quickstart

> First API call in 30 seconds.

<Frame>
  <video autoPlay muted loop playsInline style={{ width: '100%', borderRadius: '8px' }}>
    <source src="https://mintlify.s3.us-west-1.amazonaws.com/deepmako/images/makoteaser.mp4" type="video/mp4" />
  </video>
</Frame>

The Mako API is OpenAI-compatible. If you've used the OpenAI SDK, you already know how to use this.

## Authentication

Every request needs two things in the headers:

| Header             | Value                                         |
| ------------------ | --------------------------------------------- |
| `x-wallet-address` | Any EVM address (e.g. `0x1234...`)            |
| `Authorization`    | `Bearer YOUR_API_KEY` (optional in free mode) |

<Note>
  The gateway is currently running in **free mode** — no API key required. Just send your wallet address.
</Note>

## Your first request

<Tabs>
  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST https://gateway.deepmako.com/v1/chat/completions \
      -H "Content-Type: application/json" \
      -H "x-wallet-address: 0x0000000000000000000000000000000000000001" \
      -d '{
        "model": "conductor",
        "messages": [{"role": "user", "content": "what is eth at?"}],
        "stream": false
      }'
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    from openai import OpenAI

    client = OpenAI(
        base_url="https://gateway.deepmako.com/v1",
        api_key="not-needed",
        default_headers={"x-wallet-address": "0x0000000000000000000000000000000000000001"}
    )

    r = client.chat.completions.create(
        model="conductor",
        messages=[{"role": "user", "content": "what is eth at?"}]
    )
    print(r.choices[0].message.content)
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    const r = await fetch(
      "https://gateway.deepmako.com/v1/chat/completions",
      {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "x-wallet-address": "0x0000000000000000000000000000000000000001",
        },
        body: JSON.stringify({
          model: "conductor",
          messages: [{ role: "user", content: "what is eth at?" }],
          stream: false,
        }),
      }
    );
    const data = await r.json();
    console.log(data.choices[0].message.content);
    ```
  </Tab>
</Tabs>

## Response format

Responses follow the standard OpenAI Chat Completions format:

```json theme={null}
{
  "id": "chatcmpl-1718464968543",
  "object": "chat.completion",
  "model": "mako-32b-conductor",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "eth is at $1,665 right now."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1931,
    "completion_tokens": 63,
    "total_tokens": 1994
  }
}
```

## Model

The default model is the **32B Conductor** — Mako's primary model optimized for tool orchestration and complex reasoning.

| Alias         | Canonical ID         | Description                                     |
| ------------- | -------------------- | ----------------------------------------------- |
| `"conductor"` | `mako-32b-conductor` | Tool calling, complex questions, production use |
| `"operator"`  | `mako-8b-operator`   | Streaming, low-latency                          |

Use the alias in your requests. The canonical ID is returned in responses. Both are accepted in the `model` field.

See [Models](/models/conductor-32b) for full details.

## Try a multi-tool query

This is where Mako gets interesting. It chains tools automatically:

```bash theme={null}
curl -X POST https://gateway.deepmako.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "x-wallet-address: 0x0000000000000000000000000000000000000001" \
  -d '{
    "model": "conductor",
    "messages": [{"role": "user", "content": "what are the top Virtuals launches on Base this week?"}],
    "stream": false
  }'
```

The gateway handles the entire tool chain server-side — knowledge search, web lookup, synthesis — and returns a single final answer.

## Credits

When credits are enabled, each request costs:

* **1 credit** per 1,000 input tokens
* **2 credits** per 1,000 output tokens
* **Minimum charge:** 1 credit per request

Check your balance at `GET /credits/balance`.
