1. Posts
swonkie.dev
  • Introduction
  • Quick Start
  • Changelog
  • Social Networks
    • Facebook
    • Instagram
    • LinkedIn
    • TikTok
    • Threads
  • Profiles
    • My Profiles
      GET
    • Competitors
      GET
  • Insights
    • Getting Started
    • My Profile Insights
      GET
    • My Profile Insights Posts
      GET
    • Competitor Insights
      GET
    • Competitor Insights Posts
      GET
  • Posts
    • Getting Started
    • List Posts
      GET
    • Get a Post
      GET
    • Create a Post
      POST
    • Update a Post
      PUT
    • Validate a Post
      GET
    • Delete a Post
      DELETE
    • Change Post Stage
      PATCH
  • Labels
    • Getting Started
    • List Labels
      GET
    • Create a Label
      POST
  • Media
    • Get a Media
    • Create a Media
    • Upload File to Media
    • Confirm Uploaded Media
    • Delete a Media
  • Examples
    • Publish
Back to Home
Back to Home
Login
  1. Posts

Create a Post

POST
/posts
Creates a new post in your workspace. This endpoint allows you to create posts across multiple social networks with customizable content, media, scheduling, and network-specific settings. Posts can be created as ideas (without a publish date) or drafts (with a scheduled publish date). The post will be validated before creation to ensure all content meets the requirements of the selected social networks.

Notes#

Posts created without publishAt will have stage IDEA.
Posts created with publishAt will have stage DRAFT.
The type field determines which other fields are required or supported (e.g., LINK posts require links, MEDIA posts require medias).
Media files must be uploaded first using the POST /media endpoint to obtain mediaLibId values.
Profile IDs must belong to your workspace and be valid for publishing.
The post will be validated before creation - if validation fails, you'll receive a 400 Bad Request with details about what needs to be corrected.
Network-specific settings (facebook, instagram, linkedIn, tiktok) are only applied to posts targeting those networks.
Captions, media, and links can be network-specific by setting the net property, or apply to all networks by leaving it null.
Facebook carousels require at least 2 items to be valid.
Different post types support different features - for example, STORY posts don't support captions on most networks.

Request

Header Params

Body Params application/jsonRequired

Examples

Responses

🟢201
application/json
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api.swonkie.dev/v2/posts' \
--header 'X-API-ID: {{apiId}}' \
--header 'X-API-KEY: {{apiKey}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": "MEDIA",
    "profileIds": [
        "Tjg3YjhSU2xZREFqM1RqOTRnZTdpZz09"
    ],
    "publishAt": "2026-01-31T11:30:00.000Z",
    "captions": [
        {
            "plainText": "A post caption!",
            "firstComment": {
                "plainText": "First comment gets a fix."
            },
            "net": "facebook"
        }
    ],
    "medias": [
        {
            "mediaFiles": [
                {
                    "mediaLibId": "RDlHZERwbitlK1lmQU0xNW0zWUhWZz09"
                }
            ],
            "net": "facebook"
        }
    ],
    "links": [
        {
            "link": "https://brinfer.com",
            "linkTitle": "Brinfer - Influencer Marketing",
            "linkDescription": "Brinfer is the best influencer marketing marketplace platform!",
            "mediaLibId": "RDlHZERwbitlK1lmQU0xNW0zWUhWZz09",
            "net": "facebook"
        }
    ],
    "briefing": {
        "markdown": "# A markdown briefing here!"
    },
    "facebook": {
        "carousels": [
            {
                "link": "https://brinfer.com",
                "title": "Brinfer - Influencer Marketing",
                "description": "Brinfer is the best influencer marketing marketplace platform!",
                "mediaLibId": "RDlHZERwbitlK1lmQU0xNW0zWUhWZz09",
                "callToAction": "NO_BUTTON"
            }
        ],
        "carouselEndCard": true
    },
    "instagram": {
        "shareToFeed": true
    },
    "linkedIn": {
        "documentTitle": "Brinfer Document Title"
    },
    "tiktok": {
        "autoAddMusic": true,
        "disableComments": true,
        "isBrandedContent": true,
        "isBrandOrganic": true,
        "title": "Brinfer TikTok Title",
        "disableDuet": true,
        "disableStitch": true,
        "isAiGenerated": true
    },
    "labelIds": [
        "RDlHZERwbitlK1lmQU0xNW0zWUhWZz09"
    ]
}'
Response Response Example
{
    "id": "UG9zdElkMTIzNDU2Nzg5",
    "type": "MEDIA",
    "stage": "DRAFT",
    "publishAt": "2026-02-01T10:00:00.000Z",
    "budget": 0,
    "profiles": [
        {
            "id": "Tjg3YjhSU2xZREFqM1RqOTRnZTdpZz09",
            "name": "Brand Official Page",
            "username": "brandofficial",
            "picture": "https://storage.example.com/profiles/abc123.jpg",
            "net": {
                "code": "facebook",
                "name": "Facebook"
            },
            "publishStatus": null
        }
    ],
    "captions": [
        {
            "plainText": "Excited to announce our new product! 🚀 #innovation",
            "net": null,
            "firstComment": null
        }
    ],
    "medias": [
        {
            "id": "TWVkaWFJZDk4NzY1NDMyMQ==",
            "url": "https://storage.example.com/media/product.jpg",
            "type": "image/jpeg",
            "net": null
        }
    ],
    "links": [],
    "labels": [
        {
            "id": "TGFiZWxJZDExMTExMTEx",
            "name": "Product Launch",
            "color": "#FF5733"
        }
    ],
    "briefing": null
}
Modified at 2026-03-12 17:26:40
Previous
Get a Post
Next
Update a Post
Built with