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

# Quick Start

> Make your first request in 5 minutes — HTTP API or TypeScript SDK

## Get your API key

Retrieve your API key from the [Artu Dashboard](https://dashboard.artu.ai). All requests require two things: an API key and a target environment (`test` or `live`).

<Note>
  Start with the `test` environment. Test data is fully isolated and never
  submitted to regulators.
</Note>

## Choose your path

<Tabs>
  <Tab title="TypeScript SDK">
    ### Install the SDK

    <Snippet file="installation.mdx" />

    ### Initialize

    ```typescript theme={null}
    import { ComplianceSDK } from "@artu-ai/compliance-sdk";

    const sdk = new ComplianceSDK({
      apiKey: process.env.ARTU_API_KEY,
      environment: "test",
    });
    ```

    ### Create your first client

    ```typescript theme={null}
    import { ClientType } from "@artu-ai/compliance-sdk";

    const client = await sdk.clients.create({
      type: ClientType.Individual,
      name: "Juan García López",
      scopeData: {
        MX: {
          rfc: "GALJ850101ABC",
          curp: "GALJ850101HDFRRL09",
        },
      },
    });

    console.log(`Created client: ${client.id}`);
    ```

    ### List clients

    ```typescript theme={null}
    const { data, pagination } = await sdk.clients.list({ limit: 10 });

    for (const client of data) {
      console.log(client.name);
    }

    // Or use the async iterator — pagination is handled automatically
    for await (const client of sdk.clients.iterate()) {
      console.log(client.name);
    }
    ```
  </Tab>

  <Tab title="HTTP API">
    ### Create your first client

    ```bash theme={null}
    curl https://api.artu.ai/v1/clients \
      -X POST \
      -H "Authorization: Bearer sk_test_..." \
      -H "X-Environment: test" \
      -H "Content-Type: application/json" \
      -d '{
        "type": "individual",
        "name": "Juan García López",
        "scopeData": {
          "MX": {
            "rfc": "GALJ850101ABC",
            "curp": "GALJ850101HDFRRL09"
          }
        }
      }'
    ```

    ### List clients

    ```bash theme={null}
    curl "https://api.artu.ai/v1/clients?limit=10" \
      -H "Authorization: Bearer sk_test_..." \
      -H "X-Environment: test"
    ```

    The response includes a `pagination` object with `nextCursor` and `hasMore` fields for paging through results.
  </Tab>
</Tabs>

## Pick a scope

Most integrations target a specific compliance track. Pass a `scope` to the SDK (or add an `X-Scope` header to HTTP requests) to filter data and unlock scope-specific fields and types.

```typescript theme={null}
// TypeScript SDK — AVI-scoped instance
const sdk = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY,
  environment: "test",
  scope: "MX:AV:AVI",
});
```

See [Scopes overview](/scopes/overview) for the full list of available scopes and the fields each one exposes.

## Next steps

<CardGroup cols={2}>
  <Card title="Scopes overview" icon="diagram-project" href="/scopes/overview">
    Choose the right scope for your compliance track.
  </Card>

  <Card title="TypeScript SDK reference" icon="brackets-curly" href="/sdk/overview">
    Constructor options, all resource managers, and scoped sub-exports.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/introduction">
    Full interactive HTTP endpoint reference.
  </Card>

  <Card title="Client guide" icon="users" href="/guides/clients">
    Deep dive into managing clients, linked clients, and batch operations.
  </Card>
</CardGroup>
