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
- List your projects - Call
GET /v1/projectsto get all your websites/client accounts - Get project details - Call
GET /v1/projects/:idto see which categories (SEO, ADS, SOCIAL), platforms, and integrations are connected - 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/https://agencydashboard.biz/api/v1/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.
AuthorizationheaderrequiredBearer token with your API key. Format: Bearer ad_live_...
curl https://agencydashboard.biz/api/v1/projects \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{
"id": "clx1abc123def",
"name": "Example Client",
"domain": "example.com"
}
]
}Core
6 endpointsProjects
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
/v1/projectsReturns 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.
curl https://agencydashboard.biz/api/v1/projects \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:idRetrieves the details of a single project, including nested categories, platforms, integrations, and available endpoints.
Parameters
idstringrequiredThe unique identifier of the project.
Returns
A project object with nested categories, platforms, integrations, and available_endpoints.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/performanceReturns full aggregated performance metrics combining traffic, rankings, AI visibility, and leads data.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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.
comparebooleanoptionalInclude previous-period comparison. Defaults to true.
Returns
An object with traffic, rankings, aiVisibility, and leads sections.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/performance?period=30d&compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/performance/summaryReturns a quick dashboard card snapshot with current values and percentage change versus the previous period.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
daysintegeroptionalNumber of days to look back. Defaults to 30.
Returns
An object with dashboard card values and their period-over-period changes.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/performance/summary?days=30" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/reportsReturns a paginated list of generated reports for a project, sorted by newest first.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
Returns
A paginated array of report objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/reports?page=1&per_page=10" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/reports/quarterlyReturns a pre-built quarterly performance summary. Defaults to the current quarter if no quarter parameter is specified.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
quarterstringoptionalQuarter identifier, e.g. "2026-Q1". Defaults to current quarter.
Returns
A quarterly summary object with traffic, rankings, AI visibility, and leads data.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/reports/quarterly?quarter=2026-Q1" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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 endpointsKeywords
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
/v1/projects/:id/keywordsRetrieves a paginated list of keyword rankings for a project, including position, search volume, changes over time, and tracking metadata.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
pageintegeroptionalPage number (1-indexed). Defaults to 1.
per_pageintegeroptionalResults per page (max 200). Defaults to 50.
searchstringoptionalFilter keywords containing this search term (case-insensitive).
tagstringoptionalFilter by keyword tag. Returns only keywords that have this exact tag.
sortstringoptionalSort field: rank, change, or keyword. Defaults to keyword.
orderstringoptionalSort direction: asc or desc. Defaults to asc.
Returns
A paginated array of keyword objects with ranking data, change deltas, and tracking settings.
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"{
"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
/v1/projects/:id/keywords/summaryReturns an aggregated summary of keyword rankings including distribution across positions, total tracked keywords, and movement statistics.
Parameters
idstringrequiredThe 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.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords/summary \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/keywords/:kwId/historyReturns daily rank position history for a single keyword over time.
Parameters
idstringrequiredThe project ID.
kwIdstringrequiredThe keyword ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords/kw_abc/history?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/keywords/:kwId/competitorsReturns the domains currently ranking in the SERP for this keyword.
Parameters
idstringrequiredThe project ID.
kwIdstringrequiredThe keyword ID.
Returns
An array of competitor objects with rank, domain, URL, title, description, and last update time.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords/kw_abc/competitors \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/keywords/:kwId/competitors/historyReturns historical rank data for all SERP competitors of a keyword. Each entry is a flat record with domain, rank, and timestamp.
Parameters
idstringrequiredThe project ID.
kwIdstringrequiredThe keyword ID.
periodstringoptionalTime 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.
domainstringoptionalFilter 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/keywords/kw_abc/competitors/history?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/visitorsRetrieves visitor and session data over time, including totals and time series breakdowns. Supports period comparison.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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_datestringoptionalCustom start date (ISO 8601, e.g. 2025-07-01).
end_datestringoptionalCustom end date (ISO 8601). Used with start_date.
comparebooleanoptionalInclude previous-period comparison data. Defaults to true.
granularitystringoptionalData granularity: day, week, or month. Defaults to day.
Returns
An object with totals and time series data, optionally with comparison period.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/visitors?period=30d&granularity=week&compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/trafficBreaks down traffic by source and medium, showing sessions, users, and conversions for each channel.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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_datestringoptionalCustom start date (ISO 8601).
end_datestringoptionalCustom end date (ISO 8601).
Returns
An array of traffic source objects with sessions, users, and conversions.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/traffic/pagesReturns the top-performing pages by traffic volume for a project.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
Returns
A paginated array of page objects with traffic metrics.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic/pages?period=30d&per_page=10" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/traffic/devicesReturns sessions and users broken down by device category (desktop, mobile, tablet).
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic/devices?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/traffic/geoReturns sessions and users broken down by country and city.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic/geo?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/traffic/browsersReturns sessions and users broken down by browser.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/traffic/browsers?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/gsc/queriesReturns paginated search queries with clicks, impressions, CTR, and average position.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
Returns
A paginated array of query objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/gsc/queries?period=30d&page=1" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/gsc/pagesReturns paginated pages with search performance metrics.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
Returns
A paginated array of page performance objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/gsc/pages?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/gsc/countriesReturns search performance broken down by country.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/gsc/countries?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/gsc/devicesReturns search performance broken down by device type.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/gsc/devices?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/leadsRetrieves lead and conversion data for a project, including daily breakdowns and key events.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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_datestringoptionalCustom start date (ISO 8601).
end_datestringoptionalCustom end date (ISO 8601).
comparebooleanoptionalInclude previous-period comparison. Defaults to true.
Returns
An object with daily lead data and key events.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/leads?period=30d&compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/leads/sourcesReturns leads aggregated by channel and by source/medium combination.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/leads/sources?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/ga4/eventsFetches GA4 key event data including conversion events and custom events with their counts.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/ga4/events?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "eventName": "generate_lead", "eventCount": 42 },
{ "eventName": "purchase", "eventCount": 7 },
{ "eventName": "form_submit", "eventCount": 18 }
]
}Backlinks
Backlink data comes from the SEO > Google Organic platform of a project. This includes the backlink profile summary (total backlinks, referring domains, domain rank) and individual backlink details. Data is sourced from DataForSEO.
Get backlinks
/v1/projects/:id/backlinksReturns the backlink profile and individual backlinks for a project's website. This is the same backlink data shown under SEO > Google Organic > Backlinks in the dashboard. Includes domain rank, referring domains count, and individual link details.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 50.
statusstringoptionalFilter by status: new, lost, or broken.
dofollowbooleanoptionalFilter by dofollow attribute.
searchstringoptionalSearch backlinks by URL or anchor text.
Returns
An object with profile summary and paginated backlink list.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/backlinks?status=new&dofollow=true&per_page=25" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": {
"profile": {
"totalBacklinks": 1240,
"referringDomains": 380,
"domainRank": 45
},
"backlinks": [
{
"urlFrom": "https://example.org/blog/post",
"domainFrom": "example.org",
"anchorText": "best seo tools",
"dofollow": true,
"firstSeen": "2025-06-10"
}
]
},
"pagination": {
"page": 1,
"per_page": 25,
"total": 1240,
"total_pages": 50
}
}Get backlink history
/v1/projects/:id/backlinks/historyReturns daily snapshots of the backlink profile over time, including total backlinks and referring domains.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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 backlink snapshot objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/backlinks/history?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "date": "2026-03-01", "totalBacklinks": 1200, "referringDomains": 370 },
{ "date": "2026-03-02", "totalBacklinks": 1205, "referringDomains": 372 }
]
}Competitors
Tracked competitor domains for a project. Competitors are other websites you are monitoring alongside your own keyword rankings and SEO performance.
List competitors
/v1/projects/:id/competitorsReturns a list of tracked competitor domains for the project.
Parameters
idstringrequiredThe project ID.
Returns
An array of competitor domain objects.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/competitors \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/site-audit/latestReturns the latest site audit scores and summary for the project.
Parameters
idstringrequiredThe project ID.
Returns
An audit summary object with health score and issue counts.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/site-audit/latest \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/site-audit/:auditId/issuesReturns paginated issues found during a specific audit.
Parameters
idstringrequiredThe project ID.
auditIdstringrequiredThe audit ID.
severitystringoptionalFilter: error, warning, or notice.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
Returns
A paginated array of issue objects.
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"{
"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
/v1/projects/:id/site-audit/:auditId/pagesReturns paginated list of pages crawled during a specific audit with their status.
Parameters
idstringrequiredThe project ID.
auditIdstringrequiredThe audit ID.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
Returns
A paginated array of crawled page objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/site-audit/aud_xyz789/pages?page=1" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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 endpointsAI 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
/v1/projects/:id/ai-visibilityReturns the overall AI visibility score for a project, including presence rate and citation rate across AI platforms.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
comparebooleanoptionalInclude previous-period comparison. Defaults to true.
Returns
An object with score, presence_rate, and citation_rate.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/ai-visibility?compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/ai-visibility/platformsReturns AI visibility scores broken down by individual AI platform (ChatGPT, Perplexity, Gemini, etc.).
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
Returns
An array of platform objects with individual scores and metrics.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/ai-visibility/platforms \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/ai-visibility/historyReturns historical AI visibility snapshots over time. Optionally filter by a specific platform.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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.
platformstringoptionalFilter by a specific AI platform name.
Returns
An array of historical snapshot objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/ai-visibility/history?period=90d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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 endpointsCitations
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
/v1/projects/:id/citationsReturns 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
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
consistentbooleanoptionalFilter by NAP consistency status.
searchstringoptionalSearch citations by source name.
Returns
An object with locations and their associated citations.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/citations?consistent=true&per_page=50" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/local/locationsReturns Google Business Profile locations linked to this project.
Parameters
idstringrequiredThe project ID.
Returns
An array of location objects.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/locations \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/local/locations/:locId/performanceReturns daily GBP performance metrics for a location (views, searches, actions).
Parameters
idstringrequiredThe project ID.
locIdstringrequiredThe location ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/locations/loc_123/performance?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "date": "2026-03-01", "views": 120, "searches": 85, "actions": 14 }
]
}Get GBP posts
/v1/projects/:id/local/locations/:locId/postsReturns Google Business Profile posts for a location.
Parameters
idstringrequiredThe project ID.
locIdstringrequiredThe location ID.
Returns
An array of post objects.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/locations/loc_123/posts \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "id": "post_1", "type": "UPDATE", "summary": "Spring sale now on!", "createdAt": "2026-03-10T12:00:00Z" }
]
}Get reviews
/v1/projects/:id/local/reviewsReturns reviews from all connected sources (Google, Yelp, etc.).
Parameters
idstringrequiredThe project ID.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
ratingintegeroptionalFilter by star rating (1-5).
Returns
A paginated array of review objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/reviews?page=1&per_page=10" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/local/reviews/historyReturns review count and average rating over time.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/reviews/history?period=90d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/local/map-packReturns local pack (map pack) ranking positions for tracked keywords.
Parameters
idstringrequiredThe project ID.
Returns
An array of local pack ranking objects.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/map-pack \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/local/grid-rankReturns configured grid rank tracking grids for the project.
Parameters
idstringrequiredThe project ID.
Returns
An array of grid objects.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/grid-rank \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "id": "grid_1", "name": "Downtown Grid", "size": "5x5", "radiusMiles": 10 }
]
}Get grid keywords
/v1/projects/:id/local/grid-rank/:gridId/keywordsReturns keywords tracked within a specific grid.
Parameters
idstringrequiredThe project ID.
gridIdstringrequiredThe grid ID.
Returns
An array of grid keyword objects.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/grid-rank/grid_1/keywords \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "keyword": "plumber near me", "avgRank": 2.4, "bestRank": 1, "worstRank": 6 }
]
}Get grid check results
/v1/projects/:id/local/grid-rank/:gridId/resultsReturns the latest grid rank check results with position at each grid point.
Parameters
idstringrequiredThe project ID.
gridIdstringrequiredThe grid ID.
Returns
An array of grid point results.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/local/grid-rank/grid_1/results \
-H "Authorization: Bearer ad_live_your_api_key"{
"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 endpointsBing 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
/v1/projects/:id/bing/keywordsReturns keyword rankings tracked in Bing search results.
Parameters
idstringrequiredThe project ID.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
Returns
A paginated array of Bing keyword objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/bing/keywords?page=1" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/bing/overviewReturns Bing organic overview metrics including total keywords, position distribution, and trends.
Parameters
idstringrequiredThe project ID.
Returns
An overview object with Bing ranking metrics.
curl https://agencydashboard.biz/api/v1/projects/clx1abc123def/bing/overview \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": {
"totalKeywords": 60,
"top3": 4,
"top10": 18,
"top20": 35,
"averageRank": 22.1
}
}ADS - Google Ads
8 endpointsGoogle Ads
Google Ads data comes from the ADS > Google Ads platform of a project. Requires the Google Ads integration to be connected. Returns campaign-level performance metrics including spend, clicks, impressions, and conversions.
List Google Ads campaigns
/v1/projects/:id/google-ads/campaignsReturns campaign performance data including impressions, clicks, cost, and conversions. Supports pagination and period filtering.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of campaign objects with performance metrics.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/google-ads/campaigns?period=30d&page=1" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{
"campaignId": "123456",
"campaignName": "Brand Campaign",
"status": "ENABLED",
"impressions": 24500,
"clicks": 1800,
"cost": 2450.00,
"conversions": 45,
"ctr": 0.0735,
"cpc": 1.36
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 5,
"total_pages": 1
}
}Get Google Ads summary
/v1/projects/:id/google-ads/summaryReturns aggregated Google Ads metrics across all campaigns with support for period-over-period comparison.
Parameters
idstringrequiredThe project ID. Get this from the GET /v1/projects endpoint.
periodstringoptionalTime 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.
comparebooleanoptionalInclude previous-period comparison. Defaults to true.
Returns
An object with current metrics, previous period metrics, and percentage changes.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/google-ads/summary?period=30d&compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": {
"current": {
"totalSpend": 8200.00,
"totalClicks": 5400,
"totalImpressions": 82000,
"totalConversions": 120,
"avgCtr": 0.0659,
"avgCpc": 1.52
},
"previous": {
"totalSpend": 7600.00,
"totalClicks": 4900,
"totalImpressions": 76000,
"totalConversions": 105
},
"changes": {
"spend": 7.9,
"clicks": 10.2,
"conversions": 14.3
}
}
}List Google Ads ad groups
/v1/projects/:id/google-ads/ad-groupsReturns ad group performance data within campaigns.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of ad group objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/google-ads/ad-groups?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "adGroupId": "ag_123", "adGroupName": "SEO Services", "campaignName": "Brand Campaign", "clicks": 450, "impressions": 6200, "cost": 612.00 }
],
"pagination": { "page": 1, "perPage": 25, "total": 12, "totalPages": 1 }
}List Google Ads keywords
/v1/projects/:id/google-ads/keywordsReturns keyword-level performance data for Google Ads campaigns.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of keyword objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/google-ads/keywords?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "keyword": "seo services", "matchType": "PHRASE", "clicks": 180, "impressions": 2400, "cost": 245.00, "conversions": 8 }
],
"pagination": { "page": 1, "perPage": 25, "total": 85, "totalPages": 4 }
}List Google Ads search terms
/v1/projects/:id/google-ads/search-termsReturns search term report showing actual queries that triggered ads.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of search term objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/google-ads/search-terms?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "searchTerm": "best seo agency near me", "clicks": 24, "impressions": 310, "cost": 32.40, "conversions": 2 }
],
"pagination": { "page": 1, "perPage": 25, "total": 220, "totalPages": 9 }
}Get Google Ads demographics
/v1/projects/:id/google-ads/demographicsReturns ad performance broken down by age and gender demographics.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/google-ads/demographics?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": {
"age": [
{ "range": "25-34", "clicks": 820, "impressions": 12000, "cost": 1100.00 }
],
"gender": [
{ "gender": "Male", "clicks": 1200, "impressions": 18000, "cost": 1600.00 }
]
}
}Get Google Ads by device
/v1/projects/:id/google-ads/devicesReturns ad performance broken down by device type.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/google-ads/devices?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "device": "DESKTOP", "clicks": 2800, "impressions": 42000, "cost": 3800.00, "conversions": 65 },
{ "device": "MOBILE", "clicks": 2200, "impressions": 35000, "cost": 3100.00, "conversions": 48 }
]
}Get Google Ads hourly performance
/v1/projects/:id/google-ads/hourlyReturns ad performance broken down by hour of day.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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 hourly performance objects (0-23).
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/google-ads/hourly?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"success": true,
"data": [
{ "hour": 9, "clicks": 420, "impressions": 6200, "cost": 570.00 },
{ "hour": 10, "clicks": 480, "impressions": 7100, "cost": 650.00 }
]
}ADS - Meta Ads
7 endpointsMeta 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
/v1/projects/:id/meta-ads/campaignsReturns campaign-level performance data for Meta Ads.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of campaign objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/campaigns?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/meta-ads/adsetsReturns ad set-level performance data.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of ad set objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/adsets?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/meta-ads/adsReturns individual ad-level performance data.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of ad objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/ads?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/meta-ads/summaryReturns aggregated Meta Ads metrics with period comparison.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
comparebooleanoptionalInclude previous-period comparison. Defaults to true.
Returns
An object with current and previous period metrics.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/summary?period=30d&compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/meta-ads/demographicsReturns ad performance broken down by age and gender.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/demographics?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/meta-ads/placementsReturns ad performance broken down by placement (Feed, Stories, Reels, etc.).
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/placements?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/meta-ads/devicesReturns ad performance broken down by device type.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/meta-ads/devices?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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 endpointsBing Ads
Microsoft Advertising (Bing Ads) campaign data. Requires Bing Ads integration to be connected on the project.
List Bing Ads campaigns
/v1/projects/:id/bing-ads/campaignsReturns campaign-level performance data for Bing Ads.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of campaign objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/bing-ads/campaigns?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/bing-ads/summaryReturns aggregated Bing Ads metrics with period comparison.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
comparebooleanoptionalInclude comparison. Defaults to true.
Returns
An object with current and previous period metrics.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/bing-ads/summary?period=30d&compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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 endpointsAmazon Ads
Amazon Advertising campaign data including Sponsored Products, Brands, and Display campaigns. Requires Amazon Ads integration to be connected.
List Amazon Ads campaigns
/v1/projects/:id/amazon-ads/campaignsReturns campaign-level performance data for Amazon Ads.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of campaign objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/amazon-ads/campaigns?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/amazon-ads/summaryReturns aggregated Amazon Ads metrics with period comparison.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
comparebooleanoptionalInclude comparison. Defaults to true.
Returns
An object with current and previous period metrics.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/amazon-ads/summary?period=30d&compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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 endpointsLinkedIn Ads
LinkedIn Advertising campaign data. Requires LinkedIn Ads integration to be connected on the project.
List LinkedIn Ads campaigns
/v1/projects/:id/linkedin-ads/campaignsReturns campaign-level performance data for LinkedIn Ads.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25.
Returns
A paginated array of campaign objects.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/linkedin-ads/campaigns?period=30d" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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
/v1/projects/:id/linkedin-ads/summaryReturns aggregated LinkedIn Ads metrics with period comparison.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
comparebooleanoptionalInclude comparison. Defaults to true.
Returns
An object with current and previous period metrics.
curl "https://agencydashboard.biz/api/v1/projects/clx1abc123def/linkedin-ads/summary?period=30d&compare=true" \
-H "Authorization: Bearer ad_live_your_api_key"{
"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 endpointsErrors
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.
| Code | Status | Description |
|---|---|---|
| MISSING_API_KEY | 401 | No API key was provided in the Authorization header. |
| INVALID_API_KEY | 401 | The API key provided is not valid or does not exist. |
| REVOKED_API_KEY | 401 | The API key has been revoked by the owner. |
| EXPIRED_API_KEY | 401 | The API key has expired and is no longer valid. |
| NO_WHITELISTED_IPS | 403 | The API key requires IP whitelisting but no IPs have been configured. |
| IP_NOT_ALLOWED | 403 | The request originated from an IP address not in the API key's whitelist. |
| PROJECT_NOT_FOUND | 404 | The specified project does not exist or is not accessible with this API key. |
| ACCESS_DENIED | 403 | The API key does not have permission to access this resource. |
| INTERNAL_ERROR | 500 | An unexpected error occurred on the server. Please try again later. |
{
"success": false,
"error": {
"code": "INVALID_API_KEY",
"message": "The API key provided is not valid."
}
}{
"success": false,
"error": {
"code": "MISSING_API_KEY",
"message": "No API key was provided. Include your key in the Authorization header."
}
}{
"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.
| Plan | Requests/Minute | Requests/Day | API Keys |
|---|---|---|---|
| Free | No API access | 0 | |
| Starter | 30/min | 5,000/day | 2 |
| Professional | 100/min | 25,000/day | 5 |
| Agency | 300/min | 100,000/day | 20 |
| Enterprise | Custom | Custom | Unlimited |
Rate Limit Headers
Every API response includes headers to help you track your usage:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Maximum requests allowed in the current window |
| X-RateLimit-Remaining | Requests remaining in the current window |
| X-RateLimit-Reset | Unix timestamp (seconds) when the current window resets |
| Retry-After | Seconds to wait before retrying (only present on 429 responses) |
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please retry after 32 seconds."
}
}HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1711036800
Retry-After: 32
Facebook
Facebook page metrics, posts, and audience data from the connected Facebook integration. Tracks followers, engagement, reach, and post performance.
Get Facebook metrics
/v1/projects/:id/social/facebook/metricsReturns Facebook page metrics including followers, reach, and engagement over time.
Parameters
idstringrequiredThe project ID.
periodstringoptionalTime 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.
Get Facebook posts
/v1/projects/:id/social/facebook/postsReturns recent Facebook posts with engagement metrics.
Parameters
idstringrequiredThe project ID.
pageintegeroptionalPage number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 20.
Returns
A paginated array of post objects.
Get Facebook audience
/v1/projects/:id/social/facebook/audienceReturns Facebook audience demographics breakdown.
Parameters
idstringrequiredThe project ID.
Returns
An object with audience demographic breakdowns.