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

# Quickstart: your first AuthFlame email check

> Send your first email check to AuthFlame in under two minutes, then wire the decision into your signup flow.

This quickstart walks you from an API key to a working email check request, and shows how to act on the response inside your signup flow.

## Prerequisites

* An [AuthFlame account](https://authflame.com/register/)
* A live API key (prefixed with `af_live_`)
* A tool that can send HTTP requests (curl, PowerShell, Node.js, Python, etc.)

## 1. Get your API key

Sign in to your AuthFlame dashboard and copy your API key. Keep it server-side, never in browser or mobile code.

<Warning>
  Your API key grants full access to your AuthFlame account. Store it in an environment variable or secret manager, and rotate it immediately if exposed.
</Warning>

## 2. Send your first check

Post the email address you want to evaluate to the check endpoint.

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.authflame.com/v1/ \
    -H "Authorization: Bearer af_live_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{"email": "test@example.com"}'
  ```

  ```powershell PowerShell theme={null}
  $headers = @{
    "Authorization" = "Bearer af_live_your_api_key"
    "Content-Type"  = "application/json"
  }
  $body = @{ email = "test@example.com" } | ConvertTo-Json

  Invoke-RestMethod `
    -Uri "https://api.authflame.com/v1/" `
    -Method Post `
    -Headers $headers `
    -Body $body
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.authflame.com/v1/", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.AUTHFLAME_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ email: "test@example.com" }),
  });

  const result = await response.json();
  console.log(result.summary.action);
  ```

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

  response = requests.post(
      "https://api.authflame.com/v1/",
      headers={
          "Authorization": f"Bearer {os.environ['AUTHFLAME_API_KEY']}",
          "Content-Type": "application/json",
      },
      json={"email": "test@example.com"},
  )

  result = response.json()
  print(result["summary"]["action"])
  ```
</CodeGroup>

## 3. Read the response

A successful check returns a decision summary, a normalized address, and the signals that contributed to the score.

```json Response theme={null}
{
  "summary": {
    "action": "ALLOW",
    "risk_score": 3,
    "risk_level": "low"
  },
  "normalized": {
    "raw": "test@example.com",
    "canonical": "test@example.com",
    "local_part": "test",
    "domain": "example.com",
    "subaddress": null,
    "has_dots_removed": false
  },
  "signals": {
    "syntax": { "valid_format": true },
    "entropy": { "score": 1.5, "suspicious": false },
    "domain": {
      "is_known_disposable": false,
      "is_known_free_provider": false,
      "has_mx": true,
      "is_catch_all": false,
      "is_role_account": false,
      "tld_risk_level": "low"
    }
  }
}
```

The three fields you almost always care about:

* `summary.action`: `ALLOW` or `BLOCK`. Use it as the primary gate.
* `summary.risk_score`: `0` to `100`. Useful for custom thresholds or A/B tests.
* `normalized.canonical`: The deduped form of the address. Store this to catch duplicate accounts.

## 4. Wire it into signup

<Steps>
  <Step title="Call AuthFlame before creating the user">
    Send the submitted email to `/api/` from your backend, not the browser.
  </Step>

  <Step title="Branch on `summary.action`">
    * `ALLOW`: create the account.

    * `BLOCK`: reject the signup with a generic error message.
  </Step>

  <Step title="Store the canonical email">
    Persist `normalized.canonical` alongside the raw address so you can detect duplicate signups later.
  </Step>
</Steps>

<Tip>
  Need help? Reach the AuthFlame team through the [AuthFlame website](https://authflame.com).
</Tip>
