Agave Project Management API
Project Management resources in the Agave unified construction API.
Project Management resources in the Agave unified construction API.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/agave-project-management-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Agave Unified Construction API (derived from the provider…
version: '2021-11-21'
description: Machine-readable OpenAPI DERIVED by API Evangelist from the Postman collection Agave publishes at https://docs.agaveapi.com/agave-api/postman-collection (AgaveAPI-2024-09-10.zip, collection exported 2024-09-10, 437 requests).
contact:
name: Agave API Support
email: api-support@agaveapi.com
url: https://docs.agaveapi.com
x-derived-from: collections/agave-api-provider.postman_collection.json
x-method: derived
x-generated: '2026-08-30'
servers:
- url: https://api.agaveapi.com
description: Production
security:
- ClientId: []
ClientSecret: []
AccountToken: []
tags:
- name: Project Management
description: Project Management resources in the Agave unified construction API.
paths:
/projects:
get:
operationId: getProjects
summary: List Projects
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
post:
operationId: postProjects
summary: New Project
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
address:
street_1: 123 Main Street
street_2: Unit B
city: AnyTown
state: CA
postal_code: '19703'
amount: '500000.00'
completion_date: '2025-01-01'
name: AnyCompany dredging Project
number: JZ-102
start_date: '2022-01-01'
status: Active
type: Fixed Price
source_data:
Taxable_Flag: Y
Cost_Center: '1010'
/projects/{project_id}:
get:
operationId: getProjectsByProjectId
summary: Show Project
tags:
- Project Management
parameters:
- name: project_id
in: path
required: true
schema:
type: string
description: Agave identifier for the project.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
put:
operationId: putProjectsByProjectId
summary: Update Project
tags:
- Project Management
parameters:
- name: project_id
in: path
required: true
schema:
type: string
description: Agave identifier for the project.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
name: Test update 2
number: PA-001
delete:
operationId: deleteProjectsByProjectId
summary: Delete Project
tags:
- Project Management
parameters:
- name: project_id
in: path
required: true
schema:
type: string
description: Agave identifier for the project.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/checklists:
get:
operationId: getChecklists
summary: List Checklists
tags:
- Project Management
parameters:
- name: page
in: query
required: false
schema:
type: string
- name: per_page
in: query
required: false
schema:
type: string
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/checklists/{checklist_id}:
get:
operationId: getChecklistsByChecklistId
summary: Show Checklist
tags:
- Project Management
parameters:
- name: checklist_id
in: path
required: true
schema:
type: string
description: Agave identifier for the checklist.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/checklist-templates:
get:
operationId: getChecklistTemplates
summary: List Checklist Templates
tags:
- Project Management
parameters:
- name: page
in: query
required: false
schema:
type: string
- name: per_page
in: query
required: false
schema:
type: string
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
filters:
- field: type
operator: '='
value: Punch List
/checklist-templates/{checklist_template_id}:
get:
operationId: getChecklistTemplatesByChecklistTemplateId
summary: Show Checklist Template
tags:
- Project Management
parameters:
- name: checklist_template_id
in: path
required: true
schema:
type: string
description: Agave identifier for the checklist template.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/contacts:
get:
operationId: getContacts
summary: List Contacts (Company)
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
post:
operationId: postContacts
summary: New Contact (Company)
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
address:
city: San Francisco2
country: USA2
postal_code: '6666667'
state: CA2
street_1: street3
customer_id: null
email: email223@email.com
first_name: name6
image_url: test.com/logo.png
job_title: Salesperson
last_name: lastname
phone: 1-666-666-6668
/vendors/{vendor_id}/contacts:
get:
operationId: getVendorsByVendorIdContacts
summary: List Contacts (Vendor)
tags:
- Project Management
parameters:
- name: vendor_id
in: path
required: true
schema:
type: string
description: Agave identifier for the vendor.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/customers/{customer_id}/contacts:
get:
operationId: getCustomersByCustomerIdContacts
summary: List Contacts (Customer)
tags:
- Project Management
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
description: Agave identifier for the customer.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
post:
operationId: postCustomersByCustomerIdContacts
summary: New Contact (Customer)
tags:
- Project Management
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
description: Agave identifier for the customer.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
email: test-1@agaveapitest.com
full_name: Test {{$randomFullName}}
job_title: Salesperson
mobile_phone: '1235550101'
phone: '1235550102'
/contacts/{contact_id}:
get:
operationId: getContactsByContactId
summary: Show Contact (Company)
tags:
- Project Management
parameters:
- name: contact_id
in: path
required: true
schema:
type: string
description: Agave identifier for the contact.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
put:
operationId: putContactsByContactId
summary: Update Contact (Company)
tags:
- Project Management
parameters:
- name: contact_id
in: path
required: true
schema:
type: string
description: Agave identifier for the contact.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
address:
city: San Francisco2
country: USA2
postal_code: '6666667'
state: CA2
street_1: street3
customer_id: null
email: email223@email.com
first_name: name6
image_url: test.com/logo.png
job_title: Salesperson
last_name: lastname
phone: 1-666-666-6668
delete:
operationId: deleteContactsByContactId
summary: Delete Contact (Company)
tags:
- Project Management
parameters:
- name: contact_id
in: path
required: true
schema:
type: string
description: Agave identifier for the contact.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/vendors/{vendor_id}/contacts/{contact_id}:
get:
operationId: getVendorsByVendorIdContactsByContactId
summary: Show Contact (Vendor)
tags:
- Project Management
parameters:
- name: vendor_id
in: path
required: true
schema:
type: string
description: Agave identifier for the vendor.
- name: contact_id
in: path
required: true
schema:
type: string
description: Agave identifier for the contact.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/customers/{customer_id}/contacts/{contact_id}:
get:
operationId: getCustomersByCustomerIdContactsByContactId
summary: Show Contact (Customer)
tags:
- Project Management
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
description: Agave identifier for the customer.
- name: contact_id
in: path
required: true
schema:
type: string
description: Agave identifier for the contact.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
put:
operationId: putCustomersByCustomerIdContactsByContactId
summary: Update Contact (Customer)
tags:
- Project Management
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
description: Agave identifier for the customer.
- name: contact_id
in: path
required: true
schema:
type: string
description: Agave identifier for the contact.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
address:
city: San Francisco2
country: USA2
postal_code: '6666667'
state: CA2
street_1: street3
customer_id: null
email: email223@email.com
first_name: name6
image_url: test.com/logo.png
job_title: Salesperson
last_name: lastname
phone: 1-666-666-6668
delete:
operationId: deleteCustomersByCustomerIdContactsByContactId
summary: Delete Contact (Customer)
tags:
- Project Management
parameters:
- name: customer_id
in: path
required: true
schema:
type: string
description: Agave identifier for the customer.
- name: contact_id
in: path
required: true
schema:
type: string
description: Agave identifier for the contact.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/coordination-issues:
get:
operationId: getCoordinationIssues
summary: List Coordination Issues
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
post:
operationId: postCoordinationIssues
summary: New Coordination Issue
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: false
content:
application/json:
schema:
type: object
/coordination-issues/{coordination_issue_id}:
get:
operationId: getCoordinationIssuesByCoordinationIssueId
summary: Show Coordination Issue
tags:
- Project Management
parameters:
- name: coordination_issue_id
in: path
required: true
schema:
type: string
description: Agave identifier for the coordination issue.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
put:
operationId: putCoordinationIssuesByCoordinationIssueId
summary: Update Coordination Issue
tags:
- Project Management
parameters:
- name: coordination_issue_id
in: path
required: true
schema:
type: string
description: Agave identifier for the coordination issue.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
assignee_id: '{{contact_id}}'
description: Updated Description
due_date: '2022-12-25'
name: Updated Title 2
status: Open
type: Issue
delete:
operationId: deleteCoordinationIssuesByCoordinationIssueId
summary: Delete Coordination Issue
tags:
- Project Management
parameters:
- name: coordination_issue_id
in: path
required: true
schema:
type: string
description: Agave identifier for the coordination issue.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/coordination-issues/{coordination_issue_id}/attachments:
post:
operationId: postCoordinationIssuesByCoordinationIssueIdAttachments
summary: New Attachment
tags:
- Project Management
parameters:
- name: coordination_issue_id
in: path
required: true
schema:
type: string
description: Agave identifier for the coordination issue.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: false
content:
application/json:
schema:
type: object
/coordination-issues/{coordination_issue_id}/viewpoints:
post:
operationId: postCoordinationIssuesByCoordinationIssueIdViewpoints
summary: New Viewpoint
tags:
- Project Management
parameters:
- name: coordination_issue_id
in: path
required: true
schema:
type: string
description: Agave identifier for the coordination issue.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: false
content:
application/json:
schema:
type: object
/drawings:
get:
operationId: getDrawings
summary: List Drawings
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/drawings/{drawing_id}:
get:
operationId: getDrawingsByDrawingId
summary: Show Drawing
tags:
- Project Management
parameters:
- name: drawing_id
in: path
required: true
schema:
type: string
description: Agave identifier for the drawing.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/drawings/{drawing_id}/versions:
get:
operationId: getDrawingsByDrawingIdVersions
summary: List Drawing Versions
tags:
- Project Management
parameters:
- name: drawing_id
in: path
required: true
schema:
type: string
description: Agave identifier for the drawing.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/drawings/{drawing_id}/versions/{drawing_version_id}:
get:
operationId: getDrawingsByDrawingIdVersionsByDrawingVersionId
summary: Show Drawing Version
tags:
- Project Management
parameters:
- name: drawing_id
in: path
required: true
schema:
type: string
description: Agave identifier for the drawing.
- name: drawing_version_id
in: path
required: true
schema:
type: string
description: Agave identifier for the drawing version.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/drawing-areas:
get:
operationId: getDrawingAreas
summary: List Drawing Areas
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/drawing-areas/{drawing_area_id}:
get:
operationId: getDrawingAreasByDrawingAreaId
summary: Show Drawing Folder
tags:
- Project Management
parameters:
- name: drawing_area_id
in: path
required: true
schema:
type: string
description: Agave identifier for the drawing area.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/issues:
get:
operationId: getIssues
summary: List Issues
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/locations:
get:
operationId: getLocations
summary: List Locations
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/locations/{location_id}:
get:
operationId: getLocationsByLocationId
summary: Show Location
tags:
- Project Management
parameters:
- name: location_id
in: path
required: true
schema:
type: string
description: Agave identifier for the location.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/observations:
get:
operationId: getObservations
summary: List Observations
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
post:
operationId: postObservations
summary: New Observation
tags:
- Project Management
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
assignee_id: '{{user_id}}'
description: austin test description
due_date: '2022-03-25'
name: austin test observation 2
location_id: '{{location_id}}'
root_cause: Communication
status: initiated
type: Commissioning
source_data:
priority: Medium
/observations/{observation_id}:
get:
operationId: getObservationsByObservationId
summary: Show Observation
tags:
- Project Management
parameters:
- name: observation_id
in: path
required: true
schema:
type: string
description: Agave identifier for the observation.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
put:
operationId: putObservationsByObservationId
summary: Update Observation
tags:
- Project Management
parameters:
- name: observation_id
in: path
required: true
schema:
type: string
description: Agave identifier for the observation.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
assignee_id: '{{user_id}}'
description: pooria test description
due_date: '2022-03-25'
name: pooria test observation 2
location_id: '{{location_id}}'
root_cause: Communication
status: closed
type: Commissioning
delete:
operationId: deleteObservationsByObservationId
summary: Delete Observation
tags:
- Project Management
parameters:
- name: observation_id
in: path
required: true
schema:
type: string
description: Agave identifier for the observation.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
/observations/{observation_id}/attachments:
post:
operationId: postObservationsByObservationIdAttachments
summary: New Attachment
tags:
- Project Management
parameters:
- name: observation_id
in: path
required: true
schema:
type: string
description: Agave identifier for the observation.
responses:
'200':
description: Successful response
'401':
description: Unauthorized - missing or invalid Client-Id / Client-Secret / Account-Token / API-Version header
'429':
description: Too Many Requests - Agave or source-system rate limit reached
requestBody:
required: false
content:
application/json:
schema:
type: object
/rfis:
get:
operationId: getRfis
summary: List RFIs
tags:
- Project Management
parameters:
- name: expand
in: query
required: false
schema:
type: string
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/agave/refs/heads/main/openapi/agave-project-management-api-openapi.yml