API Reference

The Agency Dashboard API is organized around REST. Our API accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and authentication.

Use the API to programmatically access your project data, keyword rankings, traffic analytics, lead conversions, AI visibility scores, and more.

How it works

  1. List your projects - Call GET /v1/projects to get all your websites/client accounts
  2. Get project details - Call GET /v1/projects/:id to see which categories (SEO, ADS, SOCIAL), platforms, and integrations are connected
  3. Fetch data - Use the project ID with any data endpoint. Each endpoint belongs to a specific category and platform (e.g. keywords belong to SEO > Google Organic, citations belong to SEO > Google Local)

Base URL

https://agencydashboard.biz/api/v1/
Base URL
https://agencydashboard.biz/api/v1/
Example request
curl https://agencydashboard.biz/api/v1/projects \
  -H "Authorization: Bearer ad_live_your_api_key"

Authentication

The API uses Bearer token authentication. Include your API key in the Authorization header of every request.

Generate API keys from your dashboard at Settings > API Access. You can create multiple keys with different IP whitelisting rules.

All API requests must be made over HTTPS. Calls made over plain HTTP will be rejected. API requests without authentication will return a 401 error.

Authorizationheaderrequired

Bearer token with your API key. Format: Bearer ad_live_...

Authenticated request
curl https://agencydashboard.biz/api/v1/projects \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    {
      "id": "clx1abc123def",
      "name": "Example Client",
      "domain": "example.com"
    }
  ]
}

Core

6 endpoints

Projects

Projects represent your websites or client accounts. Start here to get project IDs, which are required for all other endpoints. Each project has categories (SEO, ADS, SOCIAL), platforms, connected integrations, and a list of available API endpoints.

List all projects

GET/v1/projects

Returns a list of all projects accessible to your API key. Each project includes its id, name, domain, status, and associated categories.

Returns

An array of project objects.

Request
curl https://agencydashboard.biz/api/v1/projects \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    {
      "id": "clx1abc123def",
      "name": "Example Client",
      "domain": "example.com",
      "status": "active",
      "categories": ["SEO", "PPC"]
    }
  ],
  "pagination": {
    "page": 1,
    "perPage": 20,
    "total": 3,
    "totalPages": 1
  }
}

Retrieve a project

GET/v1/projects/:id

Retrieves the details of a single project, including nested categories, platforms, integrations, and available endpoints.

Parameters

idstringrequired

The unique identifier of the project.

Returns

A project object with nested categories, platforms, integrations, and available_endpoints.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "id": "clx1abc123def",
    "name": "Example Client",
    "domain": "example.com",
    "status": "active",
    "categories": [
      {
        "name": "SEO",
        "platforms": [
          {
            "name": "Google",
            "integrations": ["Search Console"],
            "available_endpoints": [
              "/keywords",
              "/keywords/summary"
            ]
          }
        ]
      }
    ]
  }
}

Performance

Performance endpoints aggregate data across multiple sources for a project - combining traffic (GA4), keyword rankings, AI visibility scores, and leads into a single response. Useful for building overview dashboards.

Get performance metrics

GET/v1/projects/:id/performance

Returns full aggregated performance metrics combining traffic, rankings, AI visibility, and leads data.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

comparebooleanoptional

Include previous-period comparison. Defaults to true.

Returns

An object with traffic, rankings, aiVisibility, and leads sections.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/performance?period=30d&compare=true" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "traffic": {
      "sessions": 4520,
      "users": 3100,
      "pageviews": 12400
    },
    "rankings": {
      "totalKeywords": 120,
      "avgRank": 18.4,
      "top10Count": 32
    },
    "aiVisibility": {
      "presenceRate": 0.72,
      "citationRate": 0.45
    },
    "leads": {
      "keyEventsInPeriod": 42
    }
  }
}

Get performance summary

GET/v1/projects/:id/performance/summary

Returns a quick dashboard card snapshot with current values and percentage change versus the previous period.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

daysintegeroptional

Number of days to look back. Defaults to 30.

Returns

An object with dashboard card values and their period-over-period changes.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/performance/summary?days=30" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalVisitors": { "value": 3100, "change": 12.5 },
    "totalLeads": { "value": 42, "change": 8.3 },
    "avgRank": { "value": 18.4, "change": null },
    "top10Keywords": { "value": 32, "change": 6.7 },
    "aiVisibilityScore": { "value": 45.2, "change": 3.1 }
  }
}

Reports

Reports are generated PDF/documents created for a project. The list endpoint returns previously generated reports, while the quarterly endpoint builds a live performance summary combining data from all connected integrations.

List reports

GET/v1/projects/:id/reports

Returns a paginated list of generated reports for a project, sorted by newest first.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of report objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/reports?page=1&per_page=10" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    {
      "id": "rpt_abc123",
      "fileName": "Q1-2026-Report.pdf",
      "fileSize": 245000,
      "dateFrom": "2026-01-01",
      "dateTo": "2026-03-31",
      "createdAt": "2026-04-01T10:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "perPage": 10,
    "total": 4,
    "totalPages": 1
  }
}

Get quarterly report

GET/v1/projects/:id/reports/quarterly

Returns a pre-built quarterly performance summary. Defaults to the current quarter if no quarter parameter is specified.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

quarterstringoptional

Quarter identifier, e.g. "2026-Q1". Defaults to current quarter.

Returns

A quarterly summary object with traffic, rankings, AI visibility, and leads data.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/reports/quarterly?quarter=2026-Q1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "quarter": "2026-Q1",
    "traffic": {
      "sessions": 14200,
      "users": 9800,
      "previousQuarter": {
        "sessions": 12100,
        "users": 8400
      },
      "change": {
        "sessions": 17.4,
        "users": 16.7
      }
    },
    "rankings": {
      "improved": 35,
      "declined": 12,
      "unchanged": 73
    },
    "aiVisibility": {
      "startScore": 42,
      "endScore": 51,
      "change": 21.4
    },
    "leads": {
      "total": 128,
      "previousQuarter": 105,
      "change": 21.9
    }
  }
}

SEO - Google Organic

24 endpoints

Keywords

Keyword data comes from the SEO > Google Organic platform of a project. These are the keywords being tracked for rank position in Google Search. Requires Google Search Console integration to be connected on the project.

List keywords

GET/v1/projects/:id/keywords

Retrieves a paginated list of keyword rankings for a project, including position, search volume, changes over time, and tracking metadata.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

pageintegeroptional

Page number (1-indexed). Defaults to 1.

per_pageintegeroptional

Results per page (max 200). Defaults to 50.

searchstringoptional

Filter keywords containing this search term (case-insensitive).

tagstringoptional

Filter by keyword tag. Returns only keywords that have this exact tag.

sortstringoptional

Sort field: rank, change, or keyword. Defaults to keyword.

orderstringoptional

Sort direction: asc or desc. Defaults to asc.

Returns

A paginated array of keyword objects with ranking data, change deltas, and tracking settings.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords?page=1&per_page=50&sort=rank&order=asc" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    {
      "id": "kw_abc123",
      "keyword": "seo agency",
      "currentRank": 4,
      "previousRank": 6,
      "change": 2,
      "change7d": -1,
      "change30d": 3,
      "bestRank": 3,
      "url": "https://example.com/seo",
      "tags": ["branded", "high-priority"],
      "engine": "google.com",
      "location": "United States",
      "device": "desktop",
      "searchVolume": 12100,
      "lastCheckedAt": "2026-03-15T08:30:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "perPage": 50,
    "total": 120,
    "totalPages": 3
  }
}

Get keyword summary

GET/v1/projects/:id/keywords/summary

Returns an aggregated summary of keyword rankings including distribution across positions, total tracked keywords, and movement statistics.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

Returns

A summary object with counts for total, improved, declined, unchanged, position distribution buckets, and average rank.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords/summary \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "total": 120,
    "improved": 40,
    "declined": 18,
    "unchanged": 62,
    "top3Count": 8,
    "top10Count": 32,
    "top20Count": 55,
    "top100Count": 98,
    "notRanking": 22,
    "averageRank": 18.4
  }
}

Keyword Deep Data

Deep keyword data provides historical rank tracking, SERP competitor analysis, and competitor rank history for individual keywords. Drill into any tracked keyword to see how its rank has changed over time and who else ranks for it.

Get keyword rank history

GET/v1/projects/:id/keywords/:kwId/history

Returns daily rank position history for a single keyword over time.

Parameters

idstringrequired

The project ID.

kwIdstringrequired

The keyword ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with keyword metadata and an array of rank history entries.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords/kw_abc/history?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "keyword": {
      "id": "kw_abc",
      "keyword": "seo agency",
      "current_rank": 4,
      "search_volume": 12100,
      "difficulty": 65,
      "se_domain": "google.com",
      "device": "desktop"
    },
    "history": [
      { "id": "h_001", "rank": 8, "recorded_at": "2026-03-01T06:00:00.000Z" },
      { "id": "h_002", "rank": 7, "recorded_at": "2026-03-02T06:00:00.000Z" }
    ]
  }
}

Get SERP competitors for keyword

GET/v1/projects/:id/keywords/:kwId/competitors

Returns the domains currently ranking in the SERP for this keyword.

Parameters

idstringrequired

The project ID.

kwIdstringrequired

The keyword ID.

Returns

An array of competitor objects with rank, domain, URL, title, description, and last update time.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords/kw_abc/competitors \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    {
      "id": "comp_001",
      "rank": 1,
      "domain": "competitor.com",
      "url": "https://competitor.com/seo-guide",
      "title": "The Complete SEO Guide",
      "description": "Everything you need to know about SEO...",
      "updated_at": "2026-03-15T08:30:00.000Z"
    },
    {
      "id": "comp_002",
      "rank": 3,
      "domain": "rival.io",
      "url": "https://rival.io/blog/seo",
      "title": "SEO Best Practices",
      "description": "Learn the best practices for SEO...",
      "updated_at": "2026-03-15T08:30:00.000Z"
    }
  ]
}

Get competitor rank history

GET/v1/projects/:id/keywords/:kwId/competitors/history

Returns historical rank data for all SERP competitors of a keyword. Each entry is a flat record with domain, rank, and timestamp.

Parameters

idstringrequired

The project ID.

kwIdstringrequired

The keyword ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

domainstringoptional

Filter by a specific competitor domain.

Returns

A flat array of competitor rank history records, each with domain, rank, and recorded_at. Group by domain client-side to build per-competitor timelines.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords/kw_abc/competitors/history?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "ch_001", "domain": "competitor.com", "rank": 2, "recorded_at": "2026-03-01T06:00:00.000Z" },
    { "id": "ch_002", "domain": "competitor.com", "rank": 1, "recorded_at": "2026-03-02T06:00:00.000Z" },
    { "id": "ch_003", "domain": "rival.io", "rank": 5, "recorded_at": "2026-03-01T06:00:00.000Z" },
    { "id": "ch_004", "domain": "rival.io", "rank": 4, "recorded_at": "2026-03-02T06:00:00.000Z" }
  ],
  "period": {
    "start_date": "2026-02-14T00:00:00.000Z",
    "end_date": "2026-03-15T23:59:59.999Z"
  }
}

Visitors & Traffic

Visitor and traffic data comes from the Google Analytics (GA4) integration connected to the project under SEO > Google Organic. This includes sessions, users, pageviews, traffic sources, and top landing pages.

Get visitor data

GET/v1/projects/:id/visitors

Retrieves visitor and session data over time, including totals and time series breakdowns. Supports period comparison.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

start_datestringoptional

Custom start date (ISO 8601, e.g. 2025-07-01).

end_datestringoptional

Custom end date (ISO 8601). Used with start_date.

comparebooleanoptional

Include previous-period comparison data. Defaults to true.

granularitystringoptional

Data granularity: day, week, or month. Defaults to day.

Returns

An object with totals and time series data, optionally with comparison period.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/visitors?period=30d&granularity=week&compare=true" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "current": {
      "sessions": 4520,
      "users": 3100,
      "pageviews": 12400
    },
    "previous": {
      "sessions": 4100,
      "users": 2800,
      "pageviews": 11200
    },
    "timeSeries": [
      {
        "date": "2025-07-01",
        "sessions": 1120,
        "users": 780
      }
    ]
  }
}

Get traffic sources

GET/v1/projects/:id/traffic

Breaks down traffic by source and medium, showing sessions, users, and conversions for each channel.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

start_datestringoptional

Custom start date (ISO 8601).

end_datestringoptional

Custom end date (ISO 8601).

Returns

An array of traffic source objects with sessions, users, and conversions.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    {
      "source": "google",
      "medium": "organic",
      "sessions": 2400,
      "users": 1800,
      "conversions": 24
    },
    {
      "source": "direct",
      "medium": "(none)",
      "sessions": 1100,
      "users": 900,
      "conversions": 8
    }
  ]
}

Get top pages

GET/v1/projects/:id/traffic/pages

Returns the top-performing pages by traffic volume for a project.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of page objects with traffic metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic/pages?period=30d&per_page=10" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    {
      "page": "/",
      "pageviews": 3200,
      "sessions": 2100,
      "avgTimeOnPage": 45.2
    },
    {
      "page": "/services",
      "pageviews": 1800,
      "sessions": 1300,
      "avgTimeOnPage": 62.1
    }
  ],
  "pagination": {
    "page": 1,
    "perPage": 10,
    "total": 85,
    "totalPages": 9
  }
}

GA4 Traffic Deep

Deep GA4 traffic breakdowns by device type, geography, and browser. Provides granular analytics data beyond the standard visitors and traffic endpoints.

Get traffic by device

GET/v1/projects/:id/traffic/devices

Returns sessions and users broken down by device category (desktop, mobile, tablet).

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of device breakdown objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic/devices?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "device": "desktop", "sessions": 2800, "users": 2100, "percentage": 62.0 },
    { "device": "mobile", "sessions": 1500, "users": 1100, "percentage": 33.2 }
  ]
}

Get traffic by geography

GET/v1/projects/:id/traffic/geo

Returns sessions and users broken down by country and city.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of geographic breakdown objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic/geo?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "country": "United States", "city": "New York", "sessions": 820, "users": 640 },
    { "country": "United Kingdom", "city": "London", "sessions": 340, "users": 280 }
  ]
}

Get traffic by browser

GET/v1/projects/:id/traffic/browsers

Returns sessions and users broken down by browser.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of browser breakdown objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic/browsers?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "browser": "Chrome", "sessions": 2600, "users": 1950, "percentage": 57.5 },
    { "browser": "Safari", "sessions": 1100, "users": 820, "percentage": 24.3 }
  ]
}

Google Search Console

Google Search Console deep data provides query-level and page-level search performance metrics including clicks, impressions, CTR, and average position. Data comes from the connected Search Console integration.

Get Search Console queries

GET/v1/projects/:id/gsc/queries

Returns paginated search queries with clicks, impressions, CTR, and average position.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of query objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/gsc/queries?period=30d&page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "query": "seo tools", "clicks": 142, "impressions": 3200, "ctr": 0.044, "position": 5.2 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 450, "totalPages": 23 }
}

Get Search Console pages

GET/v1/projects/:id/gsc/pages

Returns paginated pages with search performance metrics.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of page performance objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/gsc/pages?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "page": "https://example.com/blog/seo", "clicks": 320, "impressions": 8400, "ctr": 0.038, "position": 7.1 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 120, "totalPages": 6 }
}

Get Search Console by country

GET/v1/projects/:id/gsc/countries

Returns search performance broken down by country.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of country performance objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/gsc/countries?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "country": "USA", "clicks": 1800, "impressions": 42000, "ctr": 0.043, "position": 12.3 },
    { "country": "GBR", "clicks": 420, "impressions": 9500, "ctr": 0.044, "position": 14.1 }
  ]
}

Get Search Console by device

GET/v1/projects/:id/gsc/devices

Returns search performance broken down by device type.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of device performance objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/gsc/devices?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "device": "DESKTOP", "clicks": 1400, "impressions": 32000, "ctr": 0.044, "position": 11.2 },
    { "device": "MOBILE", "clicks": 900, "impressions": 18000, "ctr": 0.050, "position": 13.8 }
  ]
}

Leads & Conversions

Lead and conversion data comes from GA4 key events and channel data connected to the project under SEO > Google Organic. This includes form submissions, phone calls, and any custom conversion events configured in Google Analytics.

Get leads data

GET/v1/projects/:id/leads

Retrieves lead and conversion data for a project, including daily breakdowns and key events.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

start_datestringoptional

Custom start date (ISO 8601).

end_datestringoptional

Custom end date (ISO 8601).

comparebooleanoptional

Include previous-period comparison. Defaults to true.

Returns

An object with daily lead data and key events.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/leads?period=30d&compare=true" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "daily": [
      {
        "date": "2025-07-12",
        "leads": 5,
        "keyEvents": 3
      }
    ],
    "keyEvents": [
      {
        "eventName": "generate_lead",
        "count": 42
      },
      {
        "eventName": "form_submit",
        "count": 18
      }
    ],
    "totals": {
      "current": 65,
      "previous": 58,
      "change": 12.1
    }
  }
}

Get lead sources

GET/v1/projects/:id/leads/sources

Returns leads aggregated by channel and by source/medium combination.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with leads broken down by channel and by source/medium.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/leads/sources?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "byChannel": [
      { "channel": "Organic Search", "count": 24 },
      { "channel": "Direct", "count": 8 },
      { "channel": "Paid Search", "count": 6 }
    ],
    "bySourceMedium": [
      { "source": "google", "medium": "organic", "count": 22 },
      { "source": "direct", "medium": "(none)", "count": 8 }
    ]
  }
}

Get GA4 events

GET/v1/projects/:id/ga4/events

Fetches GA4 key event data including conversion events and custom events with their counts.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of event objects with names and counts.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/ga4/events?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "eventName": "generate_lead", "eventCount": 42 },
    { "eventName": "purchase", "eventCount": 7 },
    { "eventName": "form_submit", "eventCount": 18 }
  ]
}

Competitors

Tracked competitor domains for a project. Competitors are other websites you are monitoring alongside your own keyword rankings and SEO performance.

List competitors

GET/v1/projects/:id/competitors

Returns a list of tracked competitor domains for the project.

Parameters

idstringrequired

The project ID.

Returns

An array of competitor domain objects.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/competitors \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "domain": "competitor.com", "commonKeywords": 45, "avgPosition": 12.3 },
    { "domain": "rival.io", "commonKeywords": 32, "avgPosition": 18.7 }
  ]
}

Site Audit

Site audit data from automated crawls of your project's website. Includes overall health scores, individual page issues, and crawl results. Audits run periodically and results are stored for historical comparison.

Get latest audit

GET/v1/projects/:id/site-audit/latest

Returns the latest site audit scores and summary for the project.

Parameters

idstringrequired

The project ID.

Returns

An audit summary object with health score and issue counts.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/site-audit/latest \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "auditId": "aud_xyz789",
    "healthScore": 82,
    "pagesScanned": 245,
    "errors": 12,
    "warnings": 34,
    "notices": 89,
    "completedAt": "2026-03-15T04:00:00Z"
  }
}

Get audit issues

GET/v1/projects/:id/site-audit/:auditId/issues

Returns paginated issues found during a specific audit.

Parameters

idstringrequired

The project ID.

auditIdstringrequired

The audit ID.

severitystringoptional

Filter: error, warning, or notice.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of issue objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/site-audit/aud_xyz789/issues?severity=error&page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "issue": "Missing meta description", "severity": "error", "url": "https://example.com/about", "category": "meta" }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 12, "totalPages": 1 }
}

Get crawled pages

GET/v1/projects/:id/site-audit/:auditId/pages

Returns paginated list of pages crawled during a specific audit with their status.

Parameters

idstringrequired

The project ID.

auditIdstringrequired

The audit ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of crawled page objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/site-audit/aud_xyz789/pages?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "url": "https://example.com/", "statusCode": 200, "loadTime": 1.2, "issueCount": 2 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 245, "totalPages": 13 }
}

SEO - AI SEO

3 endpoints

AI Visibility

AI visibility data comes from the SEO > AI SEO platform of a project. This tracks how visible your website is across AI platforms like ChatGPT, Gemini, Perplexity, and others - including citation rates and presence scores.

Get AI visibility score

GET/v1/projects/:id/ai-visibility

Returns the overall AI visibility score for a project, including presence rate and citation rate across AI platforms.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

comparebooleanoptional

Include previous-period comparison. Defaults to true.

Returns

An object with score, presence_rate, and citation_rate.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/ai-visibility?compare=true" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "score": 72,
    "presence_rate": 0.68,
    "citation_rate": 0.45,
    "previous": {
      "score": 67,
      "presence_rate": 0.62,
      "citation_rate": 0.40
    },
    "change": {
      "score": 7.5,
      "presence_rate": 9.7,
      "citation_rate": 12.5
    }
  }
}

Get AI visibility by platform

GET/v1/projects/:id/ai-visibility/platforms

Returns AI visibility scores broken down by individual AI platform (ChatGPT, Perplexity, Gemini, etc.).

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

Returns

An array of platform objects with individual scores and metrics.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/ai-visibility/platforms \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    {
      "platform": "ChatGPT",
      "score": 80,
      "mentions": 12,
      "presence_rate": 0.75,
      "citation_rate": 0.50
    },
    {
      "platform": "Perplexity",
      "score": 65,
      "mentions": 8,
      "presence_rate": 0.60,
      "citation_rate": 0.38
    }
  ]
}

Get AI visibility history

GET/v1/projects/:id/ai-visibility/history

Returns historical AI visibility snapshots over time. Optionally filter by a specific platform.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

platformstringoptional

Filter by a specific AI platform name.

Returns

An array of historical snapshot objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/ai-visibility/history?period=90d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "date": "2025-07-01", "score": 68, "presence_rate": 0.60 },
    { "date": "2025-07-08", "score": 70, "presence_rate": 0.63 },
    { "date": "2025-07-15", "score": 72, "presence_rate": 0.68 }
  ]
}

SEO - Google Local

10 endpoints

Citations

Citation data comes from the SEO > Google Local platform of a project. Citations are local business listings (Yelp, Yellow Pages, etc.) linked to the project's Google Business Profile locations. Requires Google My Business integration to be connected.

Get citations

GET/v1/projects/:id/citations

Returns local business citations (Yelp, Yellow Pages, etc.) for a project's Google Business Profile locations. This is the data shown under SEO > Google Local > Citations in the dashboard. Requires Google My Business integration on the project.

Parameters

idstringrequired

The project ID. Get this from the GET /v1/projects endpoint.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

consistentbooleanoptional

Filter by NAP consistency status.

searchstringoptional

Search citations by source name.

Returns

An object with locations and their associated citations.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/citations?consistent=true&per_page=50" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "locations": [
      {
        "id": "loc_123",
        "name": "Acme Corp - Main Office",
        "napConsistencyScore": 85
      }
    ],
    "citations": [
      {
        "source": "Yelp",
        "businessName": "Acme Corp",
        "consistent": true,
        "lastChecked": "2025-07-10"
      },
      {
        "source": "Yellow Pages",
        "businessName": "Acme Corp",
        "consistent": true,
        "lastChecked": "2025-07-10"
      }
    ]
  }
}

Local SEO

Local SEO data for Google Business Profile locations, reviews, local pack rankings, and grid rank tracking. Requires Google My Business integration to be connected on the project.

List GBP locations

GET/v1/projects/:id/local/locations

Returns Google Business Profile locations linked to this project.

Parameters

idstringrequired

The project ID.

Returns

An array of location objects.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/locations \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "loc_123", "name": "Acme Corp - Main Office", "address": "123 Main St, New York, NY", "phone": "(555) 123-4567" }
  ]
}

Get location performance

GET/v1/projects/:id/local/locations/:locId/performance

Returns daily GBP performance metrics for a location (views, searches, actions).

Parameters

idstringrequired

The project ID.

locIdstringrequired

The location ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of daily metric objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/locations/loc_123/performance?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "date": "2026-03-01", "views": 120, "searches": 85, "actions": 14 }
  ]
}

Get GBP posts

GET/v1/projects/:id/local/locations/:locId/posts

Returns Google Business Profile posts for a location.

Parameters

idstringrequired

The project ID.

locIdstringrequired

The location ID.

Returns

An array of post objects.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/locations/loc_123/posts \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "post_1", "type": "UPDATE", "summary": "Spring sale now on!", "createdAt": "2026-03-10T12:00:00Z" }
  ]
}

Get reviews

GET/v1/projects/:id/local/reviews

Returns reviews from all connected sources (Google, Yelp, etc.).

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

ratingintegeroptional

Filter by star rating (1-5).

Returns

A paginated array of review objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/reviews?page=1&per_page=10" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "source": "Google", "author": "Jane D.", "rating": 5, "text": "Great service!", "date": "2026-03-12" }
  ],
  "pagination": { "page": 1, "perPage": 10, "total": 85, "totalPages": 9 }
}

Get review metrics history

GET/v1/projects/:id/local/reviews/history

Returns review count and average rating over time.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 90d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of review metric snapshots.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/reviews/history?period=90d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "date": "2026-01-01", "totalReviews": 72, "avgRating": 4.6 },
    { "date": "2026-02-01", "totalReviews": 78, "avgRating": 4.7 }
  ]
}

Get local pack rankings

GET/v1/projects/:id/local/map-pack

Returns local pack (map pack) ranking positions for tracked keywords.

Parameters

idstringrequired

The project ID.

Returns

An array of local pack ranking objects.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/map-pack \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "keyword": "plumber near me", "position": 2, "previousPosition": 3, "change": 1 },
    { "keyword": "emergency plumber", "position": 1, "previousPosition": 1, "change": 0 }
  ]
}

List ranking grids

GET/v1/projects/:id/local/grid-rank

Returns configured grid rank tracking grids for the project.

Parameters

idstringrequired

The project ID.

Returns

An array of grid objects.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/grid-rank \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "grid_1", "name": "Downtown Grid", "size": "5x5", "radiusMiles": 10 }
  ]
}

Get grid keywords

GET/v1/projects/:id/local/grid-rank/:gridId/keywords

Returns keywords tracked within a specific grid.

Parameters

idstringrequired

The project ID.

gridIdstringrequired

The grid ID.

Returns

An array of grid keyword objects.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/grid-rank/grid_1/keywords \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "keyword": "plumber near me", "avgRank": 2.4, "bestRank": 1, "worstRank": 6 }
  ]
}

Get grid check results

GET/v1/projects/:id/local/grid-rank/:gridId/results

Returns the latest grid rank check results with position at each grid point.

Parameters

idstringrequired

The project ID.

gridIdstringrequired

The grid ID.

Returns

An array of grid point results.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/grid-rank/grid_1/results \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "lat": 40.7128, "lng": -74.0060, "keyword": "plumber near me", "position": 1 },
    { "lat": 40.7200, "lng": -74.0100, "keyword": "plumber near me", "position": 3 }
  ]
}

SEO - Bing

2 endpoints

Bing SEO

Bing organic SEO data including keyword rankings and overview metrics for the Bing search engine. Requires Bing Webmaster Tools integration to be connected.

Get Bing keywords

GET/v1/projects/:id/bing/keywords

Returns keyword rankings tracked in Bing search results.

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of Bing keyword objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/bing/keywords?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "keyword": "seo agency", "position": 6, "previousPosition": 8, "change": 2, "searchVolume": 4800 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 60, "totalPages": 3 }
}

Get Bing overview

GET/v1/projects/:id/bing/overview

Returns Bing organic overview metrics including total keywords, position distribution, and trends.

Parameters

idstringrequired

The project ID.

Returns

An overview object with Bing ranking metrics.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/bing/overview \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalKeywords": 60,
    "top3": 4,
    "top10": 18,
    "top20": 35,
    "averageRank": 22.1
  }
}

ADS - Google Ads

8 endpoints

ADS - Meta Ads

7 endpoints

Meta Ads

Meta (Facebook/Instagram) Ads campaign data including campaign, ad set, and ad-level performance. Requires Meta Ads integration to be connected on the project.

List Meta Ads campaigns

GET/v1/projects/:id/meta-ads/campaigns

Returns campaign-level performance data for Meta Ads.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 25.

Returns

A paginated array of campaign objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/campaigns?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "campaignId": "mc_123", "name": "Summer Promo", "status": "ACTIVE", "spend": 1200.00, "impressions": 85000, "clicks": 2400, "conversions": 32 }
  ],
  "pagination": { "page": 1, "perPage": 25, "total": 4, "totalPages": 1 }
}

List Meta Ads ad sets

GET/v1/projects/:id/meta-ads/adsets

Returns ad set-level performance data.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 25.

Returns

A paginated array of ad set objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/adsets?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "adsetId": "as_456", "name": "Lookalike - US", "campaignName": "Summer Promo", "spend": 600.00, "clicks": 1200, "impressions": 42000 }
  ],
  "pagination": { "page": 1, "perPage": 25, "total": 8, "totalPages": 1 }
}

List Meta Ads ads

GET/v1/projects/:id/meta-ads/ads

Returns individual ad-level performance data.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 25.

Returns

A paginated array of ad objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/ads?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "adId": "ad_789", "name": "Video Ad - V1", "adsetName": "Lookalike - US", "spend": 300.00, "clicks": 620, "impressions": 21000, "ctr": 0.030 }
  ],
  "pagination": { "page": 1, "perPage": 25, "total": 15, "totalPages": 1 }
}

Get Meta Ads summary

GET/v1/projects/:id/meta-ads/summary

Returns aggregated Meta Ads metrics with period comparison.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

comparebooleanoptional

Include previous-period comparison. Defaults to true.

Returns

An object with current and previous period metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/summary?period=30d&compare=true" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "current": { "spend": 4800.00, "clicks": 9600, "impressions": 340000, "conversions": 128 },
    "previous": { "spend": 4200.00, "clicks": 8400, "impressions": 290000, "conversions": 105 },
    "changes": { "spend": 14.3, "clicks": 14.3, "conversions": 21.9 }
  }
}

Get Meta Ads demographics

GET/v1/projects/:id/meta-ads/demographics

Returns ad performance broken down by age and gender.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with age and gender breakdowns.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/demographics?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "age": [
      { "range": "25-34", "spend": 1400.00, "clicks": 2800, "conversions": 38 }
    ],
    "gender": [
      { "gender": "female", "spend": 2600.00, "clicks": 5200, "conversions": 72 }
    ]
  }
}

Get Meta Ads placements

GET/v1/projects/:id/meta-ads/placements

Returns ad performance broken down by placement (Feed, Stories, Reels, etc.).

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of placement breakdown objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/placements?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "placement": "Facebook Feed", "spend": 1800.00, "clicks": 3600, "impressions": 120000 },
    { "placement": "Instagram Stories", "spend": 1200.00, "clicks": 2400, "impressions": 95000 }
  ]
}

Get Meta Ads by device

GET/v1/projects/:id/meta-ads/devices

Returns ad performance broken down by device type.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An array of device breakdown objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/devices?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "device": "mobile", "spend": 3200.00, "clicks": 6400, "impressions": 240000 },
    { "device": "desktop", "spend": 1600.00, "clicks": 3200, "impressions": 100000 }
  ]
}

ADS - Bing Ads

2 endpoints

Bing Ads

Microsoft Advertising (Bing Ads) campaign data. Requires Bing Ads integration to be connected on the project.

List Bing Ads campaigns

GET/v1/projects/:id/bing-ads/campaigns

Returns campaign-level performance data for Bing Ads.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 25.

Returns

A paginated array of campaign objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/bing-ads/campaigns?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "campaignId": "bc_123", "name": "Brand - Bing", "status": "Active", "spend": 820.00, "clicks": 1400, "impressions": 24000, "conversions": 18 }
  ],
  "pagination": { "page": 1, "perPage": 25, "total": 3, "totalPages": 1 }
}

Get Bing Ads summary

GET/v1/projects/:id/bing-ads/summary

Returns aggregated Bing Ads metrics with period comparison.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

comparebooleanoptional

Include comparison. Defaults to true.

Returns

An object with current and previous period metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/bing-ads/summary?period=30d&compare=true" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "current": { "spend": 2400.00, "clicks": 4200, "impressions": 72000, "conversions": 54 },
    "previous": { "spend": 2100.00, "clicks": 3600, "impressions": 64000, "conversions": 42 }
  }
}

ADS - Amazon Ads

2 endpoints

Amazon Ads

Amazon Advertising campaign data including Sponsored Products, Brands, and Display campaigns. Requires Amazon Ads integration to be connected.

List Amazon Ads campaigns

GET/v1/projects/:id/amazon-ads/campaigns

Returns campaign-level performance data for Amazon Ads.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 25.

Returns

A paginated array of campaign objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/amazon-ads/campaigns?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "campaignId": "ac_123", "name": "Sponsored Products - Main", "type": "SPONSORED_PRODUCTS", "spend": 1500.00, "clicks": 3200, "impressions": 45000, "sales": 4200.00 }
  ],
  "pagination": { "page": 1, "perPage": 25, "total": 6, "totalPages": 1 }
}

Get Amazon Ads summary

GET/v1/projects/:id/amazon-ads/summary

Returns aggregated Amazon Ads metrics with period comparison.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

comparebooleanoptional

Include comparison. Defaults to true.

Returns

An object with current and previous period metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/amazon-ads/summary?period=30d&compare=true" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "current": { "spend": 4500.00, "clicks": 9600, "impressions": 135000, "sales": 12600.00, "acos": 0.357 },
    "previous": { "spend": 3800.00, "clicks": 8100, "impressions": 112000, "sales": 10200.00, "acos": 0.373 }
  }
}

ADS - LinkedIn Ads

2 endpoints

LinkedIn Ads

LinkedIn Advertising campaign data. Requires LinkedIn Ads integration to be connected on the project.

List LinkedIn Ads campaigns

GET/v1/projects/:id/linkedin-ads/campaigns

Returns campaign-level performance data for LinkedIn Ads.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 25.

Returns

A paginated array of campaign objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/linkedin-ads/campaigns?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "campaignId": "lc_123", "name": "B2B Lead Gen", "status": "ACTIVE", "spend": 2200.00, "clicks": 680, "impressions": 42000, "conversions": 12 }
  ],
  "pagination": { "page": 1, "perPage": 25, "total": 3, "totalPages": 1 }
}

Get LinkedIn Ads summary

GET/v1/projects/:id/linkedin-ads/summary

Returns aggregated LinkedIn Ads metrics with period comparison.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

comparebooleanoptional

Include comparison. Defaults to true.

Returns

An object with current and previous period metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/linkedin-ads/summary?period=30d&compare=true" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "current": { "spend": 6600.00, "clicks": 2040, "impressions": 126000, "conversions": 36, "cpl": 183.33 },
    "previous": { "spend": 5800.00, "clicks": 1740, "impressions": 108000, "conversions": 28, "cpl": 207.14 }
  }
}

Social

23 endpoints

Facebook

Facebook page metrics, posts, and audience data from the connected Facebook integration. Tracks followers, engagement, reach, and post performance.

Get Facebook metrics

GET/v1/projects/:id/social/facebook/metrics

Returns Facebook page metrics including followers, reach, and engagement over time.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with current metrics and time series.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/facebook/metrics?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "followers": 12400,
    "followersChange": 180,
    "reach": 45000,
    "engagement": 3200,
    "engagementRate": 0.071
  }
}

Get Facebook posts

GET/v1/projects/:id/social/facebook/posts

Returns recent Facebook posts with engagement metrics.

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of post objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/facebook/posts?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "fb_post_1", "message": "Check out our latest blog post!", "publishedAt": "2026-03-10T14:00:00Z", "likes": 42, "comments": 8, "shares": 5 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 45, "totalPages": 3 }
}

Get Facebook audience

GET/v1/projects/:id/social/facebook/audience

Returns Facebook audience demographics breakdown.

Parameters

idstringrequired

The project ID.

Returns

An object with audience demographic breakdowns.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/facebook/audience \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalFollowers": 12400,
    "byAge": [{ "range": "25-34", "percentage": 34.2 }],
    "byGender": [{ "gender": "female", "percentage": 52.1 }],
    "topCities": [{ "city": "New York", "count": 820 }]
  }
}

Instagram

Instagram account metrics, posts, and audience data. Tracks followers, engagement, reach, and content performance from the connected Instagram Business account.

Get Instagram metrics

GET/v1/projects/:id/social/instagram/metrics

Returns Instagram account metrics including followers, reach, and engagement.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with current metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/instagram/metrics?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "followers": 8200,
    "followersChange": 320,
    "reach": 32000,
    "impressions": 58000,
    "engagementRate": 0.045
  }
}

Get Instagram posts

GET/v1/projects/:id/social/instagram/posts

Returns recent Instagram posts with engagement metrics.

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of post objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/instagram/posts?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "ig_post_1", "type": "IMAGE", "caption": "Behind the scenes!", "publishedAt": "2026-03-12T16:00:00Z", "likes": 128, "comments": 14 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 60, "totalPages": 3 }
}

Get Instagram audience

GET/v1/projects/:id/social/instagram/audience

Returns Instagram audience demographics breakdown.

Parameters

idstringrequired

The project ID.

Returns

An object with audience demographic breakdowns.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/instagram/audience \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalFollowers": 8200,
    "byAge": [{ "range": "18-24", "percentage": 28.5 }],
    "byGender": [{ "gender": "female", "percentage": 58.3 }],
    "topCities": [{ "city": "Los Angeles", "count": 540 }]
  }
}

YouTube

YouTube channel metrics, videos, and audience data. Tracks subscribers, views, watch time, and video performance from the connected YouTube channel.

Get YouTube metrics

GET/v1/projects/:id/social/youtube/metrics

Returns YouTube channel metrics including subscribers, views, and watch time.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with current channel metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/youtube/metrics?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "subscribers": 4500,
    "subscribersChange": 120,
    "views": 28000,
    "watchTimeHours": 1200,
    "avgViewDuration": 245
  }
}

Get YouTube videos

GET/v1/projects/:id/social/youtube/videos

Returns recent YouTube videos with performance metrics.

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of video objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/youtube/videos?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "yt_vid_1", "title": "SEO Tips 2026", "publishedAt": "2026-03-08T10:00:00Z", "views": 3200, "likes": 180, "comments": 24 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 32, "totalPages": 2 }
}

Get YouTube audience

GET/v1/projects/:id/social/youtube/audience

Returns YouTube audience demographics breakdown.

Parameters

idstringrequired

The project ID.

Returns

An object with audience demographic breakdowns.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/youtube/audience \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalSubscribers": 4500,
    "byAge": [{ "range": "25-34", "percentage": 38.1 }],
    "byGender": [{ "gender": "male", "percentage": 62.4 }],
    "topCountries": [{ "country": "United States", "percentage": 45.2 }]
  }
}

LinkedIn

LinkedIn company page metrics, posts, and audience data. Tracks followers, engagement, impressions, and content performance.

Get LinkedIn metrics

GET/v1/projects/:id/social/linkedin/metrics

Returns LinkedIn company page metrics including followers and engagement.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with current metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/linkedin/metrics?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "followers": 3200,
    "followersChange": 85,
    "impressions": 18000,
    "engagement": 1400,
    "engagementRate": 0.078
  }
}

Get LinkedIn posts

GET/v1/projects/:id/social/linkedin/posts

Returns recent LinkedIn posts with engagement metrics.

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of post objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/linkedin/posts?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "li_post_1", "text": "We're hiring! Join our team.", "publishedAt": "2026-03-11T09:00:00Z", "likes": 64, "comments": 12, "shares": 8 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 28, "totalPages": 2 }
}

Get LinkedIn audience

GET/v1/projects/:id/social/linkedin/audience

Returns LinkedIn audience demographics breakdown by industry and seniority.

Parameters

idstringrequired

The project ID.

Returns

An object with audience demographic breakdowns.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/linkedin/audience \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalFollowers": 3200,
    "byIndustry": [{ "industry": "Marketing & Advertising", "percentage": 24.5 }],
    "bySeniority": [{ "seniority": "Senior", "percentage": 32.1 }],
    "topLocations": [{ "location": "San Francisco Bay Area", "count": 280 }]
  }
}

Twitter

Twitter (X) account metrics, posts, and audience data. Tracks followers, impressions, engagement, and tweet performance.

Get Twitter metrics

GET/v1/projects/:id/social/twitter/metrics

Returns Twitter account metrics including followers and engagement.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with current metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/twitter/metrics?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "followers": 5600,
    "followersChange": 140,
    "impressions": 62000,
    "engagement": 2800,
    "engagementRate": 0.045
  }
}

Get Twitter posts

GET/v1/projects/:id/social/twitter/posts

Returns recent tweets with engagement metrics.

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of tweet objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/twitter/posts?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "tw_post_1", "text": "New blog post on SEO trends!", "publishedAt": "2026-03-14T11:00:00Z", "likes": 35, "retweets": 12, "replies": 4, "impressions": 2800 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 52, "totalPages": 3 }
}

Get Twitter audience

GET/v1/projects/:id/social/twitter/audience

Returns Twitter audience demographics breakdown.

Parameters

idstringrequired

The project ID.

Returns

An object with audience demographic breakdowns.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/twitter/audience \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalFollowers": 5600,
    "byInterests": [{ "interest": "Technology", "percentage": 42.3 }],
    "topCountries": [{ "country": "United States", "percentage": 48.1 }]
  }
}

TikTok

TikTok account metrics, posts, and audience data. Tracks followers, views, engagement, and video performance from the connected TikTok Business account.

Get TikTok metrics

GET/v1/projects/:id/social/tiktok/metrics

Returns TikTok account metrics including followers, views, and engagement.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with current metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/tiktok/metrics?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "followers": 15200,
    "followersChange": 1800,
    "videoViews": 240000,
    "likes": 18000,
    "engagementRate": 0.075
  }
}

Get TikTok posts

GET/v1/projects/:id/social/tiktok/posts

Returns recent TikTok videos with performance metrics.

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of video objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/tiktok/posts?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "tt_vid_1", "description": "SEO tip of the day", "publishedAt": "2026-03-13T18:00:00Z", "views": 12000, "likes": 840, "comments": 62, "shares": 45 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 38, "totalPages": 2 }
}

Get TikTok audience

GET/v1/projects/:id/social/tiktok/audience

Returns TikTok audience demographics breakdown.

Parameters

idstringrequired

The project ID.

Returns

An object with audience demographic breakdowns.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/tiktok/audience \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalFollowers": 15200,
    "byAge": [{ "range": "18-24", "percentage": 42.0 }],
    "byGender": [{ "gender": "female", "percentage": 55.8 }],
    "topCountries": [{ "country": "United States", "percentage": 52.3 }]
  }
}

Pinterest

Pinterest account metrics, pins, and audience data. Tracks followers, impressions, saves, and pin performance from the connected Pinterest Business account.

Get Pinterest metrics

GET/v1/projects/:id/social/pinterest/metrics

Returns Pinterest account metrics including followers, impressions, and saves.

Parameters

idstringrequired

The project ID.

periodstringoptional

Time range: 7d, 30d, 90d, 1y, last_week, last_month, last_quarter, last_year. Defaults to 30d. You can also pass start_date and end_date (ISO 8601) instead.

Returns

An object with current metrics.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/pinterest/metrics?period=30d" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "followers": 2800,
    "followersChange": 95,
    "impressions": 85000,
    "saves": 1200,
    "outboundClicks": 640
  }
}

Get Pinterest pins

GET/v1/projects/:id/social/pinterest/posts

Returns recent Pinterest pins with performance metrics.

Parameters

idstringrequired

The project ID.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of pin objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/pinterest/posts?page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "pin_1", "title": "10 SEO Tips for 2026", "publishedAt": "2026-03-09T12:00:00Z", "impressions": 4200, "saves": 85, "outboundClicks": 32 }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 42, "totalPages": 3 }
}

Get Pinterest audience

GET/v1/projects/:id/social/pinterest/audience

Returns Pinterest audience demographics breakdown.

Parameters

idstringrequired

The project ID.

Returns

An object with audience demographic breakdowns.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/pinterest/audience \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "totalFollowers": 2800,
    "byAge": [{ "range": "25-34", "percentage": 36.4 }],
    "byGender": [{ "gender": "female", "percentage": 72.1 }],
    "topCountries": [{ "country": "United States", "percentage": 58.7 }]
  }
}

Social Calendar

Scheduled social media posts across all connected platforms. View and manage upcoming content in the social publishing calendar.

List scheduled posts

GET/v1/projects/:id/social/scheduled-posts

Returns a list of scheduled social media posts across all platforms.

Parameters

idstringrequired

The project ID.

statusstringoptional

Filter: scheduled, published, or failed.

platformstringoptional

Filter by platform: facebook, instagram, twitter, linkedin, tiktok, pinterest.

pageintegeroptional

Page number. Defaults to 1.

per_pageintegeroptional

Results per page. Defaults to 20.

Returns

A paginated array of scheduled post objects.

Request
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/scheduled-posts?status=scheduled&page=1" \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": [
    { "id": "sp_1", "platform": "facebook", "text": "Exciting news coming soon!", "scheduledFor": "2026-03-20T14:00:00Z", "status": "scheduled" },
    { "id": "sp_2", "platform": "instagram", "text": "New product launch", "scheduledFor": "2026-03-21T10:00:00Z", "status": "scheduled" }
  ],
  "pagination": { "page": 1, "perPage": 20, "total": 8, "totalPages": 1 }
}

Get scheduled post details

GET/v1/projects/:id/social/scheduled-posts/:postId

Returns details of a single scheduled post including media attachments.

Parameters

idstringrequired

The project ID.

postIdstringrequired

The scheduled post ID.

Returns

A scheduled post object with full details.

Request
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/social/scheduled-posts/sp_1 \
  -H "Authorization: Bearer ad_live_your_api_key"
Response
{
  "success": true,
  "data": {
    "id": "sp_1",
    "platform": "facebook",
    "text": "Exciting news coming soon!",
    "scheduledFor": "2026-03-20T14:00:00Z",
    "status": "scheduled",
    "mediaUrls": ["https://cdn.example.com/image1.jpg"],
    "createdAt": "2026-03-15T09:00:00Z"
  }
}

Errors

The API uses conventional HTTP response codes to indicate the success or failure of a request. Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error with the information provided. Codes in the 5xx range indicate a server error.

CodeStatusDescription
MISSING_API_KEY401No API key was provided in the Authorization header.
INVALID_API_KEY401The API key provided is not valid or does not exist.
REVOKED_API_KEY401The API key has been revoked by the owner.
EXPIRED_API_KEY401The API key has expired and is no longer valid.
NO_WHITELISTED_IPS403The API key requires IP whitelisting but no IPs have been configured.
IP_NOT_ALLOWED403The request originated from an IP address not in the API key's whitelist.
PROJECT_NOT_FOUND404The specified project does not exist or is not accessible with this API key.
ACCESS_DENIED403The API key does not have permission to access this resource.
INTERNAL_ERROR500An unexpected error occurred on the server. Please try again later.
Error response format
{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The API key provided is not valid."
  }
}
401 - Missing API key
{
  "success": false,
  "error": {
    "code": "MISSING_API_KEY",
    "message": "No API key was provided. Include your key in the Authorization header."
  }
}
403 - IP not allowed
{
  "success": false,
  "error": {
    "code": "IP_NOT_ALLOWED",
    "message": "Your IP is not allowed. Add your IP to the API key whitelist in Settings > API Access."
  }
}

Rate Limits

API requests are rate-limited based on your subscription plan. Limits are applied per organization across all API keys. When you exceed a limit, the API returns a 429 status code with a Retry-After header indicating how many seconds to wait.

PlanRequests/MinuteRequests/DayAPI Keys
FreeNo API access0
Starter30/min5,000/day2
Professional100/min25,000/day5
Agency300/min100,000/day20
EnterpriseCustomCustomUnlimited

Rate Limit Headers

Every API response includes headers to help you track your usage:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp (seconds) when the current window resets
Retry-AfterSeconds to wait before retrying (only present on 429 responses)
429 - Rate limit exceeded
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please retry after 32 seconds."
  }
}
Rate limit headers
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1711036800
Retry-After: 32