Events & schemas

Last updated Sep 25, 2026 This page provides a comprehensive reference of available event sources and their corresponding events with schemas for event subscriptions. All events include common metadata fields and follow a consistent structure.

Sources

Access

application.created

Triggered when an application is created.

Example:

{
  "type": "cf.access.application.created",
  "source": {
    "type": "access"
  },
  "payload": {
    "id": "app-12345678-90ab-cdef-1234-567890abcdef",
    "name": "My Application"
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2025-05-01T02:48:57.132Z"
  }
}

application.deleted

Triggered when an application is deleted.

Example:

{
  "type": "cf.access.application.deleted",
  "source": {
    "type": "access"
  },
  "payload": {
    "id": "app-12345678-90ab-cdef-1234-567890abcdef",
    "name": "My Application"
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2025-05-01T02:48:57.132Z"
  }
}

Artifacts

Account-level events — Subscribe to the artifacts source to receive events for any repository in your account.

repo.created

Triggered when a repository is created.

Example:

{
  "type": "cf.artifacts.repo.created",
  "source": {
    "type": "artifacts",
    "namespace": "my-namespace",
    "repoName": "my-repo"
  },
  "payload": {
    "repoId": "0tvugavnogssnwzk",
    "defaultBranch": "main",
    "description": "My Artifacts repository",
    "readOnly": false,
    "createdAt": "2026-05-18T15:53:46.833Z",
    "updatedAt": "2026-05-18T15:53:46.833Z",
    "lastPushAt": null
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2026-05-18T15:53:48.187Z"
  }
}

repo.deleted

Triggered when a repository is deleted.

Example:

{
  "type": "cf.artifacts.repo.deleted",
  "source": {
    "type": "artifacts",
    "namespace": "my-namespace",
    "repoName": "my-repo"
  },
  "payload": {
    "repoId": "0tvugavnogssnwzk",
    "defaultBranch": "main",
    "description": "My Artifacts repository",
    "readOnly": false,
    "createdAt": "2026-05-18T15:53:46.833Z",
    "updatedAt": "2026-05-18T15:53:46.833Z",
    "lastPushAt": null
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2026-05-18T15:53:59.914Z"
  }
}

repo.forked

Triggered when a repository is forked.

Example:

{
  "type": "cf.artifacts.repo.forked",
  "source": {
    "type": "artifacts",
    "namespace": "source-namespace",
    "repoName": "source-repo"
  },
  "payload": {
    "namespace": "target-namespace",
    "repoName": "target-repo",
    "repoId": "5ankv1vhl4xnw7wq",
    "defaultBranch": "main",
    "description": "Fork of source-repo",
    "readOnly": false,
    "createdAt": "2026-05-18T15:53:52.384Z",
    "updatedAt": "2026-05-18T15:53:54.579Z",
    "lastPushAt": null
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2026-05-18T15:53:54.641Z"
  }
}

repo.imported

Triggered when a repository is imported from an external Git remote.

Example:

{
  "type": "cf.artifacts.repo.imported",
  "source": {
    "type": "artifacts",
    "namespace": "my-namespace",
    "repoName": "my-repo"
  },
  "payload": {
    "repoId": "d7nd72k964cv9kub",
    "defaultBranch": "main",
    "description": null,
    "readOnly": false,
    "createdAt": "2026-05-18T15:53:54.864Z",
    "updatedAt": "2026-05-18T15:53:57.737Z",
    "lastPushAt": null,
    "sourceUrl": "https://github.com/example/repo.git",
    "branch": "main"
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2026-05-18T15:53:58.195Z"
  }
}

Repository-level events — Subscribe to the artifacts.repo source with a namespace and repo_name to receive events scoped to a single repository.

pushed

Triggered when commits are pushed to a repository.

Example:

{
  "type": "cf.artifacts.repo.pushed",
  "source": {
    "type": "artifacts.repo",
    "namespace": "my-namespace",
    "repoName": "my-repo"
  },
  "payload": {
    "ref": "refs/heads/main",
    "before": "abc123def456abc123def456abc123def456abc1",
    "after": "def789ghi012def789ghi012def789ghi012def7",
    "commits": [
      {
        "id": "def789ghi012def789ghi012def789ghi012def7",
        "message": "Fix bug in authentication",
        "messageTruncated": false,
        "timestamp": "2025-05-01T02:48:57.000Z",
        "author": {
          "name": "Developer Name",
          "email": "developer@example.com"
        },
        "committer": {
          "name": "Developer Name",
          "email": "developer@example.com"
        },
        "parents": [
          "abc123def456abc123def456abc123def456abc1"
        ]
      }
    ],
    "totalCommitsCount": 1,
    "commitsTruncated": false
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2025-05-01T02:48:57.132Z"
  }
}

cloned

Triggered when a repository is cloned.

Example:

{
  "type": "cf.artifacts.repo.cloned",
  "source": {
    "type": "artifacts.repo",
    "namespace": "my-namespace",
    "repoName": "my-repo"
  },
  "payload": {},
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "0ab4c7b45a39491ba5da2973f3d093a6",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2026-05-18T15:53:51.358Z"
  }
}

fetched

Triggered when updates are fetched from a repository.

Example:

{
  "type": "cf.artifacts.repo.fetched",
  "source": {
    "type": "artifacts.repo",
    "namespace": "my-namespace",
    "repoName": "my-repo"
  },
  "payload": {},
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "0ab4c7b45a39491ba5da2973f3d093a6",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2026-05-18T15:53:51.358Z"
  }
}

token.created

Triggered when a repo-scoped token is created. Includes the token ID, scope, and expiration time.

Example:

{
  "type": "cf.artifacts.repo.token.created",
  "source": {
    "type": "artifacts.repo",
    "namespace": "default",
    "repoName": "token-evt-repo"
  },
  "payload": {
    "tokenId": "7ngdf3ww3u84t33x",
    "scope": "read",
    "expiresAt": "2026-05-20T16:58:14.548Z"
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "0ab4c7b45a39491ba5da2973f3d093a6",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2026-05-20T16:58:14.548Z"
  }
}

token.revoked

Triggered when a repo-scoped token is revoked. Includes the token ID.

Example:

{
  "type": "cf.artifacts.repo.token.revoked",
  "source": {
    "type": "artifacts.repo",
    "namespace": "default",
    "repoName": "token-evt-repo"
  },
  "payload": {
    "tokenId": "7ngdf3ww3u84t33x"
  },
  "metadata": {
    "accountId": "f9f79265f388666de8122cfb508d7776",
    "eventSubscriptionId": "0ab4c7b45a39491ba5da2973f3d093a6",
    "eventSchemaVersion": 1,
    "eventTimestamp": "2026-05-20T16:58:14.548Z"
  }
}

Browser Run

Browser Run crawl events are account-level. A subscription receives events for all crawl jobs in your account and does not require a source-specific selector.

Subscribe to events

Dashboard

Follow the subscription creation procedure and select Browser Run as the source.

Wrangler

To subscribe with Wrangler, run the following command:

npmyarnpnpm

npx wrangler queues subscription create <QUEUE_NAME> --source browserRun --events crawl.started,crawl.updated,crawl.finished
yarn wrangler queues subscription create <QUEUE_NAME> --source browserRun --events crawl.started,crawl.updated,crawl.finished
pnpm wrangler queues subscription create <QUEUE_NAME> --source browserRun --events crawl.started,crawl.updated,crawl.finished

crawl.started

Triggered when a crawl job starts.

Example:

{
    "type": "cf.browserRun.crawl.started",
    "source": {
        "type": "browserRun"
    },
    "payload": {
        "jobId": "crawl-job-1234",
        "createdAt": "2026-09-23T14:00:00.000Z",
        "crawlConfig": {
            "url": "https://example.com",
            "limit": 100,
            "depth": 2,
            "render": true,
            "formats": ["markdown", "html"],
            "source": "all"
        }
    },
    "metadata": {
        "accountId": "00000000000000000000000000000000",
        "eventSubscriptionId": "11111111111111111111111111111111",
        "eventSchemaVersion": 1,
        "eventTimestamp": "2026-09-23T14:00:00.000Z"
    }
}

crawl.updated

Triggered when a crawled URL changes status.

Example:

{
    "type": "cf.browserRun.crawl.updated",
    "source": {
        "type": "browserRun"
    },
    "payload": {
        "jobId": "crawl-job-1234",
        "url": "https://example.com/docs/",
        "crawlStatus": "completed",
        "httpStatus": 200
    },
    "metadata": {
        "accountId": "00000000000000000000000000000000",
        "eventSubscriptionId": "11111111111111111111111111111111",
        "eventSchemaVersion": 1,
        "eventTimestamp": "2026-09-23T14:02:00.000Z"
    }
}

crawl.finished

Triggered when a crawl job finishes.

Example:

{
    "type": "cf.browserRun.crawl.finished",
    "source": {
        "type": "browserRun"
    },
    "payload": {
        "jobId": "crawl-job-1234",
        "jobStatus": "completed",
        "createdAt": "2026-09-23T14:00:00.000Z",
        "finishedAt": "2026-09-23T14:05:00.000Z",
        "total": 3,
        "completed": 2,
        "errored": 1,
        "skipped": 0,
        "crawlConfig": {
            "url": "https://example.com",
            "limit": 100,
            "depth": 2,
            "render": true,
            "formats": ["markdown", "html"],
            "source": "all"
        }
    },
    "metadata": {
        "accountId": "00000000000000000000000000000000",
        "eventSubscriptionId": "11111111111111111111111111111111",
        "eventSchemaVersion": 1,
        "eventTimestamp": "2026-09-23T14:05:00.000Z"
    }
}

Email Sending

Email Sending event subscriptions publish outbound transactional email lifecycle events for messages sent from an enabled sending domain. Each subscription is scoped to one sending domain: either the zone apex, such as example.com, or a verified sending subdomain, such as send.example.com.

Email Routing events, including inbound forwards, replies, Worker-emitted routing events, and deliveries to verified routing recipients, are not published as Email Sending events.

message.delivered

Triggered when the recipient mail server accepts the message.

Example:

{
    "type": "cf.email.sending.message.delivered",
    "source": {
        "type": "email.sending",
        "zoneId": "023e105f4ecef8ad9ca31a8372d0c353",
        "domain": "example.com"
    },
    "payload": {
        "eventId": "0190d0c4-7e9a-7b3c-9f12-1a2b3c4d5e6f",
        "messageId": "0101018f7d0c4d9a-msg-deadbeef",
        "sender": "noreply@example.com",
        "recipient": "user@example.net",
        "subject": "Welcome",
        "terminal": true,
        "delivery": {
            "status": "delivered",
            "provider": "gmail",
            "deliveryTimeMs": 1234,
            "smtpStatusCode": "250",
            "smtpEnhancedStatusCode": "2.0.0",
            "smtpResponse": "250 2.0.0 OK 1714820445 a1b2c3 - gsmtp"
        }
    },
    "metadata": {
        "accountId": "f9f79265f388666de8122cfb508d7776",
        "eventSubscriptionId": "1830c4bb612e43c3af7f4cada31fbf3f",
        "eventSchemaVersion": 1,
        "eventTimestamp": "2026-06-01T02:48:57.132Z"
    }
}