Conventions
Conventions
Shared conventions across Tasks and Lumen APIs.
Base URLs
Tasks API
https://api.projecthollow.comLumen API
https://projecthollow.com/monitoring/ingestRequest & Response Formatting
All endpoints accept and return JSON payloads. Include Content-Type: application/json on all requests carrying a body.
Idempotency Guarantees
Supply an Idempotency-Key header or an idempotencyKey field in the request body to prevent duplicate processing. Re-submitting a request with an existing idempotency key returns the original record with {"duplicate": true}.
Error Standard
All error responses adhere to a standard error structure:
{ "error": { "code": "RATE_LIMITED", "status": 429, "message": "Rate limit exceeded" } }400
MISSING_TEXT, MISSING_FIELD, MISSING_ENTRIES, MISSING_POINTS, INVALID_FIELD, INVALID_REQUEST, TOO_MANY_ENTRIES, TOO_MANY_POINTS401
MISSING_AUTH_HEADER, INVALID_KEY_FORMAT, INVALID_KEY, KEY_REVOKED403
ACCOUNT_NOT_APPROVED, FORBIDDEN404
NOT_FOUND: target endpoint or record does not exist.409
CONFLICT: concurrent calls shared an idempotency key before execution finished.413
PAYLOAD_TOO_LARGE: request body exceeds maximum 256 KiB size limit.429
RATE_LIMITED or QUOTA_EXCEEDED.Rate Limits & Daily Quotas
Tasks API
120 requests per minute per key, up to 2,000 tasks per day per key.
Lumen API
600 requests per minute per key, up to 100,000 ingested events per day per key (logs and metrics combined).