Skip to content

Subcontractors

Subcontractors are external companies or individuals that can be assigned to jobs. They are managed at the tenant level and can be assigned to multiple jobs.

Adding a Subcontractor

Owners, Project Managers, and Platform Admins can add a new subcontractor from the app:

  1. Open Subcontractors from the main navigation.
  2. Click + Add Subcontractor in the top right of the list page.
  3. Fill in the form:
    • Name (required) — the company or individual's name.
    • Specialty — trade or category (e.g. Electrical, Plumbing, Concrete).
    • Phone
    • Email
    • Notes — internal notes about the vendor.
  4. Click Create Subcontractor. You'll be taken to the new subcontractor's detail page.

Accounting and other roles can view subcontractors but cannot create them.

Access

Action Allowed Roles
View list / detail Owner, PM, Accounting, Platform Admin
Create / Edit Owner, PM, Platform Admin
Delete Owner, PM, Platform Admin

API Endpoints

List Subcontractors

GET /{slug}/api/v1/subcontractors/

Returns a paginated list (25 per page, max 100).

Query parameters:

Parameter Description
search Filter by name (case-insensitive contains)
ordering Sort by name, -name, created_at, -created_at (default: name)
page_size Override page size (max 100)

Response envelope:

{
  "count": 12,
  "next": "...",
  "previous": null,
  "results": [
    {
      "id": "uuid",
      "name": "ABC Electrical",
      "phone": "312-555-0100",
      "email": "[email protected]",
      "specialty": "Electrical",
      "notes": "",
      "created_at": "2026-01-15T10:00:00Z"
    }
  ]
}

Create Subcontractor

POST /{slug}/api/v1/subcontractors/

{
  "name": "ABC Electrical",
  "phone": "312-555-0100",
  "email": "[email protected]",
  "specialty": "Electrical",
  "notes": "Preferred vendor for commercial projects"
}

Only name is required.

Retrieve / Update

  • GET /{slug}/api/v1/subcontractors/{id}/
  • PATCH /{slug}/api/v1/subcontractors/{id}/
  • PUT /{slug}/api/v1/subcontractors/{id}/

Delete

DELETE /{slug}/api/v1/subcontractors/{id}/

Deletes are soft deletes — the record is marked as deleted and hidden from all list and detail views but preserved in the database for audit purposes.

Assigning Subcontractors to Jobs

Once a subcontractor exists, they can be assigned to a Job:

POST /{slug}/api/v1/jobs/{job-id}/assign_subcontractor/

{ "subcontractor_id": "uuid" }

See Jobs for full assignment management details.