Introduction
Welcome to the eWasl API — programmatic social media management.
Overview
The eWasl API lets you programmatically create, schedule, and publish social media posts across multiple platforms. Integrate eWasl into your applications, scripts, CI/CD pipelines, or AI assistants.
What you can do
- Create posts — Draft, schedule, or publish content to Twitter/X, Instagram, LinkedIn, Facebook, TikTok, YouTube, Pinterest, and Snapchat.
- List & filter posts — Retrieve your post history with pagination, status filters, and platform filters.
- Schedule posts — Queue posts for future publishing with intelligent staggered delivery.
- Manage connections — View connected social accounts, check token health, and verify platform access.
- Manage API keys — Create, list, and revoke API keys for programmatic access.
API Versions
| Version | Base URL | Status |
| :--- | :--- | :--- |
| V1 (recommended) | https://app.ewasl.com/api/v1 | Current |
| Legacy | https://app.ewasl.com/api/social | Deprecated |
All new integrations should use the V1 API. The legacy endpoints remain functional but will not receive new features.
Authentication
All API requests require a valid API key. Include it in the Authorization header:
Authorization: Bearer ewasl_YOUR_API_KEY
API keys can be created from your eWasl Settings Dashboard. See the Authentication guide for details.
Rate Limiting
The API implements rate limiting to ensure fair usage and system stability.
| Plan | Rate Limit | | :--- | :--- | | Free | 100 requests / hour | | Pro | 1,000 requests / hour | | Enterprise | Custom limits |
When you exceed the rate limit, the API returns a 429 Too Many Requests response with a Retry-After header indicating how many seconds to wait.
Error Format
All errors follow a consistent JSON envelope:
{
"error": {
"code": "ERROR_CODE",
"message": "Human-readable description of what went wrong.",
"details": {}
}
}
Common Error Codes
| Code | HTTP Status | Description |
| :--- | :--- | :--- |
| UNAUTHORIZED | 401 | Missing or invalid API key |
| FORBIDDEN | 403 | Key lacks the required permission |
| RATE_LIMITED | 429 | Too many requests — check Retry-After header |
| VALIDATION_ERROR | 400 | Invalid request body — see details for field errors |
| INVALID_ACCOUNTS | 400 | One or more accountIds are invalid or don't belong to you |
| CONTENT_TOO_LONG | 400 | Post content exceeds a platform's character limit |
| LIMIT_EXCEEDED | 403 | Post limit exceeded for your subscription plan |
| INTERNAL_ERROR | 500 | Unexpected server error |
Pagination
List endpoints return paginated results using offset-based pagination:
{
"data": [ ... ],
"meta": {
"total": 245,
"offset": 0,
"limit": 50,
"next": "/api/v1/posts?offset=50&limit=50"
}
}
Use the offset and limit query parameters to navigate pages. The meta.next field provides the URL for the next page, or null if there are no more results.
MCP Integration
eWasl supports the Model Context Protocol (MCP), allowing AI assistants like Claude, ChatGPT, and Cursor to manage your social media through natural conversation. See the MCP Setup Guide for instructions.
Supported Platforms
| Platform | Create | Schedule | Character Limit | | :--- | :--- | :--- | :--- | | Twitter / X | Yes | Yes | 280 | | Instagram | Yes | Yes | 2,200 | | LinkedIn | Yes | Yes | 3,000 | | Facebook | Yes | Yes | 63,206 | | TikTok | Yes | Yes | 2,200 | | YouTube | Yes | Yes | 5,000 | | Pinterest | Yes | Yes | 500 | | Snapchat | Yes | Yes | 250 |