API & IntegrationsDocumentation
API: Pages and Collection
Manage pages and trigger async page collection (crawl).
Page Endpoints
GET
/v1/projects/:id/pagesAuthenticatedList pages in the project, ordered by creation date. Supports cursor pagination.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| limit | integer | optional | Pages to return. Default 50, max 500. |
| after | string | optional | Cursor from pagination.nextCursor to fetch the next page. |
curl -H "x-api-key: $ABLELYTICS_API_KEY" \
"https://api.ablelytics.com/v1/projects/PROJECT_ID/pages?limit=100"Response
{
"data": [
{
"id": "pageId",
"url": "https://example.com/about",
"title": "About Us",
"statusCode": 200,
"createdAt": "2024-01-15T09:00:00Z"
}
],
"pagination": {
"limit": 50,
"nextCursor": "cm9wa3BqMzQ1Ng",
"hasMore": true
}
}Status Codes
200 OK401 Unauthorized404 Not Found500 Internal Server Error
POST
/v1/projects/:id/pagesAuthenticatedManually add a page to the project. Useful for pages behind authentication or not discoverable by the crawler.
curl -X POST https://api.ablelytics.com/v1/projects/PROJECT_ID/pages \
-H "x-api-key: $ABLELYTICS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/dashboard","title":"User Dashboard"}'Request Body
{
"url": "https://example.com/dashboard",
"title": "User Dashboard"
}Response
{
"data": {
"id": "pageId",
"url": "https://example.com/dashboard",
"title": "User Dashboard",
"statusCode": null,
"createdAt": "2024-01-15T09:00:00Z"
}
}Status Codes
201 Created400 Bad Request401 Unauthorized404 Not Found500 Internal Server Error
DELETE
/v1/projects/:id/pages/:pageIdAuthenticatedRemove a page from the project. Associated scan results are retained.
curl -X DELETE \
https://api.ablelytics.com/v1/projects/PROJECT_ID/pages/PAGE_ID \
-H "x-api-key: $ABLELYTICS_API_KEY"Response
{
"data": { "id": "pageId", "deleted": true }
}Status Codes
200 OK401 Unauthorized404 Not Found500 Internal Server Error
Collect Pages (Crawl)
POST
/v1/projects/:id/collect-pagesAuthenticatedQueue an async page collection job. The crawler discovers internal links from your project domain and adds them as pages. Returns immediately with a runId to poll.
curl -X POST \
https://api.ablelytics.com/v1/projects/PROJECT_ID/collect-pages \
-H "x-api-key: $ABLELYTICS_API_KEY"Response
{
"data": {
"runId": "clxr7890",
"status": "queued",
"message": "Page collection started. Poll GET /v1/runs/clxr7890 for status."
}
}Status Codes
202 Accepted401 Unauthorized404 Not Found500 Internal Server Error
- →This is an async operation — response is 202 Accepted, not 200.
- →Poll GET /v1/runs/:runId every 5–10 seconds until status is done or failed.
- →Newly discovered pages are automatically added to the project.