Skip to content

Projects API

The Projects API lets you create and manage projects and their associated sites.

GET /api/v1/projects

Query parameters:

ParameterTypeDescription
statusstringFilter by status: draft, active, on_hold, completed, archived
pageintPage number
per_pageintItems per page (max 100)

Example:

Terminal window
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
"https://api.ramsdoc.com/api/v1/projects?status=active"

Response:

{
"data": [
{
"id": "...",
"name": "Acme Tower Refurbishment",
"reference": "PRJ-2026-042",
"client_name": "Acme Properties Ltd",
"status": "active",
"cdm_notifiable": true,
"start_date": "2026-04-01",
"end_date": "2026-09-30",
"created_at": "2026-03-10T09:00:00Z"
}
],
"meta": { "current_page": 1, "per_page": 25, "total": 8 }
}
POST /api/v1/projects
{
"name": "Acme Tower Refurbishment",
"reference": "PRJ-2026-042",
"client_name": "Acme Properties Ltd",
"client_contact_name": "Jane Smith",
"client_contact_email": "jane@acmeproperties.co.uk",
"cdm_notifiable": true,
"status": "active",
"start_date": "2026-04-01",
"end_date": "2026-09-30",
"industry_id": "..."
}
GET /api/v1/projects/{project}
PUT /api/v1/projects/{project}
DELETE /api/v1/projects/{project}

Soft-deletes the project. Documents are preserved but the project is removed from active lists.

GET /api/v1/projects/{project}/documents

Returns all documents associated with the project.

GET /api/v1/projects/{project}/contractors

Returns all contractors invited to the project with their submission status.

POST /api/v1/sites
{
"project_id": "...",
"name": "Acme Tower — Main Building",
"address": "1 Tower Street",
"city": "London",
"postcode": "EC1A 1BB",
"latitude": 51.5185,
"longitude": -0.0891,
"site_contact_name": "Bob Jones",
"site_contact_phone": "07700 900123",
"access_notes": "Enter via side gate on Tower Lane. Report to site cabin.",
"emergency_assembly_point": "Car park on Tower Lane, west side",
"nearest_hospital": "St Bartholomew's Hospital",
"nearest_hospital_address": "West Smithfield, London EC1A 7BE"
}
GET /api/v1/sites/{site}
PUT /api/v1/sites/{site}
POST /api/v1/sites/{site}/photos

Upload one or more photos for the site. Use multipart/form-data:

Terminal window
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
-F "photos[]=@site-entrance.jpg" \
-F "photos[]=@work-area.jpg" \
"https://api.ramsdoc.com/api/v1/sites/SITE_ID/photos"

Photos are stored and available for AI analysis during document generation.

EndpointDescription
GET /api/v1/industriesList available industries for project classification
GET /api/v1/search?q=...Global search across documents, projects, and hazards