NoxCRM API reference
This page is generated from the backend-catalog-derived workspace/openapi.yaml contract. It describes the checked-in contract, not proof that a particular deployment is live. The raw OpenAPI 1.0.0 document is the integration source of truth.
Contract boundary
- Title: NoxCRM API
- Version: 1.0.0
- Authentication: bearer authentication is the contract default; operations that override security are explicitly public in OpenAPI.
- Base path: each server already includes
/api/v1; operation paths below are relative to that versioned base. A listed production server is not proof that a deployment is live.
Operations
| Method | Path | Summary |
|---|---|---|
GET | /agency/clients | List agency clients |
POST | /agency/clients | Link an agency client |
POST | /auth/2fa/confirm | Confirm TOTP setup |
POST | /auth/2fa/disable | Disable TOTP 2FA |
POST | /auth/2fa/setup | Set up TOTP 2FA |
GET | /auth/api-tokens | List API tokens |
POST | /auth/api-tokens | Create an API token |
DELETE | /auth/api-tokens/{jti} | Revoke an API token |
POST | /auth/email/verify | Verify an email address using a one-time token |
POST | /auth/email/verify-request | Request or resend an email verification link |
POST | /auth/login | Log in with email + password |
POST | /auth/logout | Revoke the current session |
POST | /auth/magic-link/request | Request a passwordless sign-in link |
POST | /auth/magic-link/verify | Exchange a magic-link token for a session |
POST | /auth/otp/request | Request a one-time passcode |
POST | /auth/otp/verify | Verify a one-time passcode |
GET | /auth/passkeys | List registered passkeys |
POST | /auth/passkeys | Register a passkey |
POST | /auth/passkeys/register/challenge | Start passkey registration |
DELETE | /auth/passkeys/{id} | Remove a passkey |
POST | /auth/password/change | Change password (authenticated) |
POST | /auth/password/reset | Reset password via OTP |
POST | /auth/public-signup | Create a workspace and owner account with email verification |
POST | /auth/refresh | Refresh an expired access token |
DELETE | /auth/sessions | Revoke all refresh-token sessions for the account |
GET | /auth/sessions | List active sessions |
DELETE | /auth/sessions/{id} | Revoke a specific session |
POST | /auth/signup | Create a new account |
GET | /blueprints | List available blueprints |
POST | /blueprints | Create a blueprint |
GET | /blueprints/{id} | Get blueprint details |
POST | /blueprints/{id}/install | Install a blueprint |
GET | /blueprints/{id}/installations | List blueprint installations |
GET | /contacts | List contacts with search and filtering |
POST | /contacts | Create a contact |
DELETE | /contacts/{id} | Delete a contact |
GET | /contacts/{id} | Get a contact by ID |
PATCH | /contacts/{id} | Update a contact |
GET | /contacts/{id}/ai-summary | Get AI-generated contact summary |
POST | /contacts/{id}/assign | Assign or unassign a contact owner |
GET | /contacts/{id}/custom-fields | List custom field values for a contact |
POST | /contacts/{id}/custom-fields | Upsert a custom field value for a contact |
DELETE | /contacts/{id}/custom-fields/{value_id} | Delete a custom field value |
GET | /contacts/{id}/enrichment | Get contact enrichment data |
PUT | /contacts/{id}/enrichment | Upsert contact enrichment data |
GET | /contacts/{id}/events | List contact events |
POST | /contacts/{id}/events | Create a contact event |
GET | /contacts/{id}/interactions | List contact interactions |
POST | /contacts/{id}/interactions | Log a contact interaction |
GET | /contacts/{id}/next-action | Get AI-suggested next action |
GET | /contacts/{id}/relationship | Get AI-assessed relationship strength |
GET | /contacts/{id}/risks | Get AI-identified risk factors |
GET | /contacts/{id}/tags | List tags attached to a contact |
DELETE | /contacts/{id}/tags/{tag_id} | Detach a tag from a contact |
POST | /contacts/{id}/tags/{tag_id} | Attach a tag to a contact |
GET | /contacts/{id}/timeline | Get contact timeline |
GET | /custom-fields/definitions | List custom field definitions |
POST | /custom-fields/definitions | Create a custom field definition |
DELETE | /custom-fields/definitions/{id} | Delete a custom field definition |
PATCH | /custom-fields/definitions/{id} | Update a custom field definition |
GET | /deals | List deals with filtering |
POST | /deals | Create a deal |
PATCH | /deals/{id} | Update a deal |
GET | /deals/{id}/history | Get deal stage change history |
GET | /deals/{id}/probability | Get AI-predicted close probability |
POST | /deals/{id}/stage | Move a deal to a different stage |
GET | /forms | List forms |
POST | /forms | Create a form |
GET | /forms/s/{slug} | Get a public form by slug |
POST | /forms/s/{slug}/submit | Submit a form (public, no auth) |
GET | /forms/{id} | Get a form by ID |
PATCH | /forms/{id} | Update a form |
POST | /forms/{id}/fields | Add a field to a form |
POST | /forms/{id}/submit | Submit a form (authenticated) |
GET | /health | Health check — returns OK when the service is running |
GET | /inbox/conversations | List conversations |
POST | /inbox/conversations | Create a conversation |
PATCH | /inbox/conversations/{id} | Update a conversation |
GET | /inbox/conversations/{id}/messages | List messages in a conversation |
POST | /inbox/conversations/{id}/messages | Send a message in a conversation |
GET | /lead-sources | List lead sources |
POST | /lead-sources | Create a lead source |
DELETE | /lead-sources/{id} | Delete a lead source |
PATCH | /lead-sources/{id} | Update a lead source |
POST | /leads/capture | Capture a lead (public form submission) |
GET | /leads/submissions | List lead submissions |
GET | /me | Get the current user's profile |
PATCH | /me | Update the current user's profile |
PUT | /me | Replace the current user's profile |
GET | /metrics/forecast | Get revenue forecast |
GET | /metrics/pipeline | Get pipeline metrics summary |
GET | /metrics/pipeline/history | Get pipeline metrics over time |
DELETE | /pipeline-stages/{id} | Delete a pipeline stage |
PATCH | /pipeline-stages/{id} | Update a pipeline stage |
GET | /pipelines | List pipelines |
POST | /pipelines | Create a pipeline |
DELETE | /pipelines/{id} | Delete a pipeline |
PATCH | /pipelines/{id} | Update a pipeline |
GET | /pipelines/{id}/stages | List pipeline stages |
POST | /pipelines/{id}/stages | Create a pipeline stage |
POST | /pipelines/{id}/stages/reorder | Reorder pipeline stages |
GET | /public-platform/oauth/apps | List OAuth apps |
POST | /public-platform/oauth/apps | Create an OAuth app |
POST | /public-platform/oauth/revoke | Revoke an OAuth token |
POST | /public-platform/oauth/token | Issue an OAuth token |
GET | /public-platform/webhooks/deliveries | List webhook deliveries |
POST | /public-platform/webhooks/deliveries/{id}/attempt | View delivery attempt details |
POST | /public-platform/webhooks/deliveries/{id}/replay | Replay a webhook delivery |
GET | /public-platform/webhooks/endpoints | List webhook endpoints |
POST | /public-platform/webhooks/endpoints | Create a webhook endpoint |
POST | /public-platform/webhooks/test-delivery | Trigger a test webhook delivery |
GET | /ready | Readiness check — verifies DB connectivity |
GET | /realtime/stream | Subscribe to real-time events via SSE |
GET | /tags | List tags |
POST | /tags | Create a tag |
DELETE | /tags/{id} | Delete a tag |
PATCH | /tags/{id} | Update a tag |
GET | /tasks/queue | List task queue items |
POST | /tasks/queue | Create a task queue item |
PATCH | /tasks/queue/{id} | Update a task queue item |
GET | /users | List all users in the tenant |
GET | /workflows | List workflows |
POST | /workflows | Create a workflow |
GET | /workflows/dlq | List dead-letter queue items |
POST | /workflows/dlq/replay | Replay dead-letter queue items |
GET | /workflows/runs | List recent workflow runs |
GET | /workflows/runs/{run_id} | Get workflow run details |
GET | /workflows/{workflow_id} | Get a workflow by ID |
POST | /workflows/{workflow_id}/disable | Disable a workflow |
POST | /workflows/{workflow_id}/enable | Enable a workflow |
POST | /workflows/{workflow_id}/publish | Publish a workflow |
POST | /workflows/{workflow_id}/run | Manually trigger a workflow run |
POST | /workflows/{workflow_id}/test | Test a workflow |
POST | /workflows/{workflow_id}/webhook | Trigger a workflow via webhook |
Integration checklist
- Generate or configure a client from the raw OpenAPI document.
- Keep bearer tokens out of source control, logs, URLs, and browser analytics.
- Implement documented non-success responses, especially authentication, rate-limit, validation, and version-conflict responses.
- Test against the intended environment; a generated reference does not prove deployment or tenant provisioning.
- Re-sync this portal whenever the canonical schema changes.
Versioning and support
The path namespace is the compatibility boundary. Consumers should pin generated clients to a reviewed contract revision and diff the OpenAPI document before upgrading. An endpoint appearing here does not create a support commitment beyond the canonical contract and current product release notes.