▪ Free plan: 3 websites with daily snapshots, no card required → ▪ ▪ Free plan: 3 websites, no card →

Projects

Projects let you organize monitors into logical groups — for example, by client, environment, or team. Every account starts with a default project, and you can create as many additional projects as you need. Monitors can optionally belong to a project, making it easier to filter and manage large numbers of monitors.

List projects

Returns all projects on your account, sorted by creation date (newest first). Use the sort and order parameters to change the ordering. The response includes a monitors_count field so you can see at a glance how many monitors belong to each project.

GET/v1/projects

Query parameters

ParameterTypeDescription
per_pageintegerItems per page (default: 20)
sortstringcreated_at (default), updated_at, name
orderstringdesc (default) or asc
bash
curl "https://api.snapshotarchive.com/v1/projects" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Response

200 OK
{
  "data": [
    {
      "id": 1,
      "name": "My Website",
      "description": "Production site monitoring",
      "is_default": true,
      "monitors_count": 5,
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-01-15T10:30:00Z"
    }
  ],
  "meta": { "current_page": 1, "per_page": 20, "total": 1, "last_page": 1 }
}

Create a project

Creates a new project to group your monitors. The only required field is name — the description is optional and useful for documenting the project's purpose for your team.

POST/v1/projects

Request body

FieldTypeRequiredDescription
namestringYesProject name (max 255 characters)
descriptionstringNoProject description (max 1000 characters)
bash
curl -X POST https://api.snapshotarchive.com/v1/projects \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"name": "My Website", "description": "Production monitoring"}'
Dashboard showing the 'My Website' project created via API
The project created via API appears in your dashboard — with monitor count, description, and creation date.

Get, update, and delete a project

Use the project id from the create or list response to retrieve, modify, or remove a project. When updating, send only the fields you want to change — omitted fields keep their current values.

GET /v1/projects/{id}

Retrieve a single project with its monitors_count.

PATCH /v1/projects/{id}

Update a project's name or description. Send only the fields you want to change.

bash
# Update project name
curl -X PATCH https://api.snapshotarchive.com/v1/projects/1 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"name": "Production Sites"}'
DELETE /v1/projects/{id}

Delete a project. Returns 204 No Content on success. Monitors in the project are not deleted — they become unassigned.

bash
curl -X DELETE https://api.snapshotarchive.com/v1/projects/1 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

List monitors in a project

If you need to see only the monitors belonging to a specific project, use this endpoint instead of filtering the global monitors list. It supports the same filtering and sorting options as the main monitors list.

GET/v1/projects/{id}/monitors

Query parameters

ParameterTypeDescription
statusstringFilter: active, paused, error, plan_exceeded
sortstringcreated_at (default), updated_at, url, name, status
orderstringdesc (default) or asc
per_pageintegerItems per page (default: 20)
bash
# List active monitors in project 1
curl "https://api.snapshotarchive.com/v1/projects/1/monitors?status=active" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"