API Documentation
Access your Content Intelligence data programmatically. Available on Pro and Enterprise plans.
Authentication
All API requests require a Bearer token in the Authorization header. Generate an API key from your Settings page.
curl -H "Authorization: Bearer ci_live_abc123..." \
https://content.yallapublish.com/api/v1/projectsRate Limiting
Requests are rate-limited per API key using a sliding 1-minute window. Default: 100 requests/minute. Headers included on every response:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Max requests per window |
| X-RateLimit-Remaining | Remaining requests in current window |
| X-RateLimit-Reset | Unix timestamp when the window resets |
| X-Request-Id | Unique request identifier for debugging |
| X-Response-Time | Server processing time |
Projects
/api/v1/projectsList all projects in your organization with keyword, content, and social account counts.
Example Response
{
"data": [
{
"id": "clx...",
"name": "My Website",
"websiteUrl": "https://example.com",
"primaryCountry": "US",
"createdAt": "2025-01-15T10:30:00Z",
"_count": { "keywords": 142, "contentItems": 38, "socialAccounts": 3 }
}
],
"total": 1
}Keywords
/api/v1/keywordsRetrieve tracked keywords for a project.
| Param | Type | Required | Description |
|---|---|---|---|
| projectId | string | required | Project ID |
| page | number | optional | Page number (default 1) |
| limit | number | optional | Results per page (max 100, default 50) |
Example Response
{
"data": [
{
"id": "clx...",
"keyword": "best seo tools",
"country": "US",
"searchVolume": 12100,
"difficulty": 67,
"currentRank": 4,
"createdAt": "2025-02-01T00:00:00Z"
}
],
"pagination": { "page": 1, "limit": 50, "total": 142, "totalPages": 3 }
}Rankings
/api/v1/rankingsGet historical keyword ranking data.
| Param | Type | Required | Description |
|---|---|---|---|
| projectId | string | required | Project ID |
| keyword | string | optional | Filter by keyword (contains match) |
| from | ISO date | optional | Start date filter |
| to | ISO date | optional | End date filter |
| page | number | optional | Page number |
| limit | number | optional | Results per page (max 100) |
Example Response
{
"data": [
{
"id": "clx...",
"keyword": "best seo tools",
"position": 4,
"previousPosition": 6,
"change": 2,
"url": "https://example.com/blog/best-seo-tools",
"searchVolume": 12100,
"country": "US",
"device": "desktop",
"checkedAt": "2025-03-10T08:00:00Z"
}
],
"pagination": { "page": 1, "limit": 50, "total": 500, "totalPages": 10 }
}Content
/api/v1/contentList content items for a project.
| Param | Type | Required | Description |
|---|---|---|---|
| projectId | string | required | Project ID |
| status | string | optional | Filter by status (DRAFT, SCHEDULED, PUBLISHED, etc.) |
| page | number | optional | Page number |
| limit | number | optional | Results per page (max 100) |
Example Response
{
"data": [
{
"id": "clx...",
"title": "Complete Guide to SEO",
"slug": "complete-guide-to-seo",
"status": "PUBLISHED",
"seoScore": 92,
"wordCount": 2450,
"scheduledFor": null,
"publishedAt": "2025-03-01T14:00:00Z",
"focusKeyword": "seo guide",
"pageType": "blog_post"
}
],
"pagination": { "page": 1, "limit": 50, "total": 38, "totalPages": 1 }
}Social Analytics
/api/v1/social/analyticsAggregated social media analytics and post metrics.
| Param | Type | Required | Description |
|---|---|---|---|
| projectId | string | required | Project ID |
| platform | string | optional | Filter by platform (instagram, twitter, linkedin, etc.) |
| from | ISO date | optional | Start date |
| to | ISO date | optional | End date |
Example Response
{
"data": {
"accounts": [
{ "id": "clx...", "platform": "instagram", "handle": "@mybrand" }
],
"analytics": [
{
"date": "2025-03-10T00:00:00Z",
"followers": 15200,
"followersGrowth": 120,
"totalReach": 45000,
"avgEngagementRate": 3.2
}
],
"posts": {
"total": 24,
"totalLikes": 8540,
"totalComments": 312,
"totalShares": 198,
"totalReach": 125000
}
}
}SERP Features
/api/v1/serp-featuresDetected SERP features and ownership data.
| Param | Type | Required | Description |
|---|---|---|---|
| projectId | string | required | Project ID |
| keyword | string | optional | Filter by keyword (contains match) |
| page | number | optional | Page number |
| limit | number | optional | Results per page (max 100) |
Example Response
{
"data": [
{
"id": "clx...",
"keyword": "best seo tools",
"featureType": "featured_snippet",
"ownsFeature": true,
"createdAt": "2025-03-10T08:00:00Z"
}
],
"pagination": { "page": 1, "limit": 50, "total": 85, "totalPages": 2 }
}Error Codes
| Status | Meaning |
|---|---|
| 400 | Bad Request — Missing or invalid parameters |
| 401 | Unauthorized — Invalid or missing API key |
| 403 | Forbidden — Insufficient scope or plan |
| 404 | Not Found — Resource not found or access denied |
| 429 | Too Many Requests — Rate limit exceeded |
| 500 | Internal Server Error |
{
"error": "Description of what went wrong"
}Ready to get started?
Generate your API key from the Settings page and start building integrations.
Get your API Key