Overview
Agencies can build custom dashboards on top of Ranked AI’s data using the REST API for data retrieval and webhooks for real-time updates. This guide walks through the recommended architecture.Architecture
Your dashboard pulls data from the API and caches it locally. Webhooks push updates so you don’t need to poll.API pulls data into your database
Your server calls the Ranked AI API to fetch keywords, audits, backlinks, and other data, then stores it in your database.
Webhooks push real-time updates
When keyword positions update or content changes, Ranked AI sends a webhook to your server with the event details.
Step 1: Discover projects
List all SEO projects for the authenticated user:Step 2: Initial data sync
Pull the full dataset for each project:Step 3: Set up webhooks for real-time updates
Instead of polling, subscribe to events:Step 4: Handle webhook events
Recommended sync strategy
| Data | Strategy | Frequency |
|---|---|---|
| Keyword positions | Webhook keywords.updated triggers API pull | Daily (after scan completes) |
| AI visibility | Webhook prompts.updated triggers API pull | Monthly (after analysis) |
| Audit results | Webhook audit.completed triggers API pull | Monthly (after scan) |
| Content status | Webhook content.status_changed for real-time | Real-time |
| Backlinks | Scheduled API pull (no webhook yet) | Weekly cron job |
| Reports | On-demand API call | As needed |
Tips
- Use Read Only API keys for data fetching and a separate Read + Write key for webhook management
- Cache API responses in your database rather than calling the API on every page load
- The
keywords.updatedwebhook fires once per daily scan, not per keyword — use it as a signal to re-sync - Implement retry logic for your API calls with exponential backoff