openapi: 3.1.0 info: title: Coordinate REST Comments Groups API version: v1 description: 'The Coordinate REST API lets you add, update, and retrieve the entities that make up Coordinate''s client project-execution platform: projects, project pages, tasks, task groups, stakeholders, goals, progress reports, discussion entries (comments), and organizations. All requests are scoped to the vendor that owns the API key; `vendor_id` is derived from the key and cannot be overridden. A companion webhook API lets external systems subscribe to create/update events. This description is captured by the API Evangelist enrichment pipeline from Coordinate''s published agent-oriented API reference.' contact: name: Coordinate Support email: support@coordinatehq.com url: https://www.coordinatehq.com/library/integrating-with-coordinate termsOfService: https://coordinatehq.com/legal/terms-and-conditions x-api-reference: https://app.coordinatehq.com/static/API_Documentation.html servers: - url: https://app.coordinatehq.com/api/v1 description: Production security: - BearerHeader: [] tags: - name: Groups description: Task groups (internally "Milestone"). paths: /projects/{project_id}/group: parameters: - $ref: '#/components/parameters/ProjectId' get: operationId: listGroups summary: List task groups tags: - Groups parameters: - $ref: '#/components/parameters/LastModifiedDt' - $ref: '#/components/parameters/Sort' responses: '200': description: Array of groups content: application/json: schema: type: array items: $ref: '#/components/schemas/Group' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createGroup summary: Create a task group tags: - Groups requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateGroupRequest' responses: '200': description: The created group content: application/json: schema: $ref: '#/components/schemas/Group' '400': $ref: '#/components/responses/ValidationError' '401': $ref: '#/components/responses/Unauthorized' /projects/{project_id}/group/{group_id}: parameters: - $ref: '#/components/parameters/ProjectId' - $ref: '#/components/parameters/GroupId' get: operationId: getGroup summary: Get one task group tags: - Groups responses: '200': description: The group content: application/json: schema: $ref: '#/components/schemas/Group' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' post: operationId: updateGroup summary: Update a task group tags: - Groups requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateGroupRequest' responses: '200': description: The updated group content: application/json: schema: $ref: '#/components/schemas/Group' '401': $ref: '#/components/responses/Unauthorized' components: schemas: Error: type: object properties: success: type: boolean example: false error: type: string CreateGroupRequest: type: object required: - group_title properties: group_title: type: string group_target_date: type: string group_completed_dt: type: string EntityBase: type: object properties: entity_type: type: string entity_url: type: string last_modified_dt: type: string vendor_id: type: string format: uuid external_object_id: type: - string - 'null' Group: allOf: - $ref: '#/components/schemas/EntityBase' - type: object properties: group_id: type: string format: uuid group_title: type: string group_target_date: type: - string - 'null' group_completed_dt: type: - string - 'null' project_id: type: string format: uuid project_name: type: string responses: ValidationError: description: Validation failure content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Missing or invalid API key NotFound: description: Resource not found (often a plain-text body such as "Project Not Found") parameters: GroupId: name: group_id in: path required: true schema: type: string format: uuid Sort: name: sort in: query required: false description: Sort by last_modified_dt. schema: type: string enum: - asc - desc default: asc ProjectId: name: project_id in: path required: true schema: type: string format: uuid LastModifiedDt: name: last_modified_dt in: query required: false description: ISO 8601. Return only items modified at or after this timestamp. URL-encode `+` as `%2B`. schema: type: string securitySchemes: BearerHeader: type: apiKey in: header name: Bearer description: 'API key sent in a custom `Bearer:` header (note: this is a header named "Bearer", not the standard `Authorization: Bearer` scheme). Create keys in the Coordinate UI under Settings > Integrations > API Keys. The key scopes all requests to its owning vendor.'