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

# Get Started with Veedcrawl in 5 Minutes

> Sign up, grab your API key, and make your first metadata, transcript, and extract calls against a real public video URL.

Veedcrawl's API follows a simple pattern: send a video URL, get back structured data. This guide walks you through your first three calls — metadata (free, instant), transcript (async, 1–5 credits), and extract (async, 10 credits) — so you understand how the whole flow works before you build anything.

<Steps>
  <Step title="Sign up and get your API key">
    Go to [veedcrawl.com/login](https://veedcrawl.com/login) and create a free account. Every new account receives **50 free credits** — no credit card required.

    After signing in, copy your API key from the dashboard. It starts with `ma_`. Keep it somewhere safe; you'll pass it as a header on every `/v1/*` request.
  </Step>

  <Step title="Check that the API is up">
    The `/health` endpoint requires no authentication. Use it to confirm the API is reachable before adding your key.

    ```bash theme={null}
    curl "https://api.veedcrawl.com/health"
    ```

    ```json theme={null}
    { "status": "ok" }
    ```
  </Step>

  <Step title="Fetch metadata for a public video">
    Metadata is free and returns immediately — no polling needed. Pass the video URL as a query parameter and your API key in the `x-api-key` header.

    ```bash theme={null}
    curl "https://api.veedcrawl.com/v1/metadata?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
      -H "x-api-key: YOUR_KEY"
    ```

    You'll receive a normalized object regardless of which platform the URL is from:

    ```json theme={null}
    {
      "platform": "youtube",
      "title": "Rick Astley - Never Gonna Give You Up",
      "author": "Rick Astley",
      "duration": 213,
      "viewCount": 1400000000,
      "likeCount": 15000000,
      "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg"
    }
    ```

    Use metadata as a cheap first pass on any video before deciding whether to spend credits on transcript or extract.
  </Step>

  <Step title="Get a transcript">
    Transcription is asynchronous. You enqueue a job, get back a `jobId`, then poll until the status is `completed`.

    **Enqueue the job:**

    ```bash theme={null}
    curl -X POST "https://api.veedcrawl.com/v1/transcript" \
      -H "x-api-key: YOUR_KEY" \
      -H "Content-Type: application/json" \
      -d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "mode": "auto"}'
    ```

    ```json theme={null}
    { "jobId": "job_abc123", "status": "queued" }
    ```

    **Poll for the result:**

    ```bash theme={null}
    curl "https://api.veedcrawl.com/v1/transcript/job_abc123" \
      -H "x-api-key: YOUR_KEY"
    ```

    Keep polling until `status` is `completed` or `failed`. A typical transcript job finishes in under 30 seconds.

    ```json theme={null}
    {
      "jobId": "job_abc123",
      "status": "completed",
      "resultJson": {
        "text": "Never gonna give you up, never gonna let you down..."
      }
    }
    ```

    The `mode` parameter controls the transcription source: `native` uses platform captions only, `generate` uses AI speech-to-text only, and `auto` tries native captions first and falls back to AI if none are available.

    <Note>
      Native captions cost 1 credit. AI-generated transcription costs 5 credits.
    </Note>
  </Step>

  <Step title="Extract structured information with a prompt (optional)">
    Extract lets you ask any question about a video and get a structured answer back. It follows the same enqueue-and-poll pattern as transcript.

    **Enqueue the job:**

    ```bash theme={null}
    curl -X POST "https://api.veedcrawl.com/v1/extract" \
      -H "x-api-key: YOUR_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
        "prompt": "Extract the hook, main message, and any call to action"
      }'
    ```

    ```json theme={null}
    { "jobId": "job_xyz456", "status": "queued" }
    ```

    **Poll for the result:**

    ```bash theme={null}
    curl "https://api.veedcrawl.com/v1/extract/job_xyz456" \
      -H "x-api-key: YOUR_KEY"
    ```

    ```json theme={null}
    {
      "jobId": "job_xyz456",
      "status": "completed",
      "resultJson": {
        "hook": "Opens with the artist walking toward the camera on a city street",
        "mainMessage": "A declaration of unwavering loyalty and commitment",
        "callToAction": "None — the video ends on the chorus"
      }
    }
    ```

    Extract costs 10 credits per job. You can optionally pass a `schema` field with a JSON Schema object to enforce the exact shape of `resultJson`.
  </Step>
</Steps>

## Next steps

<CardGroup cols={3}>
  <Card title="Authentication" icon="key" href="/authentication">
    Learn how to manage API keys and understand auth errors.
  </Card>

  <Card title="MCP server" icon="plug" href="/mcp/overview">
    Add Veedcrawl tools to Claude, Cursor, or any MCP-compatible host.
  </Card>

  <Card title="Creator audit guide" icon="user" href="/guides/creator-audit">
    Run a full creator audit using only a username — no video URLs needed.
  </Card>
</CardGroup>
