Works with all AI agents

Connect your AI agent

Choose your AI agent 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.