Events
Retrieve an event
One event, with its data.object as the API returns it now, so its output links are fresh.
Needs an API key with the generations:read scope.
GET
https://api.tryleap.ai
/
v1
/
events
/
{id}
Retrieve an event
curl --request GET \
--url https://api.tryleap.ai/v1/events/{id} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.tryleap.ai/v1/events/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.tryleap.ai/v1/events/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "evt_9Wc3Yb1Dq7Hm2Vx4Lr8Kp6Tn",
"object": "event",
"type": "generation.succeeded",
"api_version": "2026-10-04",
"created_at": "2026-10-04T18:24:12.031Z",
"data": {
"object": {
"id": "gen_7Hq2mVx9Lr4Kp8Tn3Wc6Yb1D",
"object": "generation",
"model": "google/veo-3.1-fast",
"modality": "video",
"status": "succeeded",
"provider": "gateway",
"revision": "2026-10-02",
"input": {
"prompt": "A heron lands on a still lake at dawn",
"aspect_ratio": "16:9",
"n": 1,
"duration": 4,
"resolution": "1080p",
"audio": true
},
"output": [
{
"type": "video",
"url": "https://api.tryleap.ai/files/eyJrIjoibWVkaWEvb3V0cHV0cy9nZW5fN0hxMm1WeDlMcjRLcDhUbjNXYzZZYjFEIn0",
"expires_at": "2026-10-05T18:24:12.004Z",
"content_type": "video/mp4",
"width": 1920,
"height": 1080,
"poster": {
"url": "https://api.tryleap.ai/files/eyJrIjoibWVkaWEvb3V0cHV0cy9nZW5fN0hxMm1WeDlMcjRLcDhUbjNXYzZZYjFEIn0",
"expires_at": "2026-10-05T18:24:12.004Z",
"width": 720,
"height": 405
}
}
],
"error": null,
"usage": {
"cost_usd": "0.66"
},
"source": "api",
"batch_id": null,
"created_at": "2026-10-04T18:22:41.512Z",
"started_at": "2026-10-04T18:22:42.090Z",
"completed_at": "2026-10-04T18:24:11.877Z"
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "conflicting_credentials",
"message": "Send one API key.",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}{
"error": {
"type": "authentication_error",
"code": "authentication_required",
"message": "Authentication is required.",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}{
"error": {
"type": "permission_error",
"code": "permission_denied",
"message": "Permission denied.",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "That event does not exist.",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Requests",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}Authorizations
ApiKeyBearer
Your workspace API key, leap_.... Create one at https://app.tryleap.ai/go/api, and keep it on your server.
Path Parameters
The event's ID, evt_....
Response
The event.
Something that happened in your workspace, kept 30 days.
The event's ID, evt_..., also sent as the webhook-id header. Skip any you've handled.
Allowed value:
"event"What happened.
Available options:
generation.succeeded, generation.failed, generation.canceled, batch.completed, webhook.test The version of this payload's shape.
When it happened.
Pattern:
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$Show child attributes
Show child attributes
Last modified on October 4, 2026
⌘I
Retrieve an event
curl --request GET \
--url https://api.tryleap.ai/v1/events/{id} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.tryleap.ai/v1/events/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.tryleap.ai/v1/events/{id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "evt_9Wc3Yb1Dq7Hm2Vx4Lr8Kp6Tn",
"object": "event",
"type": "generation.succeeded",
"api_version": "2026-10-04",
"created_at": "2026-10-04T18:24:12.031Z",
"data": {
"object": {
"id": "gen_7Hq2mVx9Lr4Kp8Tn3Wc6Yb1D",
"object": "generation",
"model": "google/veo-3.1-fast",
"modality": "video",
"status": "succeeded",
"provider": "gateway",
"revision": "2026-10-02",
"input": {
"prompt": "A heron lands on a still lake at dawn",
"aspect_ratio": "16:9",
"n": 1,
"duration": 4,
"resolution": "1080p",
"audio": true
},
"output": [
{
"type": "video",
"url": "https://api.tryleap.ai/files/eyJrIjoibWVkaWEvb3V0cHV0cy9nZW5fN0hxMm1WeDlMcjRLcDhUbjNXYzZZYjFEIn0",
"expires_at": "2026-10-05T18:24:12.004Z",
"content_type": "video/mp4",
"width": 1920,
"height": 1080,
"poster": {
"url": "https://api.tryleap.ai/files/eyJrIjoibWVkaWEvb3V0cHV0cy9nZW5fN0hxMm1WeDlMcjRLcDhUbjNXYzZZYjFEIn0",
"expires_at": "2026-10-05T18:24:12.004Z",
"width": 720,
"height": 405
}
}
],
"error": null,
"usage": {
"cost_usd": "0.66"
},
"source": "api",
"batch_id": null,
"created_at": "2026-10-04T18:22:41.512Z",
"started_at": "2026-10-04T18:22:42.090Z",
"completed_at": "2026-10-04T18:24:11.877Z"
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "conflicting_credentials",
"message": "Send one API key.",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}{
"error": {
"type": "authentication_error",
"code": "authentication_required",
"message": "Authentication is required.",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}{
"error": {
"type": "permission_error",
"code": "permission_denied",
"message": "Permission denied.",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_not_found",
"message": "That event does not exist.",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}{
"error": {
"type": "rate_limit_error",
"code": "rate_limit_exceeded",
"message": "Too Many Requests",
"param": null,
"doc_url": null,
"request_id": "req_8kQ2vX9mR4tL6nB1cW3yZ5aD"
}
}