Retrieves the authenticated user's account information
Example Response
{
"data": {
"account": {
"id": "...",
"email": "...",
"backupEmail": "...",
"avatar": "..."
}
}
}
Connect Buffer to your agents, automation tools, or build something entirely new.
Retrieves the authenticated user's account information
{
"data": {
"account": {
"id": "...",
"email": "...",
"backupEmail": "...",
"avatar": "..."
}
}
}
Fetches a single channel using the provided ID
| Name | Type | Description |
|---|---|---|
| input Required | ChannelInput! | Query's input. |
{
"data": {
"channel": {
"id": "...",
"allowedActions": [
"backfillChannel"
],
"scopes": [
"..."
],
"avatar": "..."
}
}
}
Fetch all channels for the organization taking into account the current's user permissions
| Name | Type | Description |
|---|---|---|
| input Required | ChannelsInput! | Query's input. |
{
"data": {
"channels": [
{
"id": "...",
"allowedActions": [
"backfillChannel"
],
"scopes": [
"..."
],
"avatar": "..."
}
]
}
}
Aggregate normalized post metrics across a filtered post set. Useful for yearly summaries, channel-level rollups, and BI exports without paginating through thousands of posts.
For per-post metrics, use posts(input) or post(input) with a
metrics { โฆ } selection โ this query is purely for aggregation.
The result always contains a baseline trio of entries: postCount
(number of matched posts in the window), reactions, and comments.
Posts on networks that don't track reactions or comments contribute 0
to those totals.
Beyond the baseline, additional metric types are returned only when every channel in the filter set supports them. A single-network filter surfaces that network's richer metrics (e.g. impressions, reach, engagementRate on LinkedIn); a mixed-network filter trims the extras to those common to every network in the set.
| Name | Type | Description |
|---|---|---|
| input Required | AggregatedPostMetricsInput! | Query's input: organization, date range, optional channel and tag filters. Date range is capped to 365 days. |
{
"data": {
"aggregatedPostMetrics": {
"metrics": [
{
"type": "reactions",
"name": "...",
"description": "...",
"value": 0
}
],
"metricsUpdatedAt": "..."
}
}
}
Returns daily posting limit status for the given channels on the specified date.
| Name | Type | Description |
|---|---|---|
| input Required | DailyPostingLimitsInput! | Query's input. |
{
"data": {
"dailyPostingLimits": [
{
"channelId": "...",
"sent": 0,
"scheduled": 0,
"limit": 0
}
]
}
}
Fetches a post by PostID for the given organization: first and last can be set for forward pagination using Relay convention
| Name | Type | Description |
|---|---|---|
| input Required | PostInput! | Query's input. |
{
"data": {
"post": {
"id": "...",
"ideaId": "...",
"status": "draft",
"via": "buffer"
}
}
}
Fetches posts for the given organization: first and last can be set for forward pagination using Relay convention
| Name | Type | Description |
|---|---|---|
| input Required | PostsInput! | Query's input. |
| first Optional | Int | The number of posts to return |
| after Optional | String | The cursor of the post to start fetching from |
{
"data": {
"posts": {
"edges": [
{
"node": {},
"cursor": "..."
}
],
"pageInfo": {
"startCursor": "...",
"endCursor": "...",
"hasPreviousPage": true,
"hasNextPage": true
}
}
}
}
Create post for channel
| Name | Type | Description |
|---|---|---|
| input Required | CreatePostInput! | The mutation's input |
{
"data": {
"createPost": {}
}
}
Delete a post by id.
| Name | Type | Description |
|---|---|---|
| input Required | DeletePostInput! | No description |
{
"data": {
"deletePost": {}
}
}
Edit post for channel
| Name | Type | Description |
|---|---|---|
| input Required | EditPostInput! | The mutation's input |
{
"data": {
"editPost": {}
}
}
Create a new idea with the given content and metadata
| Name | Type | Description |
|---|---|---|
| input Required | CreateIdeaInput! | Input to create an idea |
{
"data": {
"createIdea": {}
}
}
Indicates exactly one field must be supplied and this field must not be null.
Locations: INPUT_OBJECT
Account is a representation of a Buffer user.
Unique identifier for the account
Primary email address for the account
Backup email address for account recovery
URL to the account's avatar image
Date the account was created in the Core DB. For older customers, it's possible a Publish account existed in the Publish DB for this customer before this date
| Name | Type | Description |
|---|---|---|
| filter Optional | OrganizationFilterInput | No description |
The account-level timezone - this is used as a default input for streaks, posting plans, and new channel channel connections.
The account name, different from the organization name
The accounts preferences
The connected apps for the account
Aggregated post metrics across a filtered post set. Each entry in
metrics mirrors the shape of a Post.metrics entry; the total number
of matched posts is carried as a regular PostMetric entry with
type: postCount.
Normalized metric aggregates across the matched posts. Always includes
a baseline trio (postCount, reactions, comments) โ posts on
networks that don't track reactions or comments contribute 0 to those
totals. Beyond the baseline, additional metric types are included only
when every channel in the filter set supports them.
The latest metricsUpdatedAt across the matched posts, indicating the
freshness of the aggregate. Metrics are refreshed daily, so values can
be up to ~24h behind the source network. Null when no posts matched
the filter.
Annotation representing all the entities in the text
The type of the annotation
The indices of the annotation in the text
The content of the annotation. Annotations can sometimes be different from the actual text content. E.g., Mastodon mentions have 'text: @buffer', but includes the server name in the content, 'content: @buffer@threads.net'
The text representation of the annotation, eg '@buffer'
The URL the annotation points to
Represent the author of a post or note.
The unique identifier of the author.
The email address of the author.
The avatar URL of the author.
Indicates whether the author is a deleted.
The name of the author. Null if the user has not yet set a name.
Channel entity
The ID of the channel
The allowed actions for the current user
Scopes requested for a given channel - empty array if we don't have them tracked
The avatar URL of the channel
The creation date of the channel
Formatted name of the channel service and type: e.g. 'Twitter Profile' or 'Facebook Page'
The display name of the channel - nullable (reason?)
Indicates if the channel is properly connected to Buffer
Indicates if the channel is locked - Locked channels can't be used for posting. A channel can be locked when the organization downgrades and reduces the channel quantity of their plan.
Indicates if the channel was recently created (in less than 10 seconds). This is used to determine the redirect modal after channel authorization
Provides the posting slots for each day of the week
Indicates is the queue is paused for the channel. A paused queue means schedules posts won't be published.
Indicates if trending topic suggestions should be shown in the composer. When false, users can still access trends via the trending icon button. Defaults to true for backward compatibility.
The name of the channel - the handle name, username, etc.
The organization ID of the channel
Products that support a given channel
Represents the social network
Represents the external ID of the channel on social network API
The timezone of the channel - Default if not set is Europe/London
The type of the channel - Page, Profile, Business, Group, Account, etc.
The last time the channel was updated
Whether at least one member of the orginization who have access to this channel also has a user device registered for push notifications
The posting goal for the channel
The channel's URL on the social network (e.g. instagram.com/username or facebook.com/page) Returns null if the channel is not supported
Link Shortening settings for the channel
Weekly posting limit for the channel
Deprecation reason: This field is not used anymore
Settings for link shortening
Configuration of link shortening integration. Null if disabled.
If link shortening is enabled for the channel
Connected App
The id of the connectedApp.
The id of the user that has granted access to the app.
The name of the connected app.
A brief description of the connected app.
The website URL of the connected app.
The date and time when the connected app was created.
Status of daily posting limits for a channel on a given day.
The channel ID this status refers to.
Number of posts already sent on this day.
Number of posts scheduled for this day.
The network daily posting limit. Null means unlimited.
Whether the channel has reached its daily posting limit.
deletePost success response returns the post id that was deleted.
Post id that was delete.
The ID of the asset in the database
The type of the asset
The MIME type of the asset
URL to the file source
URL to the static thumbnail of the asset
Document specific metadata
Ideas are the main entity in the create space
Unique identifier for the idea
ID of the organization that owns this idea
The actual content and metadata of the idea
ID of the group this idea belongs to (if any)
Numerical position for ordering within a group
Unix timestamp of when the idea was created
Unix timestamp of when the idea was last modified
Content of an idea
Title or headline of the idea
Main body text or description of the idea
List of media items attached to the idea
Tags used to categorize and organize the idea
Indicates whether AI tools were used in creating this idea
Services tagged by the user - this is typically used to annotate ideas with their target services
DateTime set by user associated with the idea - this often reflects a target publish date.
Media attached to an idea
Unique identifier for the media in Buffer's upload system
Direct URL to access the media file
Alternative text description for accessibility
URL to a smaller version of the media for preview purposes
Type of media (e.g., image, video, gif)
File size in bytes
Source platform information for the media
Media source for the idea, e.g. Unsplash, Gifphy, etc.
Name of the media source platform (e.g., 'Unsplash', 'Giphy')
Unique identifier from the source platform
Name of the content creator/author
URL to the author's profile on the source platform
createIdea response type
The affected idea
If true, the client should refresh the ideas list because other ideas might have been moved
The ID of the asset in the database
The type of the asset
The MIME type of the asset
URL to the file source
URL to the static thumbnail of the asset
Image specific metadata
Instagram Geolocation
The id of this location
The name of this location
Instagram fields for reminder-based publishing. Upon the reminder for publishing, the user is prompted to copy and paste these fields into the Instagram app to complete the post.
Text for the Story or Reel
Placeholder text for the post's music
Placeholder text for the post's linked products
Placeholder text for the post's topics (Reels only)
Additional field for any other post content
Error message
Error message
URL that the link asset has been built from
Full URL that the link asset has been built from
Description for the scraped link
Thumbnails of media available in the link
Selected thumbnail for this link preview
Title for the link attachment
Link Shortening Configuration
Domain of the link shortener - eg buff.ly, dub.co, or the user's custom domain.
Human readable string to describe the link shortening service.
Location data about the channel
Location of the business associated with the channel
Link to the map
Google Account Id of the business
Represents the members connection edge. Later, we can add the list of members with the page info to follow our connection edge pattern.
The total count of team members counting the org owner and team members from the Publish DB.
Note entity
The unique identifier of the note.
The content of the note.
The type of the note.
The author of the note - null if the user is deleted or left the organization.
The date and time when the note was created.
The date and time when the note was last edited.
The allowed actions a user can perform on the note.
Error message
Organization is a representation of a Buffer Organization.
The ID of the organization.
The total number of channels connected to the organization.
The limits of the organization. Can be used to check if the organization has reached the limit of channels, members, etc.
The members of the organization. Can be used to check the total number of members in the organization. In the future, it might contain more information about the members.
The name of the organization.
The owner email of the organization.
Whether the requesting actor should be sent through 2FA setup before they
can use this organization. Derived: true only when the org has
settings.enforce2FA ON, the organization-enforced-2fa rollout Split is
ON for the org, and the actor has no 2FA configured on their own account.
This is the single source of truth for the forced-2FA gate; app-shell and publish-frontend redirect to the setup flow when it's true. Exposed to the API gateway so any stitched consumer reads the same value.
Resource limits for an organization including channels, members, and content limits
Information to aid in pagination.
The first cursor in the list. It can be used to fetch the previous page.
The last cursor in the list. It can be used to fetch the next page.
When set to true, it means there is a previous page available. Will always return false for now as we only support forward pagination.
When set to true, it means there is a next page available.
A Pinterest board
The ID of the board
The ID of the service
The board name
The board URL
The board description
The board avatar
Post entity
ObjectId of the post
Is set when the Post is generated from an Idea
status
Indicates if the post is created from Buffer or the API
Scheduling type can be null if the post was created natively on the social network without using notification publishing or automatic publishing
Represents the user who created the post
Indicates whether time to publish was manually selected by the user
Date when the post was created
Date when the post was updated
Date when the post is scheduled to be published
Date when the post is published
Text content of the Post
The external URL of the post at the destination service
channel ID (faster than resolving the channnel.id)
channel service (faster than resolving the channnel.service)
channel
tags - sorted by name in ascending order
notes
notificationStatus: notified or markedAsPublished
error
assets
Metrics for the sent post. If post is not yet sent, this field will be null
Timestamp of when metrics were last refreshed from the network. Null
until the daily ingestion job has processed the post. Buffer pulls
fresh metrics once per day, so this can lag the network value by ~24h.
Indicates what actions the current account can perform on the post
Success response returns the full up-to-date post from after the action was performed.
Post on which the action was successfully performed.
Represents a posting goal for a channel, including target, progress, and status information.
The target number of posts for this goal.
The number of posts that have been sent (published or ingested) for this goal.
The number of posts that are scheduled to be sent for this goal.
The current status of the posting goal.
The start date of the period for this posting goal.
The end date of the period for this posting goal.
A single metric for a post (or an entry in an aggregated metrics response).
The type of metric. Cross-network metrics use unified naming (reactions,
comments, etc.); network-specific metrics retain their network's
vocabulary (saves, quotes, etc.). See PostMetricType for the full
catalog including deprecated values.
The human-readable name of the metric (e.g. "Reactions", "Eng. Rate").
A human-readable description of what the metric represents.
The metric value. Defaults to 0 when the network did not report the metric.
The unit (count vs percentage) of value.
Post publishing error
Error message to display
Link to a help center article to help resolve the error
The original error from the publishing service (internal use only)
Represent a node in the pagination result using the Connect Relay convention.
Represents the current post in the list.
Opaque cursor to be used in pagination to fetch from current node.
Results for the posts query.
The list of posts that match the query.
Information to aid in pagination.
Account preferences
Tag associated with a post
Hex color for tag e.g #F523F1
An error message from the REST API response that we proxied here
Link to our Help center from the REST API response
Error code from the REST API response - https://buffer.com/developers/api/errors
Posting schedule for a specific day of the week
The day of the week: mon, tue, wed, thu, fri, sat, sun
The times the channel is scheduled to post on the day: HH:MM
Indicates if this day is paused in the posting schedule.
Tag entity
ObjectId of the tag
Hex color for tag e.g '#F523F1'
Name of the tag e.g 'Summer sales'
Locked tag cannot be assigned to new items in the UI. A Tag is locked after a customer downgrades and has more tags than the free plan limit allows
Error returned when the user is not authorized to perform the action
Error message
Error message
User tag in the image
The handle (username) of the tagged account, without the leading @.
Horizontal position of the tag as a normalized decimal float between 0.0 and 1.0 - the fraction of the image width from the left edge (0.5 is the horizontal center).
Vertical position of the tag as a normalized decimal float between 0.0 and 1.0 - the fraction of the image height from the top edge (0.5 is the vertical center).
The ID of the asset in the database
The type of the asset
The MIME type of the asset
URL to the file source
URL to the static thumbnail of the asset
Video specific metadata
Error implementation that allows clients to resolve the MutationError on mutations that do not currently have typed errors. This allows clients to automatically handle errors that may be added to a mutation in future.
Do not directly throw this error, use a custom typed error instead
Error message
Weekly posting limit for a channel
The number of posts the channel has sent this week
The number of posts the channel has scheduled for this week
The weekly posting limit for the channel
Input for the aggregatedPostMetrics query.
The organization ID
Start of the aggregation window. Consumers typically pass UTC midnight
of the first calendar day in the window, for example
2026-01-01T00:00:00Z.
End of the aggregation window. Consumers typically pass UTC midnight of
the last calendar day in the window (the backend treats the range as
inclusive of that day), for example 2026-01-31T00:00:00Z. Date range
is capped to 365 days.
Optional list of channel IDs to filter by. When omitted (null), the aggregate spans every channel in the organization the actor has insights access to. When set to an empty array, no channels match and the result is empty.
Filter to posts with specific tags. When omitted, all posts are included regardless of tags.
Annotation representing all the entities in the text
The content of the annotation, e.g. '107509875938399'
The indices of the annotation in the text, e.g. [6, 9] (from 6 to 9 characters in the text)
The text representation of the annotation, eg 'Buffer'
The URL the annotation points to, e.g. https://www.facebook.com/107509875938399
Annotation representing all the entities in the text
The id of the annotation, e.g. 1521226
The link of the annotation, e.g. https://www.linkedin.com/company/bufferapp
The entity of the annotation, e.g. urn:li:organization:1521226
The vanity name of the annotation, e.g. bufferapp
The localized name of the annotation, e.g. Buffer
The start of the annotation, e.g. 5
The length of the annotation, e.g. 6
A single entity's asset. Exactly one variant must be provided.
Image asset
Video asset
Document asset
Link asset
Input for the channel query
The ID of the channel to be retrieved
Filter to pass when fetching channels.
If not defined, it returns all channels Else, if true, it only returns locked channels if false, it only returns not locked channels
If not passed, it return all channels Else, it filters the channels based on what the product supports.
Input to pass when fetching channels.
The Organization id to fetch channels for
A list of option filters - passing null means we don't want to filter
createIdea input type
Organization ID that will own the idea
Content and metadata for the new idea
Call-to-action identifier for analytics tracking
Group placement (null for unassigned group)
Template ID used to create the idea
Create post's request input.
Note: assets.videos and metadata.{service}.linkAttachment are mutually exclusive.
If both are provided, the video is ignored.
Is set when the Post is generated from an Idea
Is set when the Post is generated from a Draft
Scheduling type to indicate notification publishing or automatic publishing
Date when the post is scheduled to be published
Text content of the Post.
Note: for threaded posts, this needs to match the first item in the thread array.
Channel's Id for which we want to create the post
List of tag IDs
Ordered list of assets on this post.
How the post is being scheduled.
source where the composer was initiated from, used for tracking.
If this post was created with the help of AI
If true, saves the post as a draft instead of scheduling it. When saving as draft:
Input for the dailyPostingLimits query.
Comparator for filtering by date
deletePost mutation deletes a post by id.
Post id to delete.
Document asset
Document URL
Document title
Document thumbnail URL
Edit post's request input.
Note: assets.videos and metadata.{service}.linkAttachment are mutually exclusive.
If both are provided, the video is ignored.
ID of the post to edit
Is set when the Post is generated from an Idea
Is set when the Post is generated from a Draft
Scheduling type to indicate notification publishing or automatic publishing
Date when the post is scheduled to be published
Text content of the Post.
Note: for threaded posts, this needs to match the first item in the thread array.
tags
Ordered list of assets on this post. Omit to preserve the existing list, pass an empty array to clear it
How the post is being scheduled.
source where the composer was initiated from, used for tracking.
If this post was edited with the help of AI
If true, saves the post as a draft instead of keeping it scheduled. When saving as draft:
content input for creating/updating an idea
Title or headline of the idea
Main body text or description
List of media items to attach
Tags to categorize the idea
Whether AI tools were used in creation
Services associated with the idea for targeting specific platforms
Target date for the idea, often used for planning publish schedules
idea group input for create/update
Target group ID (null for unassigned group)
ID of idea to place after (null for top position)
The URL of the media
Alternative text for the media
Thumbnail URL for the media
The type of media (image, gif, video, link, document, unsupported). Note: 'video' is not supported via public API
The size of the media in bytes
Source information for the media
Input type for the source information of media attached to an idea
for unsplash only
Image asset
URL to the file source
URL to the static thumbnail of the asset
Image dimensions
Image width in pixels
Image height in pixels
Instagram Geolocation
The id of this location
The name of this location
Instagram fields for reminder-based publishing. Upon the reminder for publishing, the user is prompted to copy and paste these fields into the Instagram app to complete the post.
Text for the Story or Reel
Placeholder text for the post's music
Placeholder text for the post's linked products
Placeholder text for the post's topics (Reels only)
Additional field for any other post content
Link attached to the post
URL to the link
Title of the link
Description of the link
Thumbnail URL of the link
Link attachment
URL that the link asset has been built from
Allow retrieving a specific Organization
Input for the post query
The ID of the post to be retrieved
Filter to apply to the posts query
When set, it will filter posts by channel
When set, it will return posts with createdAt or dueAt date after startDate
When set, it will return posts with createdAt or dueAt date before endDate
When set, it will filter posts by status
Filter posts by tags. Supports specific tags, untagged posts, or union of both.
When set, it will filter posts by tag
When set, it will filter posts by their scheduled posting date
When set, it will filter posts by the date they were created
Input for the posts query
The Organization id to fetch posts for
The filters to apply to the posts query
The sort to apply to the posts results
Sort order of post results. List multiple to create tie-breaking order.
The field to sort by.
The direction to sort by.
Comparator for filtering by tags
Include results that have any of the specified tags (union/OR).
When true, include results that have no tags assigned. Can be combined with 'in' for union filtering. Defaults to false if not specified.
Input type for tag information used in idea creation
User tag in the image
The handle (username) of the account to tag, without the leading @.
Horizontal position of the tag as a normalized decimal float between 0.0 and 1.0 - the fraction of the image width from the left edge (0.5 is the horizontal center). Pass a number, not a string, and do not use pixel coordinates; to convert, divide the pixel X by the image width.
Vertical position of the tag as a normalized decimal float between 0.0 and 1.0 - the fraction of the image height from the top edge (0.5 is the vertical center). Pass a number, not a string, and do not use pixel coordinates; to convert, divide the pixel Y by the image height.
Video asset
URL to the file source
URL to the thumbnail of the video
List of possible types for an annotation
Asset types
List of possible actions that can be performed on a Channel
Channel is a representation of a social media account or page that can be connected to Buffer.
List of possible types for GBP cta
The type of media attached to a post
List of possible actions that can be performed on a note
The type of a note.
List of possible statuses for a notification
List of possible actions that can be performed on a Organization
List of possible actions that can be performed on a Post
PostingGoalStatus is used to track the status of a posting goal.
List of possible metrics available for a Post.
Values fall into three groups:
likes โ reactions, Twitter retweets โ reposts).likes is intentionally distinct from reactions on Facebook โ Facebook's Graph API surfaces them separately.Deprecated values are pre-normalization legacy or tied to features being removed. They're kept in the enum for backwards compatibility until clients migrate.
The unit representing the value of a PostMetric.
Key of collection to use for sorting
List of possible statuses for a Post
List of possible types for a Post. Some services may have different types (e.g., Instagram has story, reel, post but Twitter has only post)
List of specific post types available for Facebook
List of specific post types available for Google Business profiles
List of possible ways to create a Post
Buffer products, buffer is used as all products
Indicates whether the post was scheduled for notification publishing or automatic publishing
The list of services that can be authorized.
Direction to sort the results by.
List of license types
List of privacy types
Asset interface with common fields
The ID of the asset in the database
The type of the asset
The MIME type of the asset
URL to the file source
URL to the static thumbnail of the asset
Base Mutation Error type
Error message
Link data for link preview
URL that the link asset has been built from
Description for the scraped link
Thumbnails of media available in the link
GoogleBusiness Metadata details
The AccountId scalar represents the MongoDB ObjectId of a Buffer Account
The ChannelId scalar represents the MongoDB ObjectId of a Buffer Channel
The DateTime scalar represents a date and time following the ISO 8601 standard.
The DraftId scalar represents the MongoDB ObjectId of a Buffer Draft
The IdeaId scalar represents the MongoDB ObjectId of a Buffer Idea
The InvitationId scalar represents the MongoDB ObjectId of a pending team invitation
The NoteId scalar represents the MongoDB ObjectId of a Buffer Note
The OrganizationId scalar represents the MongoDB ObjectId of a Buffer Organization
The PostGroupId scalar represents the MongoDB ObjectId of a Buffer Post Group.
The PostId scalar represents the MongoDB ObjectId of a Buffer Post
The TagId scalar represents the MongoDB ObjectId of a Buffer Tag
The Uuid scalar represents an RFC 4122 v4 UUID,
e.g. 550e8400-e29b-41d4-a716-446655440000.