NavenDocs
NavenDocs
Introduction
OverviewQuickstartReliable ConsumersAPI Reference
Back to Naven Network
Events

API Reference

Event Queue, Schedule, lease, and replay endpoints.

Base URL and authentication

https://api.naven.network

Every Events request requires a server-side Project API key:

Authorization: Bearer naven_api_...
Content-Type: application/json

Responses use:

{
  "code": 0,
  "message": "ok",
  "data": {}
}

Event Queues

MethodPathDescription
POST/v1/event-queuesCreate a Queue
GET/v1/event-queuesList Project Queues
POST/v1/event-queues/:queueId/claimLong-poll and lease one Event
GET/v1/event-queues/:queueId/eventsList Queue Events

Create Queue

FieldRequiredLimits
nameyes1–100 characters; letters, numbers, ., _, and -
defaultLeaseSecondsno30–3600; default 900
maxAttemptsno1–100; default 10

Claim

FieldRequiredLimits
leaseSecondsno30–3600; defaults to the Queue setting
waitSecondsno0–20; default 0

The response data is null when no Event is available. A successful claim increments attemptCount.

List Events

Query parameters:

ParameterValues
statusavailable, leased, completed, failed, or expired
limit1–100; default 50
cursorEvent ID returned as nextCursor

Schedules

MethodPathDescription
POST/v1/schedulesCreate a Schedule
GET/v1/schedulesList Project Schedules
GET/v1/schedules/:scheduleIdGet a Schedule
PATCH/v1/schedules/:scheduleIdUpdate mutable configuration
DELETE/v1/schedules/:scheduleIdDelete a Schedule
POST/v1/schedules/:scheduleId/pausePause future invocations
POST/v1/schedules/:scheduleId/resumeResume invocations
POST/v1/schedules/:scheduleId/triggerCreate an immediate manual Event

Create Schedule

FieldRequiredLimits
queueIdyesQueue UUID in the same Project
externalIdyes1–200 characters; letters, numbers, ., _, and -
nameyes1–200 characters
descriptionnoMaximum 2000 characters
scheduleyesCron, interval, or one-time definition
payloadnoJSON object up to 64 KiB
overlapPolicynoqueue, skip, latest, or parallel
maxConcurrencyno1–100; default 1
maxEventAgeSecondsno60–86400; default 86400

The queueId and externalId cannot be changed after creation.

Schedule synchronization is asynchronous. Inspect sync.status, sync.syncedRevision, and sync.lastError after create, update, pause, resume, or delete.

Event lease operations

MethodPathDescription
POST/v1/events/:eventId/heartbeatExtend an active lease
POST/v1/events/:eventId/ackMark leased work completed
POST/v1/events/:eventId/nackRelease or fail leased work
POST/v1/events/:eventId/replayReplay a failed or expired Event

The lease token is secret and valid only while the current lease remains active.

Heartbeat

{
  "leaseToken": "...",
  "leaseSeconds": 900
}

Acknowledge

{
  "leaseToken": "..."
}

Negative acknowledgement

{
  "leaseToken": "...",
  "error": "Exchange temporarily unavailable",
  "retryDelaySeconds": 30
}

retryDelaySeconds may be 0–3600. When maxAttempts is reached, the Event moves to failed.

Replay

Replay is accepted only for failed or expired Events. It creates a new manual Event with a new ID and current scheduledAt; it does not mutate the original Event.

Common HTTP responses

HTTPMeaning
400Input or schedule expression is invalid
401Project API key is missing, expired, or revoked
404Queue or Schedule does not exist in the Project
409Lease is invalid/expired, state conflicts, or replay is not allowed
500Unexpected infrastructure failure

Reliable Consumers

Build idempotent workers for long-running and trading workloads.

Overview

Accept x402 payments through Naven-managed Payment Intents.

On this page

Base URL and authenticationEvent QueuesCreate QueueClaimList EventsSchedulesCreate ScheduleEvent lease operationsHeartbeatAcknowledgeNegative acknowledgementReplayCommon HTTP responses