Public API

Rate Limiting

Rate limiting is enforced to ensure fair usage and prevent abuse of the API, with a limit of 15 requests per 10 seconds. This means that any client making requests to the endpoint should ensure that they do not exceed this limit, as doing so could result in temporarily blocked access. It is advisable to implement request throttling on the client side to manage request rates efficiently and ensure compliance with these limits.

Retrieve a list of all your pages.

GET /api/public/pages

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Response

{
  "personalPages": {
    "count": 3,
    "pages": [
      {
        "id": "page_001",
        "title": "Personal Page A",
        "slug": "my-slug-a",
        "note": "page-a-note",
        "createdAt": "2025-01-01T10:00:00.000Z",
        "updatedAt": "2025-01-10T15:00:00.000Z"
      },
      {
        "id": "page_002",
        "title": "Personal Page B",
        "slug": "my-slug-b",
        "note": "page-b-note",
        "createdAt": "2025-02-01T12:30:00.000Z",
        "updatedAt": "2025-02-15T08:45:00.000Z"
      },
      {
        "id": "page_003",
        "title": "Personal Page C",
        "slug": "my-slug-c",
        "note": "page-c-note",
        "createdAt": "2025-03-01T09:20:00.000Z",
        "updatedAt": "2025-03-20T17:00:00.000Z"
      }
    ]
  },
  "organizationPages": {
    "count": 3,
    "organizations": [
      {
        "organization": {
          "id": "org_001",
          "name": "Example Organization"
        },
        "pages": [
          {
            "id": "org_page_001",
            "title": "Org Page A",
            "slug": "org-slug-a",
            "note": "org-page-a-note",
            "createdAt": "2025-04-01T11:00:00.000Z",
            "updatedAt": "2025-04-05T14:00:00.000Z"
          },
          {
            "id": "org_page_002",
            "title": "Org Page B",
            "slug": "org-slug-b",
            "note": "org-page-b-note",
            "createdAt": "2025-04-10T10:15:00.000Z",
            "updatedAt": "2025-04-15T16:30:00.000Z"
          },
          {
            "id": "org_page_003",
            "title": "Org Page C",
            "slug": "org-slug-c",
            "note": "org-page-c-note",
            "createdAt": "2025-04-20T09:45:00.000Z",
            "updatedAt": "2025-04-25T13:20:00.000Z"
          }
        ]
      }
    ]
  },
  "summary": {
    "totalPersonalPages": 3,
    "totalOrganizationPages": 3,
    "totalPages": 6,
    "organizationsCount": 1
  }
}

Retrieve analytics data for a specific page by its slug.

GET /api/public/stats/[slug]

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Query params

Name
Type
Description

startDate

YYYY-MM-DD (optional)

Start date for data filtering

endDate

YYYY-MM-DD (optional)

End date for data filtering

Response

{
  "slug": "my-page-slug",
  "totalViews": 1234,
  "totalClicks": 456,
  "totalDirect": 78,
  "totalChatbotClicks": 90,
  "totalSafed": 12,
  "totalBlocked": 34,
  "topCountries": [
    { "country": "US", "views": 320 },
    { "country": "FR", "views": 215 }
  ],
  "topLinks": [
    { "url": "https://example.com", "clicks": 140 }
  ],
  "topReferrers": [
    { "referrer": "https://google.com", "views": 300 },
    { "referrer": "https://facebook.com", "views": 200 }
  ],
  "topDeviceTypes": [
    { "deviceType": "mobile", "views": 500 },
    { "deviceType": "desktop", "views": 400 }
  ],
  "dailyStats": [
    {
      "date": "2025-06-20",
      "views": 120,
      "clicks": 45
    }
  ]
}

Last updated