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

# Introduction

> Check an image for AI generation, AI edits and face swaps with one REST call.

One REST call per image: a verdict, which detector fired, both detector scores and the face box.

**Base URL:** `https://api.checkobot.ai`

## Your first call

<Steps>
  <Step title="Get an API key">
    API keys come with the API plans. Create one in your [dashboard](https://checkobot.ai/dashboard/keys) and copy it when it's shown: we store only a hash of each key.
  </Step>

  <Step title="Send an image">
    <CodeGroup>
      ```bash curl theme={null}
      curl https://api.checkobot.ai/v1/check \
        -H "Authorization: Bearer $CHECKOBOT_API_KEY" \
        -F "file=@photo.jpg"
      ```

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

      r = requests.post(
          "https://api.checkobot.ai/v1/check",
          headers={"Authorization": f"Bearer {os.environ['CHECKOBOT_API_KEY']}"},
          files={"file": open("photo.jpg", "rb")},
          timeout=60,
      )
      r.raise_for_status()
      result = r.json()
      print(result["is_ai"], result["fired"], result["reason"])
      ```

      ```javascript JavaScript theme={null}
      import { readFile } from "node:fs/promises";

      const form = new FormData();
      form.append("file", new Blob([await readFile("photo.jpg")]), "photo.jpg");

      const r = await fetch("https://api.checkobot.ai/v1/check", {
        method: "POST",
        headers: { Authorization: `Bearer ${process.env.CHECKOBOT_API_KEY}` },
        body: form,
      });
      const result = await r.json();
      console.log(result.is_ai, result.fired, result.reason);
      ```
    </CodeGroup>
  </Step>

  <Step title="Read the verdict">
    `is_ai` is `true` (AI) or `false` (shown as "No AI detected"), `fired` says which detector crossed its threshold, and `reason` is one line you can show to people. See [Check an image](/check) for every field.
  </Step>
</Steps>

## Endpoints

<CardGroup cols={3}>
  <Card title="Check an image" icon="image" href="/check">
    `POST /v1/check`
  </Card>

  <Card title="Batch" icon="layer-group" href="/batch">
    `POST /v1/check/batch`
  </Card>

  <Card title="Usage" icon="chart-simple" href="/usage">
    `GET /v1/usage`
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.