GET
/
v1
/
teams
/
{teamId}
/
posts
TypeScript client
import { OctosparkClient } from '@octospark/sdk'

const client = new OctosparkClient({
  token: process.env.OCTOSPARK_TOKEN
})

const response = await client.social.listPosts({
  teamId: process.env.OCTOSPARK_TEAM_ID ?? "teamId",
  query: {},
})
{
  "data": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "title": "<string>",
      "text": "<string>",
      "assetIds": [
        "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      ],
      "assetTags": [
        "<string>"
      ],
      "userTags": [
        {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "name": "<string>",
          "colour": "<string>"
        }
      ],
      "contentPayloadId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "latestScheduledPost": {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "teamId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "contentItemId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "socialAccountId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "scheduledAt": "<string>",
        "timezone": "Europe/London",
        "platformPostId": "<string>",
        "platformSettings": {},
        "publishResults": {},
        "providerPublishState": {
          "requiresPolling": true,
          "publishId": "<string>",
          "platformPostId": "<string>",
          "providerStatus": "<string>",
          "pollingReason": "<string>",
          "uploadProgress": {
            "nextByteStart": 123,
            "uploadSize": 123
          },
          "failureCode": "<string>"
        },
        "errorCode": "<string>",
        "errorMessage": "<string>",
        "workflowId": "<string>",
        "workflowRunId": "<string>",
        "createdAt": "<string>",
        "updatedAt": "<string>"
      },
      "scheduledDestinationAccountIds": [
        "3c90c3cc-0d44-4b50-8888-8dd25736052a"
      ],
      "createdAt": "<string>",
      "updatedAt": "<string>",
      "postInput": {
        "kind": "atomic",
        "text": "<string>",
        "attachments": [
          {
            "kind": "media",
            "asset": {
              "assetId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
              "mimeType": "<string>",
              "byteSize": 123,
              "width": 123,
              "height": 123,
              "durationSeconds": 123,
              "thumbnailUrl": "<string>",
              "altText": "<string>"
            },
            "altText": "<string>"
          }
        ]
      },
      "postPublishActions": {
        "firstComment": {
          "text": "<string>",
          "mediaIds": [
            "3c90c3cc-0d44-4b50-8888-8dd25736052a"
          ]
        },
        "engagementCommentTrigger": {
          "likeThreshold": 2,
          "windowHours": 360,
          "comment": {
            "text": "<string>",
            "mediaIds": [
              "3c90c3cc-0d44-4b50-8888-8dd25736052a"
            ]
          }
        },
        "repostAfter": {
          "offsetDays": 15,
          "text": "<string>"
        },
        "recurrenceIntervalDays": 183,
        "recurrenceEndsAt": "<string>"
      }
    }
  ],
  "total": 123,
  "nextCursor": "<string>",
  "prevCursor": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

teamId
string
required

Team (workspace) id (UUID). Discover ids via the list teams endpoint or the agent context.

Query Parameters

cursor
string

Opaque pagination cursor from the previous page response (nextCursor/prevCursor); omit to start at the first page.

limit
string
default:25

Page size as a positive integer string; defaults to 25, capped at 100.

Examples:

"25"

"100"

sortBy
string

Field to sort by; each endpoint accepts its own allowlist and defaults to createdAt.

Example:

"createdAt"

sortOrder
enum<string>
default:desc

Sort direction: asc or desc; defaults to desc.

Available options:
asc,
desc
status
enum<string>

Filter to posts with this editorial status.

Available options:
idea,
proposed_render,
draft,
approved,
rejected,
archived,
deleted
Example:

"draft"

provider
enum<string>

Filter to posts whose latest scheduled post targets this provider.

Available options:
x,
tiktok,
instagram,
facebook,
youtube,
linkedin,
threads
Example:

"x"

scheduledFrom
string

Only include posts scheduled at or after this ISO 8601 timestamp.

Example:

"2026-06-01T00:00:00Z"

scheduledTo
string

Only include posts scheduled at or before this ISO 8601 timestamp.

Example:

"2026-06-30T23:59:59Z"

filter[q]
string

Case-insensitive free-text search over the post title and latest payload text.

Example:

"product launch"

filter[postType]
enum<string>

Filter to posts of this content format.

Available options:
text_post,
text_image,
text_video,
carousel
Example:

"text_image"

filter[tab]
enum<string>

Queue/Drafts/Sent tab over the derived latest-scheduled-post status: queue = scheduled/publishing/failed, sent = published, drafts = never scheduled or a draft/cancelled latest scheduled post.

Available options:
queue,
drafts,
sent
Example:

"queue"

filter[tagIds]
string

CSV of user-tag UUIDs from the post_tags registry; matches posts assigned ANY of these tags. Unknown or foreign ids are ignored.

Example:

"4a1f4e93-0d8b-4a6c-9a44-1e8b1f2c3d4e,7b2c5f81-3e9d-4b7a-8c55-2f9c2a3b4c5d"

filter[tags]
string

Comma-separated AI tags; matches posts whose assets carry any of the listed tags (OR).

Example:

"launch,product"

filter[category]
string

Comma-separated AI content categories; matches posts in any of the listed categories (OR).

Example:

"education"

filter[purpose]
string

Comma-separated AI purposes; matches posts whose assets carry any of the listed purposes (OR).

Example:

"promotion"

filter[emotion]
string

Comma-separated AI emotions; matches posts tagged with any of the listed emotions (OR).

Example:

"joy"

filter[mediaType]
string

Comma-separated media types; each value one of: image, video, audio, gif, document.

Example:

"image,video"

filter[enrichmentStatus]
string

Comma-separated AI enrichment statuses; each value one of: pending, processing, completed, failed.

Example:

"completed"

Response

Success

data
object[]
required
total
number
required
nextCursor
string | null
required
prevCursor
string | null
required