OutFlo Public API / Guide

LinkedIn posting

Draft, review, schedule, and publish LinkedIn posts through the Public API.

Overview

Posting endpoints are mounted at /api/public/v1/posting and require posting scopes: posts.read, posts.write, posts.approve, or posts.publish. New API keys and the existing-key scope backfill receive all four by default. Publishing and publication changes normally use a two-step intent flow: prepare an Outflo-issued intent, review its confirmation token, then commit it. POST /publications/direct is the one-call exception for an authorized API-key owner: it creates, records an approval for, and schedules a ready post; it requires both posts.write and posts.publish, and returns an Outflo request ID. Updates and revision restores use expectedVersion or an If-Match ETag to prevent overwriting a newer draft.

Authentication

Send the same x-api-key header with every request.

Manage API keys
Canonical contract

Request and response schemas

Every operation below follows the same contract order. All responses use the standard status, data, and error envelope.

GET/api/public/v1/posting/postsList LinkedIn posts

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

No path parameters.

Query parameters

FieldTypeRequiredDescription
statestringNoFilter by a posting state.
viewenumNoall, drafts, calendar, approvals, or published.
cursorstringNoCursor from the previous page.
limitintegerNoMaximum posts to return.

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesList LinkedIn posts result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Query example
{
  "state": "<string>",
  "view": "<string>",
  "cursor": "<string>",
  "limit": 1
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/postsCreate a LinkedIn post draft

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

No path parameters.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
titlestring | nullNoInternal post title, up to 160 characters.
bodyTextstringNoLinkedIn post text, up to 3,000 characters.
firstCommentTextstring | nullNoOptional first comment to publish with the post, up to 1,250 characters.
settingsobjectNoOptional posting settings.
editorialStateenumNoIDEA, DRAFT, or READY.Example: DRAFT
assetsView assets[] definitionobject[]NoUp to nine completed assets for the current revision.
Object definitions

Object and array fields link to their immediate child schema below.

assets[]

Up to nine completed assets for the current revision.

FieldTypeRequiredDescription
assetIdstring · UUIDYesCompleted asset ID to attach to this revision.
altTextstring | nullNoAccessible description for the asset, up to 1,000 characters.

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesCreate a LinkedIn post draft result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "title": "<string>",
  "bodyText": "<string>",
  "firstCommentText": "<string>",
  "settings": {},
  "editorialState": "DRAFT",
  "assets": [
    {
      "assetId": "00000000-0000-4000-8000-000000000000",
      "altText": "<string>"
    }
  ]
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/publications/directCreate, approve, and schedule a LinkedIn post

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write + posts.publish posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

No path parameters.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
titlestring | nullNoInternal post title, up to 160 characters.
bodyTextstringNoLinkedIn post text, up to 3,000 characters.
firstCommentTextstring | nullNoOptional first comment to publish with the post, up to 1,250 characters.
settingsobjectNoOptional posting settings.
assetsView assets[] definitionobject[]NoUp to nine completed assets for the current revision.
accountIdstring · UUIDYesEligible LinkedIn account that will publish the post.
scheduledForstring · ISO 8601 date-timeYesFuture publication time, including its UTC offset.Example: 2026-09-15T10:00:00+05:30
sourceTimezonestringYesIANA timezone used to schedule the publication.Example: Asia/Kolkata
Object definitions

Object and array fields link to their immediate child schema below.

assets[]

Up to nine completed assets for the current revision.

FieldTypeRequiredDescription
assetIdstring · UUIDYesCompleted asset ID to attach to this revision.
altTextstring | nullNoAccessible description for the asset, up to 1,000 characters.

Success response · 202

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 202.
dataobject | array | nullYesCreated post, approval, publication, and the Outflo-issued requestId (the publication ID) for later management.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "title": "<string>",
  "bodyText": "<string>",
  "firstCommentText": "<string>",
  "settings": {},
  "assets": [
    {
      "assetId": "00000000-0000-4000-8000-000000000000",
      "altText": "<string>"
    }
  ],
  "accountId": "00000000-0000-4000-8000-000000000000",
  "scheduledFor": "2026-09-15T10:00:00+05:30",
  "sourceTimezone": "Asia/Kolkata"
}
Standard success envelope · 202
{
  "status": 202,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/v1/posting/posts/{postId}Get a LinkedIn post

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

FieldTypeRequiredDescription
postIdstring · UUIDYespostId path identifier.

Query parameters

No query parameters.

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesGet a LinkedIn post result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request example
{
  "headers": {
    "x-api-key": "<string>"
  }
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
PATCH/api/public/v1/posting/posts/{postId}Update a LinkedIn post

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
postIdstring · UUIDYespostId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
titlestring | nullNoInternal post title, up to 160 characters.
bodyTextstringNoLinkedIn post text, up to 3,000 characters.
firstCommentTextstring | nullNoOptional first comment to publish with the post, up to 1,250 characters.
settingsobjectNoOptional posting settings.
editorialStateenumNoIDEA, DRAFT, or READY.Example: DRAFT
assetsView assets[] definitionobject[]NoUp to nine completed assets for the current revision.
expectedVersionintegerNoCurrent post row version. Required for updates and restores; alternatively send the same value as a strong If-Match ETag.Example: 1
checkpointReasonenumNoMANUAL_SAVE, SUBMITTED, or RESTORED.Example: MANUAL_SAVE
Object definitions

Object and array fields link to their immediate child schema below.

assets[]

Up to nine completed assets for the current revision.

FieldTypeRequiredDescription
assetIdstring · UUIDYesCompleted asset ID to attach to this revision.
altTextstring | nullNoAccessible description for the asset, up to 1,000 characters.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesUpdate a LinkedIn post result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "title": "<string>",
  "bodyText": "<string>",
  "firstCommentText": "<string>",
  "settings": {},
  "editorialState": "DRAFT",
  "assets": [
    {
      "assetId": "00000000-0000-4000-8000-000000000000",
      "altText": "<string>"
    }
  ],
  "expectedVersion": 1,
  "checkpointReason": "MANUAL_SAVE"
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/v1/posting/posts/{postId}/revisionsList post revisions

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

FieldTypeRequiredDescription
postIdstring · UUIDYespostId path identifier.

Query parameters

No query parameters.

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesList post revisions result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request example
{
  "headers": {
    "x-api-key": "<string>"
  }
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/posts/{postId}/revisions/{revisionId}/restoreRestore a post revision

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
postIdstring · UUIDYespostId path identifier.
revisionIdstring · UUIDYesrevisionId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
expectedVersionintegerNoCurrent post row version. Required for updates and restores; alternatively send the same value as a strong If-Match ETag.Example: 1

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesRestore a post revision result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "expectedVersion": 1
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/assets/upload-intentsCreate an asset upload intent

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

No path parameters.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
fileNamestringYesOriginal filename, from 1 to 255 characters.
mimeTypeenumYesimage/jpeg, image/png, image/gif, video/mp4, or application/pdf.
bytesintegerYesFile size in bytes; maximum 52,428,800 (50 MiB).
checksumstringNoOptional file checksum, up to 128 characters.

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesCreate an asset upload intent result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "fileName": "<string>",
  "mimeType": "<string>",
  "bytes": 1,
  "checksum": "<string>"
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/assets/{assetId}/completeComplete an asset upload

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
assetIdstring · UUIDYesassetId path identifier.

Query parameters

No query parameters.

Request body · application/json

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesComplete an asset upload result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request example
{
  "headers": {
    "x-api-key": "<string>",
    "Content-Type": "application/json"
  }
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/v1/posting/assets/{assetId}/downloadGet an asset download URL

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

FieldTypeRequiredDescription
assetIdstring · UUIDYesassetId path identifier.

Query parameters

No query parameters.

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesGet an asset download URL result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request example
{
  "headers": {
    "x-api-key": "<string>"
  }
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/v1/posting/posts/{postId}/commentsList post comments and feedback

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

FieldTypeRequiredDescription
postIdstring · UUIDYespostId path identifier.

Query parameters

FieldTypeRequiredDescription
revisionIdstring · UUIDNoRestrict threads to one revision.
cursorstringNoCursor from the previous page.
limitintegerNoMaximum threads to return.
includeResolvedbooleanNoInclude resolved comment threads.Example: false

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesList post comments and feedback result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Query example
{
  "revisionId": "00000000-0000-4000-8000-000000000000",
  "cursor": "<string>",
  "limit": 1,
  "includeResolved": false
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/posts/{postId}/commentsAdd a post comment or feedback thread

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
postIdstring · UUIDYespostId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
revisionIdstring · UUIDNoRevision the thread refers to. Defaults to the current revision.
threadTypeenumNoNOTE or FEEDBACK.Example: FEEDBACK
bodystringYesComment text, from 1 to 5,000 characters.
mentionsstring[] · UUIDNoOptional user IDs to mention; maximum 50.

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesAdd a post comment or feedback thread result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "revisionId": "00000000-0000-4000-8000-000000000000",
  "threadType": "FEEDBACK",
  "body": "<string>",
  "mentions": []
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/comments/{commentId}/repliesReply to a post comment

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
commentIdstring · UUIDYescommentId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
bodystringYesReply text, from 1 to 5,000 characters.
mentionsstring[] · UUIDNoOptional user IDs to mention; maximum 50.

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesReply to a post comment result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "body": "<string>",
  "mentions": []
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/comment-threads/{threadId}/resolveResolve a post comment thread

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
threadIdstring · UUIDYesthreadId path identifier.

Query parameters

No query parameters.

Request body · application/json

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesResolve a post comment thread result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request example
{
  "headers": {
    "x-api-key": "<string>",
    "Content-Type": "application/json"
  }
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/posts/{postId}/approval-requestsRequest approval for a post

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.write posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
postIdstring · UUIDYespostId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
revisionIdstring · UUIDNoRevision to submit. Defaults to the current revision.
reviewerUserIdstring · UUIDNoOptional user assigned to review the request.

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesRequest approval for a post result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "revisionId": "00000000-0000-4000-8000-000000000000",
  "reviewerUserId": "00000000-0000-4000-8000-000000000000"
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/approval-requests/{requestId}/approveApprove a post approval request

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.approve posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
requestIdstring · UUIDYesrequestId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
commentstringNoOptional approval comment, up to 5,000 characters.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesApprove a post approval request result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "comment": "<string>"
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/approval-requests/{requestId}/request-changesRequest changes to a post approval request

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.approve posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
requestIdstring · UUIDYesrequestId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
commentstringNoOptional change-request comment, up to 5,000 characters.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesRequest changes to a post approval request result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "comment": "<string>"
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/posts/{postId}/publication-intentsPrepare a publication intent

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.publish posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
postIdstring · UUIDYespostId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
accountIdstring · UUIDYesEligible LinkedIn account that will publish the post.
revisionIdstring · UUIDNoRevision to publish. Defaults to the current revision.
scheduledForstring · ISO 8601 date-timeYesScheduled publication time, including its UTC offset.Example: 2026-08-06T09:00:00+05:30
sourceTimezonestringYesIANA timezone used to schedule the publication.Example: Asia/Kolkata

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesPrepare a publication intent result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "accountId": "00000000-0000-4000-8000-000000000000",
  "revisionId": "00000000-0000-4000-8000-000000000000",
  "scheduledFor": "2026-08-06T09:00:00+05:30",
  "sourceTimezone": "Asia/Kolkata"
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/publication-intents/{intentId}/commitCommit a publication intent

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.publish posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
intentIdstring · UUIDYesintentId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
confirmationTokenstringYesToken returned by the corresponding prepare-intent operation.

Success response · 202

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 202.
dataobject | array | nullYesCommit a publication intent result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "confirmationToken": "<string>"
}
Standard success envelope · 202
{
  "status": 202,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/publications/{publicationId}/action-intentsPrepare a publication action

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.publish posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
publicationIdstring · UUIDYespublicationId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
actionenumYesRESCHEDULE, CANCEL, or RETRY.
scheduledForstring · ISO 8601 date-timeaction = RESCHEDULERequired when action is RESCHEDULE.Example: 2026-08-07T09:00:00+05:30
sourceTimezonestringaction = RESCHEDULERequired when action is RESCHEDULE.Example: Asia/Kolkata
expectedVersionintegerYesCurrent publication row version.Example: 1

Success response · 201

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 201.
dataobject | array | nullYesPrepare a publication action result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "action": "<string>",
  "scheduledFor": "2026-08-07T09:00:00+05:30",
  "sourceTimezone": "Asia/Kolkata",
  "expectedVersion": 1
}
Standard success envelope · 201
{
  "status": 201,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
POST/api/public/v1/posting/publication-action-intents/{intentId}/commitCommit a publication action

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.publish posting scope.
Content-TypestringYesMust be application/json.Example: application/json

Path parameters

FieldTypeRequiredDescription
intentIdstring · UUIDYesintentId path identifier.

Query parameters

No query parameters.

Request body · application/json

FieldTypeRequiredDescription
confirmationTokenstringYesToken returned by the corresponding prepare-intent operation.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesCommit a publication action result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request body example
{
  "confirmationToken": "<string>"
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/v1/posting/accountsList eligible LinkedIn posting accounts

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

No path parameters.

Query parameters

No query parameters.

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesList eligible LinkedIn posting accounts result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request example
{
  "headers": {
    "x-api-key": "<string>"
  }
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/v1/posting/usageGet LinkedIn posting usage

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

No path parameters.

Query parameters

No query parameters.

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesGet LinkedIn posting usage result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request example
{
  "headers": {
    "x-api-key": "<string>"
  }
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/v1/posting/entitlementGet LinkedIn posting entitlement

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

No path parameters.

Query parameters

No query parameters.

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesGet LinkedIn posting entitlement result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Request example
{
  "headers": {
    "x-api-key": "<string>"
  }
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}
GET/api/public/v1/posting/calendarGet the LinkedIn posting calendar

Headers

FieldTypeRequiredDescription
x-api-keystringYesWorkspace API key with the posts.read posting scope.

Path parameters

No path parameters.

Query parameters

FieldTypeRequiredDescription
fromstring · ISO 8601 date-timeYesStart of the calendar range.
tostring · ISO 8601 date-timeYesEnd of the calendar range.
accountIdstring · UUIDNoRestrict results to one LinkedIn account.
statesstring · CSVNoComma-separated publication states.
cursorstringNoCursor for scheduled publications.
unscheduledCursorstringNoCursor for unscheduled drafts.
limitintegerNoMaximum items per result set.

Request body

No request body.

Success response · 200

FieldTypeRequiredDescription
statusintegerYesHTTP status mirrored in the JSON body. Success: 200.
dataobject | array | nullYesGet the LinkedIn posting calendar result. The exact data fields depend on the selected resource.
errorstring | nullYesNull on success; a developer-readable message on failure.
Query example
{
  "from": "<string>",
  "to": "<string>",
  "accountId": "00000000-0000-4000-8000-000000000000",
  "states": "<string>",
  "cursor": "<string>",
  "unscheduledCursor": "<string>",
  "limit": 1
}
Standard success envelope · 200
{
  "status": 200,
  "data": "<endpoint-specific response data>",
  "error": null
}
Standard error envelope
{
  "status": 400,
  "data": null,
  "error": "Developer-readable error message"
}