Generated OpenAPI reference

TopoloCRM

Generated from the source-controlled OpenAPI specification.

version 1.0.023 operations6 tags

Servers and authentication

Default security: none declared

  • http://localhost:8787 — Local development server
  • https://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'