Skip to main content

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

MethodPathSummary
GET/agency/clientsList agency clients
POST/agency/clientsLink an agency client
POST/auth/2fa/confirmConfirm TOTP setup
POST/auth/2fa/disableDisable TOTP 2FA
POST/auth/2fa/setupSet up TOTP 2FA
GET/auth/api-tokensList API tokens
POST/auth/api-tokensCreate an API token
DELETE/auth/api-tokens/{jti}Revoke an API token
POST/auth/email/verifyVerify an email address using a one-time token
POST/auth/email/verify-requestRequest or resend an email verification link
POST/auth/loginLog in with email + password
POST/auth/logoutRevoke the current session
POST/auth/magic-link/requestRequest a passwordless sign-in link
POST/auth/magic-link/verifyExchange a magic-link token for a session
POST/auth/otp/requestRequest a one-time passcode
POST/auth/otp/verifyVerify a one-time passcode
GET/auth/passkeysList registered passkeys
POST/auth/passkeysRegister a passkey
POST/auth/passkeys/register/challengeStart passkey registration
DELETE/auth/passkeys/{id}Remove a passkey
POST/auth/password/changeChange password (authenticated)
POST/auth/password/resetReset password via OTP
POST/auth/public-signupCreate a workspace and owner account with email verification
POST/auth/refreshRefresh an expired access token
DELETE/auth/sessionsRevoke all refresh-token sessions for the account
GET/auth/sessionsList active sessions
DELETE/auth/sessions/{id}Revoke a specific session
POST/auth/signupCreate a new account
GET/blueprintsList available blueprints
POST/blueprintsCreate a blueprint
GET/blueprints/{id}Get blueprint details
POST/blueprints/{id}/installInstall a blueprint
GET/blueprints/{id}/installationsList blueprint installations
GET/contactsList contacts with search and filtering
POST/contactsCreate 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-summaryGet AI-generated contact summary
POST/contacts/{id}/assignAssign or unassign a contact owner
GET/contacts/{id}/custom-fieldsList custom field values for a contact
POST/contacts/{id}/custom-fieldsUpsert a custom field value for a contact
DELETE/contacts/{id}/custom-fields/{value_id}Delete a custom field value
GET/contacts/{id}/enrichmentGet contact enrichment data
PUT/contacts/{id}/enrichmentUpsert contact enrichment data
GET/contacts/{id}/eventsList contact events
POST/contacts/{id}/eventsCreate a contact event
GET/contacts/{id}/interactionsList contact interactions
POST/contacts/{id}/interactionsLog a contact interaction
GET/contacts/{id}/next-actionGet AI-suggested next action
GET/contacts/{id}/relationshipGet AI-assessed relationship strength
GET/contacts/{id}/risksGet AI-identified risk factors
GET/contacts/{id}/tagsList 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}/timelineGet contact timeline
GET/custom-fields/definitionsList custom field definitions
POST/custom-fields/definitionsCreate 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/dealsList deals with filtering
POST/dealsCreate a deal
PATCH/deals/{id}Update a deal
GET/deals/{id}/historyGet deal stage change history
GET/deals/{id}/probabilityGet AI-predicted close probability
POST/deals/{id}/stageMove a deal to a different stage
GET/formsList forms
POST/formsCreate a form
GET/forms/s/{slug}Get a public form by slug
POST/forms/s/{slug}/submitSubmit a form (public, no auth)
GET/forms/{id}Get a form by ID
PATCH/forms/{id}Update a form
POST/forms/{id}/fieldsAdd a field to a form
POST/forms/{id}/submitSubmit a form (authenticated)
GET/healthHealth check — returns OK when the service is running
GET/inbox/conversationsList conversations
POST/inbox/conversationsCreate a conversation
PATCH/inbox/conversations/{id}Update a conversation
GET/inbox/conversations/{id}/messagesList messages in a conversation
POST/inbox/conversations/{id}/messagesSend a message in a conversation
GET/lead-sourcesList lead sources
POST/lead-sourcesCreate a lead source
DELETE/lead-sources/{id}Delete a lead source
PATCH/lead-sources/{id}Update a lead source
POST/leads/captureCapture a lead (public form submission)
GET/leads/submissionsList lead submissions
GET/meGet the current user's profile
PATCH/meUpdate the current user's profile
PUT/meReplace the current user's profile
GET/metrics/forecastGet revenue forecast
GET/metrics/pipelineGet pipeline metrics summary
GET/metrics/pipeline/historyGet pipeline metrics over time
DELETE/pipeline-stages/{id}Delete a pipeline stage
PATCH/pipeline-stages/{id}Update a pipeline stage
GET/pipelinesList pipelines
POST/pipelinesCreate a pipeline
DELETE/pipelines/{id}Delete a pipeline
PATCH/pipelines/{id}Update a pipeline
GET/pipelines/{id}/stagesList pipeline stages
POST/pipelines/{id}/stagesCreate a pipeline stage
POST/pipelines/{id}/stages/reorderReorder pipeline stages
GET/public-platform/oauth/appsList OAuth apps
POST/public-platform/oauth/appsCreate an OAuth app
POST/public-platform/oauth/revokeRevoke an OAuth token
POST/public-platform/oauth/tokenIssue an OAuth token
GET/public-platform/webhooks/deliveriesList webhook deliveries
POST/public-platform/webhooks/deliveries/{id}/attemptView delivery attempt details
POST/public-platform/webhooks/deliveries/{id}/replayReplay a webhook delivery
GET/public-platform/webhooks/endpointsList webhook endpoints
POST/public-platform/webhooks/endpointsCreate a webhook endpoint
POST/public-platform/webhooks/test-deliveryTrigger a test webhook delivery
GET/readyReadiness check — verifies DB connectivity
GET/realtime/streamSubscribe to real-time events via SSE
GET/tagsList tags
POST/tagsCreate a tag
DELETE/tags/{id}Delete a tag
PATCH/tags/{id}Update a tag
GET/tasks/queueList task queue items
POST/tasks/queueCreate a task queue item
PATCH/tasks/queue/{id}Update a task queue item
GET/usersList all users in the tenant
GET/workflowsList workflows
POST/workflowsCreate a workflow
GET/workflows/dlqList dead-letter queue items
POST/workflows/dlq/replayReplay dead-letter queue items
GET/workflows/runsList 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}/disableDisable a workflow
POST/workflows/{workflow_id}/enableEnable a workflow
POST/workflows/{workflow_id}/publishPublish a workflow
POST/workflows/{workflow_id}/runManually trigger a workflow run
POST/workflows/{workflow_id}/testTest a workflow
POST/workflows/{workflow_id}/webhookTrigger a workflow via webhook

Integration checklist

  1. Generate or configure a client from the raw OpenAPI document.
  2. Keep bearer tokens out of source control, logs, URLs, and browser analytics.
  3. Implement documented non-success responses, especially authentication, rate-limit, validation, and version-conflict responses.
  4. Test against the intended environment; a generated reference does not prove deployment or tenant provisioning.
  5. 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.