ACME API Overview
Powerful Social APIs that enable you to send social media posts and get analytics effortlessly. For developers and businesses of all sizes.
The Social Media REST API provides developers with programmatic access to multiple social networks through a single unified interface. Through ACME's social API, you can manage social media activities including creating and deleting posts, retrieving analytics, engaging with comments and reviews, managing direct messages, creating Facebook ads, and performing other social media actions across platforms.
The API currently supports 13 major social networks: Bluesky, Facebook, Google Business Profile, Instagram, LinkedIn, Pinterest, Reddit, Snapchat, Telegram, Threads, TikTok, X (formerly Twitter), and YouTube. By integrating with this API, developers can automate social media management tasks across all these platforms simultaneously.
API calls request and response data are in JSON format, which allow for easy parsing and processing in most programming languages.
If you are on the Business or Enterprise Plan, see the Business Plan Overview and /profiles API endpoint.
Key Functionality
- 13 social networks supported.
- Secure API access using your unique API Key.
- Scheduled posting to connected social media platforms.
- Automated posting based on predefined schedules.
- Support for image and video content, including Reels, Stories, and Spotlight.
- Delete posts on linked social networks.
- Comprehensive post engagement analytics (likes, shares, etc.).
- Social account metrics, including follower count and demographic data.
- Comment management: view, add, and delete post comments.
- Optional link shortening for all or specific URLs in posts.
- Unsplash integration: add specific images or randomly select based on keywords.
- Automatic hashtag generation option using relevant keywords.
- Post history tracking, including non-ACME posts.
- Review management: retrieve, reply to, and delete review responses.
- RSS feed integration for automated content posting.
- Media library: upload and store photos and videos for use in posts.
- Social Post Verification System to keep your social accounts safe.
Business Plan
Business Plan features for managing multiple users and clients:
- Enable users to link their own social media accounts to your platform.
- Secure single sign-on using OAuth for quick account linking.
- Create and remove user profiles programmatically through the API.
- Access advanced user analytics.
- Webhook support for real-time updates.
- Direct message management across supported platforms.
- Create Facebook ads from existing posts.
Contact us to learn more about the Business Plan.
Ads API
The Ads API allows you to create Facebook ads from existing posts.
- Boost posts to reach more people.
- Manage ads and track performance.
- Analyze ad spend and optimize campaigns.
Messages API
A unified Messaging API to engage users in conversations across the major social media channels: Facebook, Instagram, and X.
- Sending text, image, and video messages.
- Retrieving complete conversation histories.
- Setting up automated message responses.
Receiving real-time updates via webhooks for messages received, message reactions, read receipts.
This API simplifies user engagement by centralizing messaging operations for multiple social media channels. Learn more...
Max Pack
Get even more capabilities with the Max Pack add-on:
Watch How to Use the Social API
If you're building in Node.js, check out this video on how to connect and publish posts to X and Facebook.
Social API Demo
If you use Node.js see the social API demo code to get started building your own social API integration.
Base URL
The base URL for the ACME API is the same for all endpoints.
https://api.acme.com/api
Authorization
ACME authenticates API requests via an Authorization token passed in the HTTP header. Please be sure to send Bearer with the API Key. The API Key can be found in the ACME Dashboard by switching to your Primary Profile.
If you are a Business or Enterprise user, you can create User Profiles with Profile Keys to manage multiple clients. The Profile Key is used in the header of your requests. The API Key must also be used in the header of your requests for User Profiles.
Premium plans should only use the API Key in the header of their requests. Business and Enterprise plans should use the Profile Key in the header of their requests when interacting on behalf of a User Profile.
API Key Format
Authorization: Bearer API_KEY replacing API_KEY with your Primary Profile API Key, which can be found in the ACME Dashboard.
curl -H "Authorization: Bearer API_KEY" \
-X GET https://api.acme.com/apiObtain your secret API Key in the ACME dashboard under the API Key page found in the left navigation panel.
For example, if your API Key is 2MPXPKQ-S03M5LS-GR5RX5G-AZCK8EA
Your header should include:
Authorization: Bearer 2MPXPKQ-S03M5LS-GR5RX5G-AZCK8EA
Profile Key Format
A Profile Key is used to interact on behalf of a User Profile. This is only available for Business or Enterprise plans.
Profile-Key: PROFILE_KEY replacing PROFILE_KEY with a user's Profile Key.
Including a Profile Key in the header is required to interact on behalf of a User Profile.
A missing Primary Profile API Key or using the Profile Key in place of the API Key in the header will result in an error.
Here's how to structure the headers for API requests:
curl -H "Authorization: Bearer API_KEY" \
-H "Profile-Key: PROFILE_KEY" \
-X GET https://api.acme.com/apiFind the Profile Key in the ACME Dashboard under the Profile Key page found in the left navigation panel. Switch to the Profile you want to use in the User Profile page. Additionally, the Profile Key is returned in the response of the Create a User Profile endpoint.
You can then use the Profile Key in the header of your requests:
For example, if your Profile Key is AX1XGG-9jK3M5LS-GR5RX5G-LLCK8EA
Your header should include both the API and Profile Key:
Authorization: Bearer 2MPXPKQ-S03M5LS-GR5RX5G-AZCK8EA
Profile-Key: AX1XGG-9jK3M5LS-GR5RX5G-LLCK8EA
Content Type
The Content Type should always be set as Content-Type: "application/json" unless the endpoint specifically specifies otherwise.
curl -H "Authorization: Bearer API_KEY" \
-H "Profile-Key: PROFILE_KEY" \ # Optional
-H "Content-Type: application/json" \
-X GET https://api.acme.com/apiCompression
ACME supports compression for all API requests.
To enable compression, set the Accept-Encoding header to deflate, gzip, br.
Accept-Encoding: "deflate, gzip, br"
This is recommended for calling larger responses such as the /history endpoint.
- Only responses over 1024 bytes (1KB) are compressed.
The order of compress used: Brotli (br) first, then gzip, then deflate. Brotli is the most efficient compression algorithm.
The response header contains the content encoding used. For example:
content-encoding: brif Brotli was used.Learn more about compression and the benefits of using compression in the ACME Blog.
curl -H "Authorization: Bearer API_KEY" \
-H "Profile-Key: PROFILE_KEY" \ # Optional
-H "Content-Type: application/json" \
-H "Accept-Encoding: deflate, gzip, br" \
-X GET https://api.acme.com/apiID Types
There are several types of IDs returned, which can be used in various endpoints:
ACME Post ID
This ID is generated by ACME and returned from the
/post endpoint in the id field. This ID makes it easy
to get analytics on the post across social networks, add comments to the
post, delete the post, etc. This is the ID you will use most often.
Social Post ID
Each social network assigns their own unique ID to posts and comments.
These IDs are returned in the postIds field of the /post or /comments endpoints.
You can use these IDs, or ones you get directly from the social networks, to retrieve data, such as with the analytics social post ID.
ACME Comment ID
This ID is generated by ACME and returned from the
/comments endpoint in the id field. This ID makes it easy
to get analytics on the comment across social networks, add replies to the
comment, delete the comment, etc. This is the ID you will use most often.
This is often used if you want to get details on a particular comment published via ACME.
Social Comment ID
Each social network assigns their own unique ID to comments.
These IDs are returned in the commentId field of the GET /comments endpoint.
This is often used if you want to get details on a particular comment published outside of ACME.
Error Codes
Errors will return with standard HTTP status codes.
For more information:
Detailed Errors are in the REST API response specific for each type of call.
For more information:
Timestamp Format
ACME uses Zulu Time, also known as UTC (Coordinated Universal Time) or an ISO 8601 formatted date string, for a precise and unambiguous time references across different time zones.
For example, use format YYYY-MM-DDThh:mm:ssZ and send as 2026-07-08T12:30:00Z.
Please see utctime for more examples.
You can convert the UTC format to your local time in the programming language of your choice. For example in JavaScript:
const convertToLocalTime = (isoString) => {
// Create a new Date object from the ISO string
const date = new Date(isoString);
// Extract local time components
const localDate = date.toLocaleDateString();
const localTime = date.toLocaleTimeString();
// Combine the local date and time
const localDateTime = `${localDate} ${localTime}`;
return localDateTime;
};
Postman
You can use Postman to test your REST API calls.
Random Posts, Images, and Videos
Check out the quick start guide on how to send random posts, images, or videos when testing.
Packages
We have both Node.js & Python packages, Bubble.io, Airtable, and Make guides available to make the RESTful calls easier.