Logs
Publishing logs for transparency and debugging. Shows detailed records of all post publishing attempts. **Log Data Includes:** - Platform API endpoint called - HTTP status code - Request body (content preview, media URLs) - Response body (platform post ID/URL or error details) - Duration and retry attempts **Retention:** Logs are automatically deleted after 7 days via TTL index.
Get publishing logs
Retrieve publishing logs for all posts. Logs show detailed information about each publishing attempt including API requests, responses, and timing data.
Filtering:
- Filter by status (success, failed, pending, skipped)
- Filter by platform (instagram, twitter, linkedin, etc.)
- Filter by action (publish, retry, rate_limit_pause, etc.)
Retention: Logs are automatically deleted after 7 days.
API key authentication - use your Late API key as a Bearer token
In: header
Query Parameters
Filter by log status
"success" | "failed" | "pending" | "skipped" | "all"Filter by platform
"tiktok" | "instagram" | "facebook" | "youtube" | "linkedin" | "twitter" | "threads" | "pinterest" | "reddit" | "bluesky" | "googlebusiness" | "telegram" | "all"Filter by action type
"publish" | "retry" | "media_upload" | "rate_limit_pause" | "token_refresh" | "cancelled" | "all"Number of days to look back (max 7)
71 <= value <= 7Maximum number of logs to return (max 100)
501 <= value <= 100Number of logs to skip (for pagination)
00 <= valueResponse Body
application/json
application/json
curl -X GET "https://getlate.dev/api/v1/logs"{
"logs": [
{
"_id": "675f1c0a9e2b5af0012ab34cd",
"postId": {
"_id": "65f1c0a9e2b5af0012ab34cd",
"content": "Check out our new feature!",
"status": "published"
},
"userId": "64e1f0a9e2b5af0012ab34de",
"platform": "instagram",
"accountId": "64e1f0a9e2b5af0012ab34ef",
"accountUsername": "@acmecorp",
"action": "publish",
"status": "success",
"statusCode": 200,
"endpoint": "graph.facebook.com/me/media_publish",
"request": {
"contentPreview": "Check out our new feature!",
"mediaCount": 1,
"mediaTypes": [
"image"
],
"mediaUrls": [
"https://storage.getlate.dev/abc123.jpg"
]
},
"response": {
"platformPostId": "17895695668004550",
"platformPostUrl": "https://www.instagram.com/p/ABC123/"
},
"durationMs": 2340,
"attemptNumber": 1,
"createdAt": "2024-11-01T10:00:05Z"
}
],
"pagination": {
"total": 150,
"limit": 50,
"skip": 0,
"pages": 3,
"hasMore": true
}
}{
"error": "Unauthorized"
}Get a single log entry
Retrieve detailed information about a specific log entry, including full request and response bodies for debugging.
API key authentication - use your Late API key as a Bearer token
In: header
Path Parameters
The log entry ID
Response Body
application/json
application/json
application/json
curl -X GET "https://getlate.dev/api/v1/logs/string"{
"log": {
"_id": "675f1c0a9e2b5af0012ab34cd",
"postId": {
"_id": "65f1c0a9e2b5af0012ab34cd",
"content": "Check out our new feature!",
"status": "published",
"scheduledFor": "2024-11-01T10:00:00Z",
"mediaItems": [
{
"type": "image",
"url": "https://storage.getlate.dev/abc123.jpg"
}
]
},
"userId": "64e1f0a9e2b5af0012ab34de",
"platform": "instagram",
"accountId": {
"_id": "64e1f0a9e2b5af0012ab34ef",
"platform": "instagram",
"username": "acmecorp",
"displayName": "Acme Corporation"
},
"accountUsername": "acmecorp",
"action": "publish",
"status": "success",
"statusCode": 200,
"endpoint": "graph.facebook.com/me/media_publish",
"request": {
"contentPreview": "Check out our new feature!",
"mediaCount": 1,
"mediaTypes": [
"image"
],
"mediaUrls": [
"https://storage.getlate.dev/abc123.jpg"
],
"rawBody": "{\"image_url\":\"https://storage.getlate.dev/abc123.jpg\",\"caption\":\"Check out our new feature!\"}"
},
"response": {
"platformPostId": "17895695668004550",
"platformPostUrl": "https://www.instagram.com/p/ABC123/",
"rawBody": "{\"id\":\"17895695668004550\"}"
},
"durationMs": 2340,
"attemptNumber": 1,
"createdAt": "2024-11-01T10:00:05Z"
}
}{
"error": "Unauthorized"
}{
"error": "Not found"
}Get logs for a specific post
Retrieve all publishing logs for a specific post. Shows the complete history of publishing attempts for that post across all platforms.
API key authentication - use your Late API key as a Bearer token
In: header
Path Parameters
The post ID
Query Parameters
Maximum number of logs to return (max 100)
501 <= value <= 100Response Body
application/json
application/json
application/json
curl -X GET "https://getlate.dev/api/v1/posts/string/logs"{
"logs": [
{
"_id": "675f1c0a9e2b5af0012ab34cd",
"postId": "65f1c0a9e2b5af0012ab34cd",
"userId": "64e1f0a9e2b5af0012ab34de",
"platform": "instagram",
"accountUsername": "@acmecorp",
"action": "publish",
"status": "success",
"statusCode": 200,
"durationMs": 2340,
"createdAt": "2024-11-01T10:00:05Z"
},
{
"_id": "675f1c0a9e2b5af0012ab34ce",
"postId": "65f1c0a9e2b5af0012ab34cd",
"userId": "64e1f0a9e2b5af0012ab34de",
"platform": "twitter",
"accountUsername": "@acme",
"action": "publish",
"status": "failed",
"statusCode": 429,
"response": {
"errorMessage": "Rate limit exceeded",
"errorCode": "RATE_LIMITED"
},
"durationMs": 150,
"attemptNumber": 1,
"createdAt": "2024-11-01T10:00:03Z"
}
],
"count": 2,
"postId": "65f1c0a9e2b5af0012ab34cd"
}{
"error": "Unauthorized"
}{
"error": "Not found"
}Webhooks
Configure webhooks to receive real-time notifications about post status changes and account events. **Available Events:** - `post.scheduled` - When a post is successfully scheduled - `post.published` - When a post is successfully published - `post.failed` - When a post fails to publish on all platforms - `post.partial` - When a post publishes to some platforms but fails on others - `account.disconnected` - When a social account is disconnected (token expired/revoked) **Security:** - Optional HMAC-SHA256 signature sent in `X-Late-Signature` header - Configure a secret key in webhook settings to enable signature verification - Custom headers can be added to webhook requests for additional authentication
Users
Next Page