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

# Quickstart

> The TitanX REST APIs let you interact with our platform programmatically.

<Note>
  To use the TitanX REST APIs, you need an API key. API keys are available for
  team subscriptions and higher tiers. Only the Team Admin on the company
  account can generate an API key. If you don't have an API key or need
  assistance, please contact our sales team at [sales@titanx.io](mailto:sales@titanx.io).
</Note>

## Generating an API Key

To generate an API key, login to your [TitanX Dashboard](https://app.titanx.io) and navigate to the **Account** page and select the API Keys menu item.

### Receiving Results

<Note>
  Scoring and enrichment are asynchronous. Submitting contacts returns a `jobId`;
  the processed contacts are delivered to your configured webhook endpoint. Set up a
  webhook to receive them — see the [Webhooks guide](/guides/webhooks/getting-started).
  Check out our [Scoring](/api-reference/v2/score-contacts) and
  [Enrichment](/api-reference/v2/enrich-contacts) endpoints for more information.
</Note>

## Authentication

All API requests require authentication using a Bearer token. The token should
contain the API key you generated from your TitanX Dashboard. Include this token
in the Authorization header of your HTTP requests.

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://app.titanx.io/api/public/v2/contacts/score \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "contacts": [
        {
          "firstName": "Joey",
          "lastName": "Gilkey",
          "email": "example@email.com",
          "phone": "5558675309"
        }
      ]
    }'
  ```

  ```typescript example.ts theme={null}
  const apiKey = "YOUR_API_KEY";
  const url = "https://app.titanx.io/api/public/v2/contacts/score";

  const data = {
    contacts: [
      {
        firstName: "Joey",
        lastName: "Gilkey",
        email: "example@email.com",
        phone: "5558675309",
      },
    ],
  };

  const response = await fetch(url, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(data),
  });

  console.log(await response.json());
  ```

  ```python example.py theme={null}
  import requests

  api_key = 'YOUR_API_KEY'
  url = 'https://app.titanx.io/api/public/v2/contacts/score'

  headers = {
    'Authorization': f'Bearer {api_key}',
    'Content-Type': 'application/json'
  }

  data = {
    'contacts': [
      {
        'firstName': 'Joey',
        'lastName': 'Gilkey',
        'email': 'example@email.com',
        'phone': '5558675309'
      }
    ]
  }

  response = requests.post(url, json=data, headers=headers)
  print(response.json())
  ```
</CodeGroup>

## Content Types

The TitanX API always accepts JSON in request bodies and returns JSON in response bodies.
You will need to set the `Content-Type` header to `application/json` in your request.
