-
GET/healthHealth check Responses: 200 -
GET/apiAPI information Responses: 200
Application API
TopoloCRM
Clear API and contract surface for TopoloCRM, grouped under the application instead of split across generic reference sections.
Documentation Map
Authority
Service IDs:
srv_iCwM4jGXcwlj Repos: Applications/TopoloCRM
Hosts:
https://crm.topolo.app Dependencies: topolo-auth, topolo-one
Depends on Topolo Auth: yes
Contract Source
Type: generated OpenAPI
Source: Applications/TopoloCRM/packages/backend/openapi.yaml
Source exists: yes
API key scopes in Auth catalog: 25
Auth Requirements
No global OpenAPI security scheme is declared.
-
contacts.read -
contacts.write -
companies.read -
companies.write -
deals.read -
deals.write -
notes.read -
notes.write -
attachments.read -
attachments.write -
pipeline.read -
pipeline.write -
tasks.write -
properties.write -
listings.write -
showings.write -
offers.write -
transactions.write -
documents.write -
commissions.write
Runtime and Deployment
Wrangler surfaces: Applications/TopoloCRM/packages/backend/wrangler.toml
Environment variables: API_KEY_HASH_ITERATIONS, API_KEY_PREFIX, ENVIRONMENT, NODE_ENV, SALT_ROUNDS, SKIP_AUTH, account_id
Routes: workers.dev or Pages-only delivery
Observability enabled: yes
Servers
- http://localhost:8787 Local development server
- https://your-worker.your-subdomain.workers.dev Production Cloudflare Worker
Operations
-
GET/api/contactsList contacts Responses: 200, 500 -
POST/api/contactsCreate contact Responses: 201, 400, 500 -
GET/api/contacts/{id}Get contact Responses: 200, 404, 500 -
PUT/api/contacts/{id}Update contact Responses: 200, 400, 404, 500 -
DELETE/api/contacts/{id}Delete contact Responses: 200, 404, 500
-
GET/api/contacts/{id}/notesList contact notes Responses: 200, 404, 500 -
POST/api/contacts/{id}/notesCreate note Responses: 201, 400, 404, 500 -
GET/api/contacts/{contactId}/notes/{noteId}Get specific note Responses: 200, 404, 500 -
PUT/api/contacts/{contactId}/notes/{noteId}Update note Responses: 200, 400, 404, 500 -
DELETE/api/contacts/{contactId}/notes/{noteId}Delete note Responses: 200, 404, 500
-
GET/api/contacts/{id}/attachmentsList contact attachments Responses: 200, 404, 500 -
POST/api/contacts/{id}/attachmentsUpload attachment Responses: 201, 400, 404, 413, 500 -
GET/api/attachments/{id}Download attachment Responses: 200, 404, 500 -
DELETE/api/attachments/{id}Delete attachment Responses: 200, 404, 500
-
GET/api/pipelineList pipelines Responses: 200, 500 -
GET/api/pipeline/{pipelineId}Get pipeline details Responses: 200, 404, 500 -
GET/api/pipeline/{pipelineId}/boardGet pipeline board Responses: 200, 404, 500 -
PUT/api/pipeline/{contactId}/moveMove contact to stage Responses: 200, 400, 404, 500 -
GET/api/pipeline/{contactId}/historyGet contact pipeline history Responses: 200, 404, 500
-
POST/api/contacts/importImport contacts Responses: 200, 400, 500 -
GET/api/contacts/exportExport contacts Responses: 200, 500
Copyable cURL
GET /health Health check
curl -X GET 'http://localhost:8787/health' \
-H 'Accept: application/json' GET /api API information
curl -X GET 'http://localhost:8787/api' \
-H 'Accept: application/json' GET /api/contacts List contacts
curl -X GET 'http://localhost:8787/api/contacts' \
-H 'Accept: application/json' POST /api/contacts Create contact
curl -X POST 'http://localhost:8787/api/contacts' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{}' GET /api/contacts/{id} Get contact
curl -X GET 'http://localhost:8787/api/contacts/{id}' \
-H 'Accept: application/json' PUT /api/contacts/{id} Update contact
curl -X PUT 'http://localhost:8787/api/contacts/{id}' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{}' DELETE /api/contacts/{id} Delete contact
curl -X DELETE 'http://localhost:8787/api/contacts/{id}' \
-H 'Accept: application/json' GET /api/contacts/{id}/notes List contact notes
curl -X GET 'http://localhost:8787/api/contacts/{id}/notes' \
-H 'Accept: application/json' POST /api/contacts/{id}/notes Create note
curl -X POST 'http://localhost:8787/api/contacts/{id}/notes' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{}' GET /api/contacts/{contactId}/notes/{noteId} Get specific note
curl -X GET 'http://localhost:8787/api/contacts/{contactId}/notes/{noteId}' \
-H 'Accept: application/json' PUT /api/contacts/{contactId}/notes/{noteId} Update note
curl -X PUT 'http://localhost:8787/api/contacts/{contactId}/notes/{noteId}' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{}' DELETE /api/contacts/{contactId}/notes/{noteId} Delete note
curl -X DELETE 'http://localhost:8787/api/contacts/{contactId}/notes/{noteId}' \
-H 'Accept: application/json'