Welcome to the Coperniq API release notes. This section highlights noteworthy changes across endpoints, schemas, and docs.

Recent highlights

  • New: Object naming aligned with Coperniq UI — clients are now accounts, requests are now opportunities, and comments are now notes.
  • New: Retrieve archived records by passing include_archived=true on any GET list or get-by-ID endpoint for projects, opportunities, accounts, and workflows.
  • New: Form template endpoints — GET /form-templates and GET /form-templates/{formTemplateId} — let you retrieve workflow templates and their structure.
  • New: PATCH /form-templates/{formTemplateId} — update a form template’s name, layout, assignee, collaborators, labels, and due date configuration.
  • New: Streamed file uploads for projects and opportunities with binary-safe handling

Documentation updates

  • Clarified file upload usage, binary limits, and recommended large-file approach
  • Documented full TradeGroup, ProductCategory, and ServiceCategory enums for catalog items and wired them into the public schemas.

Looking for a specific date? See the entries below.

File uploads: streaming support, reliability fixes, and limits

What’s new?

  • Streamed multipart uploads for files:
    • POST /projects/{projectId}/files/upload
    • POST /requests/{requestId}/files/upload
  • You can provide phaseInstanceId either as a form field or as a ?phaseInstanceId= query parameter; the API will include it once in the forwarded payload.

Fixes and improvements

  • Robust parsing: files are fully consumed when building the outgoing multipart/form-data.
  • Getting a project returns the project manager data.
  • Allow files to be added in a certain project or request phase.

Usage notes

  • Send multipart/form-data with a file part; optional fields may include phaseInstanceId.
  • For non‑multipart uploads, send the raw bytes as the request body and pass filename/content type via:
    • Headers X-File-Name and X-File-Content-Type (case‑insensitive), or
    • Query params name and content_type.

Platform limits

  • The API enforces a 10 MB request limit. With base64 encoding and multipart overhead, practical max payload is ~6–7 MB.
  • For larger uploads, use an out‑of‑band approach (e.g., presigned upload) and then create the file record by URL.

Compatibility

  • No response shape changes. Successful uploads return: id, name, downloadUrl, type, updatedAt, createdAt, companyId, metaData, source, createdByUser, isArchived.