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

# Quickstart

> Create your first scheduled webhook in under 5 minutes

This guide walks you through creating your first recurring cron using the CronAPI REST API.

## Prerequisites

* A CronAPI account — sign up at [cronapi.dev](https://cronapi.dev)
* An API key — see [Authentication](/authentication)

## 1. Get your API key

Log into the [dashboard](https://app.cronapi.dev) and navigate to the [API Key](https://app.cronapi.dev/dashboard/api-key) page. Your API key is generated automatically on first visit. Copy it — you will only see the full key once.

## 2. Create a cron

Schedule a webhook that fires every 5 minutes:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://app.cronapi.dev/api/v1/crons \
    -H "Authorization: Bearer your_api_key_here" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Health check",
      "cron": "*/5 * * * *",
      "url": "https://example.com/health",
      "method": "GET"
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://app.cronapi.dev/api/v1/crons", {
    method: "POST",
    headers: {
      "Authorization": "Bearer your_api_key_here",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      name: "Health check",
      cron: "*/5 * * * *",
      url: "https://example.com/health",
      method: "GET",
    }),
  });

  const cron = await response.json();
  console.log(cron);
  ```

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

  response = requests.post(
      "https://app.cronapi.dev/api/v1/crons",
      headers={"Authorization": "Bearer your_api_key_here"},
      json={
          "name": "Health check",
          "cron": "*/5 * * * *",
          "url": "https://example.com/health",
          "method": "GET",
      },
  )

  print(response.json())
  ```
</CodeGroup>

You will receive a response like:

```json theme={null}
{
  "id": "{your_cron_id}",
  "name": "Health check",
  "cron": "*/5 * * * *",
  "url": "https://example.com/health",
  "method": "GET",
  "headers": {},
  "body": {},
  "paused": false,
  "next_run_at": "2026-04-15T14:35:00.000Z",
  "created_at": "2026-04-15T14:31:00.000Z"
}
```

## 3. Test it immediately

Trigger the cron manually without waiting for the next scheduled run:

```bash theme={null}
curl -X POST https://app.cronapi.dev/api/v1/crons/{your_cron_id}/trigger \
  -H "Authorization: Bearer your_api_key_here"
```

```json theme={null}
{
  "status_code": 200,
  "success": true,
  "response_time_ms": 145,
  "fired_at": "2026-04-15T14:31:30.123Z"
}
```

## 4. Check execution history

View the last runs for your cron:

```bash theme={null}
curl https://app.cronapi.dev/api/v1/crons/{your_cron_id}/runs \
  -H "Authorization: Bearer your_api_key_here"
```

## Next steps

<CardGroup cols={2}>
  <Card title="Schedule a one-time job" icon="clock" href="/concepts/jobs">
    Learn how to schedule delayed one-time webhooks.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference/introduction">
    Explore all available endpoints.
  </Card>
</CardGroup>
