Generated OpenAPI reference
TopoloCRM
Generated from the source-controlled OpenAPI specification.
Servers and authentication
Default security: none declared
http://localhost:8787— Local development serverhttps://your-worker.your-subdomain.workers.dev— Production Cloudflare Worker
Operations
GET /health
Health check
Returns API health status and timestamp
Auth: none declared · Responses: 200
curl -X GET 'http://localhost:8787/health' \
-H 'Accept: application/json'GET /api
API information
Returns API metadata and available endpoints
Auth: none declared · Responses: 200
curl -X GET 'http://localhost:8787/api' \
-H 'Accept: application/json'GET /api/contacts
List contacts
Retrieve a paginated list of contacts with optional full-text search. Supports advanced search using FTS5 for names, emails, companies, and tags.
Auth: none declared · Responses: 200, 500
curl -X GET 'http://localhost:8787/api/contacts' \
-H 'Accept: application/json'POST /api/contacts
Create contact
Create a new contact with provided information
Auth: none declared · Responses: 201, 400, 500
curl -X POST 'http://localhost:8787/api/contacts' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{}'GET /api/contacts/{id}
Get contact
Retrieve a specific contact by ID
Auth: none declared · Responses: 200, 404, 500
curl -X GET 'http://localhost:8787/api/contacts/{id}' \
-H 'Accept: application/json'PUT /api/contacts/{id}
Update contact
Update an existing contact's information
Auth: none declared · Responses: 200, 400, 404, 500
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
Soft delete a contact (sets deleted flag)
Auth: none declared · Responses: 200, 404, 500
curl -X DELETE 'http://localhost:8787/api/contacts/{id}' \
-H 'Accept: application/json'GET /api/contacts/{id}/notes
List contact notes
Get paginated list of notes for a specific contact
Auth: none declared · Responses: 200, 404, 500
curl -X GET 'http://localhost:8787/api/contacts/{id}/notes' \
-H 'Accept: application/json'POST /api/contacts/{id}/notes
Create note
Add a new note to a contact
Auth: none declared · Responses: 201, 400, 404, 500
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
Retrieve a specific note by ID
Auth: none declared · Responses: 200, 404, 500
curl -X GET 'http://localhost:8787/api/contacts/{contactId}/notes/{noteId}' \
-H 'Accept: application/json'PUT /api/contacts/{contactId}/notes/{noteId}
Update note
Update an existing note
Auth: none declared · Responses: 200, 400, 404, 500
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
Delete a note permanently
Auth: none declared · Responses: 200, 404, 500
curl -X DELETE 'http://localhost:8787/api/contacts/{contactId}/notes/{noteId}' \
-H 'Accept: application/json'GET /api/contacts/{id}/attachments
List contact attachments
Get all attachments for a specific contact
Auth: none declared · Responses: 200, 404, 500
curl -X GET 'http://localhost:8787/api/contacts/{id}/attachments' \
-H 'Accept: application/json'POST /api/contacts/{id}/attachments
Upload attachment
Upload a file attachment for a contact
Auth: none declared · Responses: 201, 400, 404, 413, 500
curl -X POST 'http://localhost:8787/api/contacts/{id}/attachments' \
-H 'Accept: application/json'GET /api/attachments/{id}
Download attachment
Download an attachment file
Auth: none declared · Responses: 200, 404, 500
curl -X GET 'http://localhost:8787/api/attachments/{id}' \
-H 'Accept: application/json'DELETE /api/attachments/{id}
Delete attachment
Delete an attachment permanently
Auth: none declared · Responses: 200, 404, 500
curl -X DELETE 'http://localhost:8787/api/attachments/{id}' \
-H 'Accept: application/json'GET /api/pipeline
List pipelines
Get all available sales pipelines
Auth: none declared · Responses: 200, 500
curl -X GET 'http://localhost:8787/api/pipeline' \
-H 'Accept: application/json'GET /api/pipeline/{pipelineId}
Get pipeline details
Get detailed information about a specific pipeline including stages
Auth: none declared · Responses: 200, 404, 500
curl -X GET 'http://localhost:8787/api/pipeline/{pipelineId}' \
-H 'Accept: application/json'GET /api/pipeline/{pipelineId}/board
Get pipeline board
Get kanban board view with contacts grouped by pipeline stages
Auth: none declared · Responses: 200, 404, 500
curl -X GET 'http://localhost:8787/api/pipeline/{pipelineId}/board' \
-H 'Accept: application/json'PUT /api/pipeline/{contactId}/move
Move contact to stage
Move a contact to a different pipeline stage
Auth: none declared · Responses: 200, 400, 404, 500
curl -X PUT 'http://localhost:8787/api/pipeline/{contactId}/move' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{}'GET /api/pipeline/{contactId}/history
Get contact pipeline history
Get the stage movement history for a contact
Auth: none declared · Responses: 200, 404, 500
curl -X GET 'http://localhost:8787/api/pipeline/{contactId}/history' \
-H 'Accept: application/json'POST /api/contacts/import
Import contacts
Import contacts from CSV file with field mapping
Auth: none declared · Responses: 200, 400, 500
curl -X POST 'http://localhost:8787/api/contacts/import' \
-H 'Accept: application/json'GET /api/contacts/export
Export contacts
Export contacts to CSV format
Auth: none declared · Responses: 200, 500
curl -X GET 'http://localhost:8787/api/contacts/export' \
-H 'Accept: application/json'