Skip to main content
The Sitepulse API uses consistent JSON formatting, standard HTTP status codes, and pagination conventions.

Content type

All requests and responses use JSON:
  • Request bodies: application/json
  • Responses: application/json

Resource wrapping

Single resources

Single resources are wrapped in a data key:
Some endpoints (for example GET /me) nest multiple objects inside data:

Collections

Collections use standard paginator format:
Non-paginated collections (for example GET /teams) return data as an array without links / meta.

Timestamps

Datetime fields on resource objects (such as created_at, updated_at, opened_at, and resolved_at) are ISO 8601 strings in UTC:
Datetime values inside check result payloads can use tool-specific formats. For example, SSL valid_from / valid_to are returned as YYYY-MM-DD HH:MM:SS without a timezone offset. See Check results.

Identifiers

Resources use UUID strings in API paths: {team-uuid} is only a placeholder label. It is a UUID, named separately in examples so it is not confused with a site, check, or issue UUID.

Team context

For routes under a team, site, check, or issue, middleware resolves the team and sets it as the token user’s current team for that request. This drives plan-limit checks and policies that depend on currentTeam.
You do not send a separate X-Team-Id header. Scope operations with the team UUID or site uuid in the path.
For GET /issues, filter to one team with ?team={team-uuid}. Without team, results include all teams where the user has viewIssues permission.

Pagination

List endpoints accept these query parameters:

Example

HTTP status codes

Validation errors (422)

Standard validation shape:

Common validation cases

  • Duplicate site URL within a team
  • Plan site limit reached
  • Check tool not allowed on plan or not enabled on site
  • Invalid cadence for plan tier
  • Invalid filter or sort query parameters

Authorization vs not found

Cross-team access to sites, checks, and issues returns 404 Not Found rather than 403, so resource existence is not leaked across tenants.

Rate limits

All API routes use the default api throttle middleware. Check runs are further limited:
POST /sites/{site}/checks - 10 requests per minute per token/user
API check runs also enforce the site’s per-tool on-demand cadence, so repeated requests for the same tool may return 422 before the request throttle is reached. When throttled, the API returns 429 Too Many Requests with Retry-After headers where configured.

Enums

Check tools

Tool values in request bodies and responses:

Check status

Issue status

Filter with status=active to include both open and acknowledged issues.
The API supports read access only. Acknowledge and resolve actions are available in the dashboard Issues page.

Issue severity

Example requests

See also