Docs
Developers

API reference

Every endpoint of the APROS Public API — method, path, permissions, parameters, request body and responses — generated from the platform's own specification.

The APROS Public API: the same records your team works with in APROS — leads, deals, contacts, companies, invoices, products, projects, tasks and more — over HTTPS and JSON. Every request goes to your own workspace address and is authorized with an API key, within the permissions the key was given. Start with Authentication and the Quickstart.

Base URL

Every workspace is its own address. Send requests to https://{workspace}.apros.app, with {workspace} replaced by your workspace name.

Endpoints

Activity

Comment

  • GET /api/crm/comments — List/create comments on a record (entityType + entityId). Supports visibility INTERNAL|SHARED and external authorship. Comments on a CUSTOM record additionally require that record type's VIEW_<TYPE> permission.
  • POST /api/crm/comments — List/create comments on a record (entityType + entityId). Supports visibility INTERNAL|SHARED and external authorship. Comments on a CUSTOM record additionally require that record type's VIEW_<TYPE> permission.
  • GET /api/crm/comments/{id} — Read/update/delete one comment. Reads are gated by the commented record's own permission; writes are restricted to the comment's author.
  • DELETE /api/crm/comments/{id} — Read/update/delete one comment. Reads are gated by the commented record's own permission; writes are restricted to the comment's author.
  • PATCH /api/crm/comments/{id} — Read/update/delete one comment. Reads are gated by the commented record's own permission; writes are restricted to the comment's author.

Company

Contact

Currency

Custom entity

Deal

Department

Directory

Document

Document record

Employee

File

  • GET /api/files — List files (either VIEW_FILE or VIEW_DOCUMENT grants access)
  • GET /api/files/{id} — Read/update/delete a file
  • DELETE /api/files/{id} — Read/update/delete a file
  • PATCH /api/files/{id} — Read/update/delete a file
  • POST /api/files/upload — Upload a file. Browser: multipart/form-data ('file' plus an optional JSON 'metadata' string). JSON callers (MCP): {filename, contentType, contentBase64, and optional entity links like taskId/dealId} — the channel for a JSON-only agent to get a binary in. Returns data.id — the fileId that POST /api/products/[id]/images expects

Inbound webhook

  • GET /api/hooks/{path} — Inbound webhook receiver for workflow triggers; authenticated by the unguessable path plus an optional x-api-key secret, not by an API key
  • PUT /api/hooks/{path} — Inbound webhook receiver for workflow triggers; authenticated by the unguessable path plus an optional x-api-key secret, not by an API key
  • POST /api/hooks/{path} — Inbound webhook receiver for workflow triggers; authenticated by the unguessable path plus an optional x-api-key secret, not by an API key

Industry

Invoice

Lead

Me

  • GET /api/me/scopes — Describe the calling credential: its class (session / api-key / oauth-token), the restriction actually applied to it, the permissions behind that, and every scope name that exists

Number sequence

Order

Organization

Pipeline

Price

Price list

Price list entry

Price list entry tier

Product

Product attribute

Product attribute assignment

Product attribute group

Product attribute value

Product category

Product image

Product tag

Project

Quote

Saved filter

Task

Tax rate

Timeline

  • GET /api/crm/timeline — Read the change history of one record (entityType + entityId): stage/status changes, assignments, calls, emails, notes. Gated by that record type's own VIEW permission.

Unit