Works with all AI agents

Connect your AI agent

Choose your assistant and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

PostEverywhere Campaigns Guide

Group related posts under named campaigns ('Q3 Launch', 'Holiday 2026'). Filter and report on them as a unit.

Campaigns let you group related posts under a name + color so you can filter, list, and report on them as a unit. Useful for marketing pushes ("Q3 Launch"), recurring series ("Tip Tuesday"), or seasonal content ("Holiday 2026").

The campaign endpoints at a glance

Related: paging the campaigns list · campaign-level analytics · bulk-creating campaign posts · post events for campaign posts

Full reference: List · Create · Get · Update · Delete.

GET    /v1/campaigns          list campaigns
POST   /v1/campaigns          create
GET    /v1/campaigns/:id      fetch one (includes post_count)
PATCH  /v1/campaigns/:id      update name/description/color/status
DELETE /v1/campaigns/:id      delete (posts survive — campaign_id set NULL)

Create a campaign

curl -X POST https://app.posteverywhere.ai/api/v1/campaigns \
  -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":        "Q3 Product Launch",
    "description": "Cross-platform rollout for the August launch",
    "color":       "#3b82f6",
    "status":      "active"
  }'

Response:

{
  "data": {
    "id":          42,
    "name":        "Q3 Product Launch",
    "description": "Cross-platform rollout for the August launch",
    "color":       "#3b82f6",
    "status":      "active",
    "post_count":  0,
    "created_at":  "2026-06-11T...",
    "updated_at":  "2026-06-11T..."
  },
  "error": null,
  "meta": { "request_id": "a1b2c3d4", "timestamp": "2026-06-11T09:55:12.341Z" }
}

Attach posts to a campaign

Pass campaign_id when creating a post:

curl -X POST https://app.posteverywhere.ai/api/v1/posts \
  -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content":      "Big news today...",
    "account_ids":  [123, 456],
    "scheduled_for": "2026-08-01T10:00:00Z",
    "campaign_id":  42
  }'

Retrieve every post in a campaign

curl "https://app.posteverywhere.ai/api/v1/posts?campaign_id=42" \
  -H "Authorization: Bearer $POSTEVERYWHERE_API_KEY"

Validation rules campaigns enforce

Field Type Constraint
name string 1-100 chars, required
description string max 500 chars
color string hex #RRGGBB (e.g. #3b82f6); defaults to #3b82f6
status string active or archived; defaults to active

Campaign limits and edge cases

  • Workspace-scoped. Campaigns belong to a workspace, not a user: visible to all workspace members.
  • Deleting doesn't delete posts. When you delete a campaign, posts that referenced it have their campaign_id set to NULL. The posts themselves are untouched.
  • status='archived' is a soft-hide. Archived campaigns still exist for posts that reference them but you can hide them: GET /v1/campaigns with no status returns both active and archived campaigns; pass ?status=active to hide archived ones, or ?status=archived to list only those.