Menu ☰

GraphQL API

Buffer's current API shape, at /api/graphql — query exactly what you need, schedule with createPost and createSchedule.

Endpoint
POST https://api.buffersass.dev/api/graphql — Bearer auth, JSON body { query, variables }. Same tokens as REST.

Queries

query
query Account {
  account {
    name
    plan
    workspaceName
    sandbox
  }
  channels {
    id
    service
    serviceUsername
    schedules { days times }
  }
}

GraphQL returns only the fields you select — fetch less, pay fewer round-trips. See Efficient API Usage.

query
query Queue($channelId: ID!, $first: Int) {
  posts(channelId: $channelId, status: "scheduled", first: $first) {
    id
    text
    scheduledAt
    channel { service serviceUsername }
    metrics { reach likes comments shares clicks }
  }
  usage {
    successfulPostsUsed
    successfulPostsLimit
    overageRatePerPost
  }
}

Mutations — scheduling

mutation
mutation Ship {
  createPost(input: {
    channels: ["cha_9a1…"]
    text: "Ship day! v2.4 is live 🚀"
    scheduledAt: "2026-11-10T14:30:00Z"
    media: [{ url: "https://cdn.acme.dev/launch.png" }]
  }) {
    id
    status
    scheduledAt
  }
}
mutation
mutation Reslot($channelId: ID!) {
  createSchedule(channelId: $channelId, schedules: [
    { days: ["mon","wed","fri"], times: ["09:30","17:30"] }
  ]) {
    id
    schedules { days times }
  }
}

createSchedule mirrors Buffer's scheduling mutation; use it to set the weekly time slots behind “Add to Queue”.

All mutations

ParameterTypeDescription
createPost(input)CreatePostInputchannels, text, media, scheduledAt, now, top, draft → [Post!]
updatePost(id, input)UpdatePostInputedit text / scheduledAt
destroyPost(id)IDdelete an update
publishNow(id)IDpublish immediately
moveToTop(id)IDfront of the queue
approvePost(id) / declinePost(id)IDapprovals workflow
createSchedule(channelId, schedules)ScheduleInputweekly time slots
connectChannel(service)Stringconnect a network
disconnectChannel(id)IDremove a channel
createIdea(text) / destroyIdea(id)Stringideas inbox

Test queries without leaving the docs in the API Explorer — it runs against your signed-in workspace.