API Reference
Project Logs
The same logs as the Logs page of your dashboard, for your own monitoring. projectGid is your Project ID; an access key can only read the logs of the project it belongs to.
Log types
Each log carries a type, so you can react to one kind of event without parsing message. The main ones:
| Type | Severity | When |
|---|---|---|
conversation.enqueued | INFO | A conversation was accepted for processing. |
conversation.enqueue.error | WARN | An enqueue request was accepted but part of it could not be applied, for example an unknown instruction name. |
content_creation.get_profile.error | ERROR | Your Profile Endpoint could not be reached or returned an error. |
content_creation.conversation.profile_not_found | ERROR | Your Profile Endpoint did not return the requested profile. |
content_creation.get_chat_history.error | ERROR | Your Chat History Endpoint could not be reached or returned an error. |
content_creation.chat_model.refusal | WARN | The conversation was rejected and no reply was generated. |
project.content_creation.configuration.error | ERROR | The project has no content creation configuration. |
content_creation.error | ERROR | The conversation could not be processed for another reason. |
webhook.delivered | INFO | An event was delivered to your Incoming Content Endpoint. |
webhook.failed | ERROR | An event could not be delivered to your endpoint. |
New types may be added: ignore the ones you don't handle rather than failing on them.
Reading every error
Pass severity=ERROR and keep the startTime, endTime and sortOrder of your first request. While the response's nextToken is not null, send it back on the next request to get the following page:
curl "https://api.dumgum.com/cs/v1/projects/proj_zqRs5XdUtmI0oypAPzKQ3/logs?severity=ERROR&startTime=2026-09-30T00:00:00Z&limit=100" \
-H "Authorization: Bearer $ACCESS_KEY"A nextToken is valid for one hour. After that, the request fails with a 400 and you have to start the pagination again without it.
/cs/v1/projects/{projectGid}/logsEvents recorded for a project — webhook deliveries and failures, conversations that could not be processed, and so on — over a time range, newest first by default.
Use severity=ERROR to only retrieve errors.
Results are paginated: when nextToken is not null, pass it back to get the next page. A nextToken keeps the time range, severity and sortOrder of the request that started the pagination, so you can keep paging with the defaults (the last hour) without the window moving. A nextToken is valid for one hour; after that the request fails with a 400 and the pagination has to start again. One pagination reaches at most the 100,000 logs nearest its start: narrow the time range to read further.
Logs are kept for 30 days. Each log is dated when its event happened, but only becomes readable a couple of minutes later. If you poll, make each time range overlap the previous one by a few minutes and skip the ids you have already seen.
Open interactive API explorer ↗ · Download OpenAPI
Authentication
bearerAuth
Bearer authentication header of the form Bearer <token>, where <token> is an access key.
Example: Authorization: Bearer sk-proj-XXXXXXXXX
Type: bearer
Parameters
projectGid path · stringrequiredThe project to read. When you authenticate with an access key, this must be the project that key belongs to.
Type:stringstartTime query · stringStart of the time range, as an ISO 8601 date-time (e.g. 2026-09-24T09:00:00Z). Defaults to one hour before endTime.
stringendTime query · stringEnd of the time range, as an ISO 8601 date-time. Defaults to now.
Type:stringlimit query · integerNumber of logs per page, from 1 to 100.
Type:integerformat: "int32" default: 25severity query · stringOnly return logs of this severity.
Type:stringAllowed values: "INFO", "WARN", "ERROR"
nextToken query · stringOpaque cursor from a previous response's nextToken, to fetch the following page. Valid for one hour.
stringsortOrder query · stringdesc returns the newest logs first, asc the oldest first.
stringdefault: "desc"Allowed values: "asc", "desc"
Responses
#200 Response
OK
#*/*
A page of project logs.
Type:object#logs arrayrequired
The logs of this page, in the requested order.
Type:arraynextToken stringPass it back as nextToken to get the following page; null on the last page.
stringIllustrative example
{
"logs": [
{
"id": "plog_01J8Z3Q4X5Y6Z7A8B9C0D1E2F3",
"severity": "INFO",
"type": "webhook.failed",
"date": "2026-09-24T10:15:30.123Z",
"message": "<string>",
"data": {}
}
],
"nextToken": "<string>"
}