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

# Quickstart

> Make your first Factagora API request in minutes

<Info>
  **Get your free API key**: You get 100 welcome API Credits for free. No credit card required. [Get started](https://factagora.com/en/playground)
</Info>

## Step 1: Login

Sign in or create a free account at [Login](https://factagora.com/login). No credit card required, you get **100 welcome credits** automatically.

## Step 2: Get your API key

Navigate to [Settings → API Keys](https://factagora.com/en/playground/tokens) and generate a new API key.

Your API key will look like this:

```
fag_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

<Warning>
  Keep your API key secret. Do not expose it in client-side code or public repositories.
</Warning>

## Step 3: Make your first request

Use the Fact Search API to search for recent news articles.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.factagora.com/api/v1/fact-search?q=artificial+intelligence" \
    -H "Authorization: Bearer fag_your_api_key"
  ```

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

  response = requests.get(
      "https://api.factagora.com/api/v1/fact-search",
      params={"q": "artificial intelligence"},
      headers={"Authorization": "Bearer fag_your_api_key"}
  )
  print(response.json())
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch(
    "https://api.factagora.com/api/v1/fact-search?q=artificial+intelligence",
    {
      headers: { Authorization: "Bearer fag_your_api_key" },
    }
  );
  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

## Step 4: Understand the response

A successful response returns a list of news articles with metadata:

```json theme={null}
{
  "articles": [
    {
      "title": "OpenAI releases new model",
      "url": "https://example.com/article",
      "source": "TechCrunch",
      "publishedAt": "2025-03-30T12:00:00Z",
      "summary": "OpenAI has announced..."
    }
  ],
  "total": 42
}
```

## Step 5: Fingerprint your content

Protect your content by embedding an invisible watermark. The Fingerprint API extracts a TKG (Temporal Knowledge Graph) and embeds a zero-width Unicode watermark seeded by the content's causal structure.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.factagora.com/api/v1/fingerprint/embed" \
    -H "Authorization: Bearer fag_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{
      "content": "The Bank of Korea raised interest rates by 25 basis points, citing persistent inflation.",
      "content_type": "news"
    }'
  ```

  ```python Python theme={null}
  response = requests.post(
      "https://api.factagora.com/api/v1/fingerprint/embed",
      headers={"Authorization": "Bearer fag_your_api_key"},
      json={
          "content": "The Bank of Korea raised interest rates by 25 basis points, citing persistent inflation.",
          "content_type": "news"
      }
  )
  print(response.json())
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch(
    "https://api.factagora.com/api/v1/fingerprint/embed",
    {
      method: "POST",
      headers: {
        Authorization: "Bearer fag_your_api_key",
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        content: "The Bank of Korea raised interest rates by 25 basis points, citing persistent inflation.",
        content_type: "news",
      }),
    }
  );
  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

The response includes `watermarked_content` (distribute this instead of the original), `fingerprint_id` (store this for later detection), and a `tkg_snapshot` showing the extracted entities, timelines, and argument chains.

Later, when you encounter suspicious content, use `/fingerprint/detect` to check it:

```bash theme={null}
curl -X POST "https://api.factagora.com/api/v1/fingerprint/detect" \
  -H "Authorization: Bearer fag_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"content": "Korea central bank hiked rates 25bp due to inflation concerns."}'
```

Even though the wording is completely different, the API matches the underlying causal structure and returns the original `fingerprint_id` with a confidence score. See the [Fingerprint Guide](/guides/factagora/fingerprint/overview) for the full walkthrough.

## Next steps

That's all it takes to start using Factagora's API!

To go further, explore the full list of available endpoints and parameters on our [API Reference](/api-reference/introduction) page. You can also learn about [Credits & Pricing](/credits-pricing) to understand how usage is measured, or check [Rate Limits](/rate-limits) to ensure your integration stays within limits.
