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

# Quickstart

> Connect a source and run your first search

Get up and running in minutes with intelligent context from your data.

<Steps>
  <Step title="Create an account">
    Sign up at [mind.adapter.com](https://mind.adapter.com).
  </Step>

  <Step title="Connect a data source">
    In the console, go to **Connectors** and connect to one of your tools. Once connected, click "sync data" and select your desired configuration. This can be changed at any time.
  </Step>

  <Step title="Create an API key">
    Go to **Settings → API keys** and create a key. Set it in your shell:

    ```bash theme={null}
    export ADAPTER_API_KEY="pk_live_..."
    ```

    See [API keys](/getting-started/api-keys) for scope and rotation details.
  </Step>

  <Step title="Ingestion runs in the background">
    Ingestion starts as soon as you connect a source, and you can search and ask against your data shortly after. There's nothing to wait on or manage — the context layer is living, so it keeps enriching and deepening its understanding behind the scenes as more data lands.
  </Step>

  <Step title="Run your first search">
    <CodeGroup>
      ```bash curl theme={null}
      curl https://api.adapter.com/v1/knowledge/search \
        -H "Authorization: Bearer $ADAPTER_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{
          "q": "pricing discussions with enterprise customers",
          "limit": 5
        }'
      ```

      ```python python theme={null}
      import os, requests

      resp = requests.post(
          "https://api.adapter.com/v1/knowledge/search",
          headers={"Authorization": f"Bearer {os.environ['ADAPTER_API_KEY']}"},
          json={"q": "pricing discussions with enterprise customers", "limit": 5},
      )
      resp.raise_for_status()
      for hit in resp.json()["results"]:
          print(hit["evidence_type"], hit["score"], hit["snippet"][:80])
      ```

      ```javascript node theme={null}
      const resp = await fetch("https://api.adapter.com/v1/knowledge/search", {
        method: "POST",
        headers: {
          Authorization: `Bearer ${process.env.ADAPTER_API_KEY}`,
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          q: "pricing discussions with enterprise customers",
          limit: 5,
        }),
      });
      const { results } = await resp.json();
      for (const hit of results) {
        console.log(hit.evidence_type, hit.score, hit.snippet.slice(0, 80));
      }
      ```
    </CodeGroup>

    A typical response looks like:

    ```json theme={null}
    {
      "count": 3,
      "results": [
        {
          "evidence_type": "email",
          "score": 0.87,
          "snippet": "Following up on the pricing thread from last week — they pushed back on...",
          "timestamp": "2026-04-21T18:42:11Z"
        }
      ]
    }
    ```
  </Step>

  <Step title="Ask a question (optional)">
    For synthesized, grounded answers instead of raw hits, use the [Ask](/api-reference/knowledge/ask) endpoint.

    ```bash theme={null}
    curl https://api.adapter.com/v1/knowledge/ask \
      -H "Authorization: Bearer $ADAPTER_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query": "what do we know about Acme Corp?"}'
    ```
  </Step>
</Steps>

## Next

<CardGroup cols={2}>
  <Card title="Knowledge endpoints" icon="magnifying-glass" href="/api-reference/knowledge/search">
    Search across your entities or ask for grounded answers.
  </Card>

  <Card title="Evidence and entities" icon="layer-group" href="/core-concepts/evidence">
    The shape of records you query against.
  </Card>
</CardGroup>
