export const metadata = {
  title: "Quickstart",
  description:
    "Send your first FaithTranscripts API request in under five minutes — paste text, submit a YouTube URL, or upload a file.",
  alternates: { canonical: "/docs/api/quickstart" },
};

# Quickstart

Take a plain-text transcript and get a cleaned version back in under five
minutes.

## 1. Create a key

Go to [Settings → API Keys](/settings/api-keys) in the dashboard, click
**Create API key**, give it a label, and copy the revealed value.

```text
ft_live_abcd1234…
```

## 2. Verify auth

A quick call to `GET /me` confirms your key works and tells you which org
it belongs to.

<EndpointBadge method="GET" path="/api/v1/me" />

```bash
curl https://www.faithtranscripts.com/api/v1/me \
  -H "Authorization: Bearer ft_live_YOUR_KEY"
```

Response:

```json
{
  "api_key_id": "nanoid-...",
  "organization_id": "org_...",
  "label": "production-server"
}
```

## 3. Send a transcript

<EndpointBadge method="POST" path="/api/v1/transcripts" />

```bash
curl https://www.faithtranscripts.com/api/v1/transcripts \
  -H "Authorization: Bearer ft_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_type": "paste",
    "title": "Sunday sermon 2026-04-12",
    "content": "Today we read from Jon 3 about the city of Ninevah. Pastor Smith spoke about repentance."
  }'
```

Because the deterministic pass runs inline for pastes, the response is the
full corrected transcript:

```json
{
  "id": "tr_01HW...",
  "object": "transcript",
  "status": "completed",
  "content": "Today we read from Jonah 3 about the city of Nineveh. Pastor Smith spoke about repentance.",
  "changes_summary": {
    "total": 2,
    "auto_applied": 2,
    "needs_review": 0,
    "ai_flagged": 0,
    "by_category": { "bible": 1, "place": 1 }
  }
}
```

## 4. Also run the AI pass (optional)

Add `ai_pass.enabled: true` to the `options` object and the server will
queue a follow-up AI validation job. Initial response tells you the AI job
has been queued; poll `/transcripts/{id}` for the final state, or add a webhook
in [Settings → Webhooks](/settings/webhooks) to be notified.

```bash
curl https://www.faithtranscripts.com/api/v1/transcripts \
  -H "Authorization: Bearer ft_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_type": "paste",
    "content": "...",
    "options": { "ai_pass": { "enabled": true } }
  }'
```

## 5. Listen for completion (optional)

If you'd rather not poll, add a webhook URL in
[Settings → Webhooks](/settings/webhooks) and we'll notify you when transcripts
or AI passes complete. See the [Webhooks guide](/docs/api/webhooks) for headers,
signature verification, and retries.

That's it. Next:

- [Ingestion methods](/docs/api/ingestion) — paste, YouTube, URL, and upload.
- [Processing options](/docs/api/options) — categories, thresholds, metadata.
- [Sync, poll, webhooks](/docs/api/async) — pick the right interaction pattern.

<Callout variant="tip">
  **No backend?** Wire this into a no-code automation instead: see the
  [Zapier integration](/integrations/zapier) or the self-hosted
  [n8n integration](/integrations/n8n) for a three-step setup that uses the
  same endpoint.
</Callout>
