Docs
Social

List social posts

GEThttps://api.norreach.app/v1/social/posts

The workspace's social posts, newest first, each with its version per network (text, media, publish state). Filter by status, by network (posts with a version for it) and by when they are scheduled (scheduled_from / scheduled_to). Posts carry your own text, pictures and videos — there is no operation that writes posts with AI (Nora writes posts in a plan: POST /briefs).

social:readOperation id: list_social_posts
GET/social/posts
curl -X GET "https://api.norreach.app/v1/social/posts" \
  -H "Authorization: Bearer $NORREACH_API_KEY"
List social posts
{
  "object": "list",
  "data": [
    {
      "id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
      "object": "social_post",
      "title": "Winter staffing",
      "status": "scheduled",
      "scheduled_at": "2026-11-12T08:30:00.000Z",
      "timezone": "Europe/Stockholm",
      "labels": [
        "winter"
      ],
      "notes": "",
      "networks": [
        "linkedin",
        "instagram"
      ],
      "variants": [
        {
          "network": "linkedin",
          "network_name": "LinkedIn",
          "content": "Clinics plan their winter staffing now. We place licensed nurses within 48 hours.",
          "media_urls": [],
          "status": "pending",
          "published_at": null,
          "problem": null
        },
        {
          "network": "instagram",
          "network_name": "Instagram",
          "content": "Winter is coming — so are our nurses.",
          "media_urls": [
            "https://media.example.com/social-media/6a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d/2f3e4d5c-6b7a-4c8d-9e0f-1a2b3c4d5e6f.jpg"
          ],
          "status": "pending",
          "published_at": null,
          "problem": null
        }
      ],
      "created_at": "2026-11-05T09:12:33.120Z",
      "updated_at": "2026-11-05T09:20:01.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Authorizations

Authorizationstringheaderrequired

Bearer authentication: send Authorization: Bearer <key>, with an API key or an OAuth access token. The key needs the scope social:read. API keys and scopes

Query parameters

limitintegerquery

Page size (1–200, default 50).

cursorstringquery

The next_cursor of the previous page.

statusenumquery
One of:ideadraftin_reviewscheduledpublishingpublishedfailed
networkenumquery

linkedin, x, instagram, facebook or tiktok.

One of:linkedinxinstagramfacebooktiktok
scheduled_fromstring (date-time)query

Only posts scheduled at or after this time (RFC 3339).

scheduled_tostring (date-time)query

Only posts scheduled at or before this time (RFC 3339).

Response

200application/json— List social posts

object"list"required
dataobject[]required
Show child attributes
data[].idstring (uuid)required

An id (UUID).

data[].object"social_post"required
data[].titlestringrequired

The post's name in the calendar (never published).

data[].statusenumrequired

idea, draft, in_review, scheduled, publishing, published or failed.

One of:ideadraftin_reviewscheduledpublishingpublishedfailed
data[].scheduled_atstring | nullrequired

When it goes out (scheduled posts).

data[].timezonestring | nullrequired

The IANA time zone it was scheduled in, for display.

data[].labelsstring[]required
data[].notesstringrequired

Internal notes (never published).

data[].networksenum[]required
data[].variantsobject[]required
Show child attributes
data[].variants[].networkenumrequired

linkedin, x, instagram, facebook or tiktok.

One of:linkedinxinstagramfacebooktiktok
data[].variants[].network_namestringrequired
data[].variants[].contentstringrequired

The text for this network.

data[].variants[].media_urlsstring[]required

Pictures and videos, in order (public https addresses).

data[].variants[].statusenumrequired

pending (not sent yet), publishing, published or failed.

One of:pendingpublishingpublishedfailed
data[].variants[].published_atstring | nullrequired
data[].variants[].problemstring | nullrequired

When this network's publish failed: a plain sentence (the details are in the app).

data[].created_atstringrequired

RFC 3339 UTC timestamp with milliseconds.

data[].updated_atstringrequired

RFC 3339 UTC timestamp with milliseconds.

has_morebooleanrequired
next_cursorstring | nullrequired

Errors

Errors are application/problem+json with a stable code.

StatusCodeMeaning
400bad_requestThe request couldn't be read.
400unknown_fieldThe request has a field this operation doesn't know.
400invalid_cursorThat cursor doesn't belong to this list.
401unauthorizedA valid API key is required.
403insufficient_scopeThis API key doesn't have the scope this operation needs.
403feature_not_enabledThe API isn't switched on for this workspace.
422validation_failedThe request has invalid fields.
429rate_limitedToo many requests. Slow down and try again.
500server_errorSomething went wrong on our side.
503unavailableThe API isn't available right now. Try again shortly.