---
title: "Ingest a batch of customer server or CDN request events"
method: POST
path: "/api/v2/crawler-events"
tags: ["Own-site execution"]
---

# Ingest a batch of customer server or CDN request events

`POST /api/v2/crawler-events`

## Request

- Base URL: `https://www.hireeli.io`
- URL: `https://www.hireeli.io/api/v2/crawler-events`
- Auth: HTTP bearer

Requires an Eli API key with write:own-site and a fresh verified domain. Eli classifies known AI crawlers before storage and discards IP addresses, query strings, referrers and full user agents.

## Headers

- `x-eli-tenant` string, uuid

## Request body

- object
  - `events` object[], required
    - `timestamp` string, date-time, required
    - `hostname` string, required
    - `request_path` string, required
    - `request_method` 'GET' | 'HEAD', required
    - `status_code` integer, required
    - `user_agent` string, required

## Response `200`

The accepted AI crawler events were aggregated. No raw personal data was stored.

## Other responses

- `400`: Invalid batch.
- `401`: Credential missing, invalid, expired or revoked.
- `403`: Workspace, role, scope, plan or feature does not permit this operation.
- `409`: A fresh verified website domain is required.
- `413`: The request, event count or aggregate count exceeds the bounded limit.
- `429`: Request or durable protocol cap reached.
- `503`: A required security, billing, cap, audit, evidence or storage check is unavailable. Writes fail closed.

---

[API](https://skmtc.dev/hireeli/apis/eli-api.md) · [All operations](https://skmtc.dev/hireeli/apis/eli-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hireeli/apis/eli-api/revisions/3272729fecd2?raw)
