CommsHarbor Organizations API
The Organizations API from CommsHarbor — 70 operation(s) for organizations.
Operations 114
GET
/api/organizations/{organization_id}/members
List the members of an organization and their roles
#
PATCH
/api/organizations/{organization_id}/members/{user_id}
Change the role of a member who is not the owner
#
POST
/api/organizations/{organization_id}/invitations
Create an invitation and reveal its token exactly once
#
POST
/api/organizations/{organization_id}/api-keys
Create a scoped API key and reveal it exactly once
#
DELETE
/api/organizations/{organization_id}/api-keys/{api_key_id}
Revoke an API key. It stops working immediately, not at the next cache expiry
#
GET
/api/organizations/{organization_id}/audit
List the append-only audit trail of the organization
#
GET
/api/organizations/{organization_id}/domains
List the sending domains of the organization and their last observed state
#
POST
/api/organizations/{organization_id}/domains
Register the organization's sending domain and queue idempotent SES provisioning
#
GET
/api/organizations/{organization_id}/domains/{domain_id}
Read one sending domain, without inferring current DNS state
#
POST
/api/organizations/{organization_id}/domains/{domain_id}/verify
Observe SES, DKIM, DMARC and custom MAIL FROM state right now, and store what…
#
POST
/api/organizations/{organization_id}/domains/{domain_id}/smoke
Queue one controlled smoke message to the server-side QA recipient
#
GET
/api/organizations/{organization_id}/domains/{domain_id}/deliveries
List deliveries sent from one domain, without recipient addresses
#
GET
/api/organizations/{organization_id}/deliveries/{delivery_id}
Read one delivery and its SES MessageId, without recipient data
#
GET
/api/organizations/{organization_id}/deliveries/{delivery_id}/events
List the normalized SES feedback events for one delivery
#
GET
/api/organizations/{organization_id}/crm/contacts
List contacts in the tenant CRM — a person in the tenant CRM
#
GET
/api/organizations/{organization_id}/crm/contacts/{contact_id}
Read one contact from the tenant CRM
#
PATCH
/api/organizations/{organization_id}/crm/contacts/{contact_id}
Update one contact in the tenant CRM. Only the fields you send change
#
DELETE
/api/organizations/{organization_id}/crm/contacts/{contact_id}
Delete one contact from the tenant CRM.
#
GET
/api/organizations/{organization_id}/crm/companies
List companies in the tenant CRM — an organization in the tenant CRM — a…
#
GET
/api/organizations/{organization_id}/crm/companies/{company_id}
Read one company from the tenant CRM
#
PATCH
/api/organizations/{organization_id}/crm/companies/{company_id}
Update one company in the tenant CRM. Only the fields you send change
#
DELETE
/api/organizations/{organization_id}/crm/companies/{company_id}
Delete one company from the tenant CRM.
#
GET
/api/organizations/{organization_id}/crm/pipelines
List pipelines in the tenant CRM — a named sequence of stages that deals move…
#
GET
/api/organizations/{organization_id}/crm/pipelines/{pipeline_id}
Read one pipeline from the tenant CRM
#
PATCH
/api/organizations/{organization_id}/crm/pipelines/{pipeline_id}
Update one pipeline in the tenant CRM. Only the fields you send change
#
DELETE
/api/organizations/{organization_id}/crm/pipelines/{pipeline_id}
Delete one pipeline from the tenant CRM.
#
GET
/api/organizations/{organization_id}/crm/deals
List deals in the tenant CRM — an opportunity moving through a pipeline
#
PATCH
/api/organizations/{organization_id}/crm/deals/{deal_id}
Update one deal in the tenant CRM. Only the fields you send change
#
DELETE
/api/organizations/{organization_id}/crm/deals/{deal_id}
Delete one deal from the tenant CRM. The response carries the record as it was
#
GET
/api/organizations/{organization_id}/crm/activities
List activities in the tenant CRM — something that happened with a contact…
#
GET
/api/organizations/{organization_id}/crm/activities/{activity_id}
Read one activity from the tenant CRM
#
PATCH
/api/organizations/{organization_id}/crm/activities/{activity_id}
Update one activity in the tenant CRM. Only the fields you send change
#
DELETE
/api/organizations/{organization_id}/crm/activities/{activity_id}
Delete one activity from the tenant CRM.
#
GET
/api/organizations/{organization_id}/crm/tasks
List tasks in the tenant CRM — work someone still has to do in the tenant CRM
#
PATCH
/api/organizations/{organization_id}/crm/tasks/{task_id}
Update one task in the tenant CRM. Only the fields you send change
#
DELETE
/api/organizations/{organization_id}/crm/tasks/{task_id}
Delete one task from the tenant CRM. The response carries the record as it was
#
GET
/api/organizations/{organization_id}/crm/pipelines/{pipeline_id}/stages
List stages in the tenant CRM — one step of a pipeline, addressed under the…
#
POST
/api/organizations/{organization_id}/crm/pipelines/{pipeline_id}/stages
Create a stage in the tenant CRM
#
GET
/api/organizations/{organization_id}/crm/pipelines/{pipeline_id}/stages/{stage_id}
Read one stage from the tenant CRM
#
PATCH
/api/organizations/{organization_id}/crm/pipelines/{pipeline_id}/stages/{stage_id}
Update one stage in the tenant CRM. Only the fields you send change
#
DELETE
/api/organizations/{organization_id}/crm/pipelines/{pipeline_id}/stages/{stage_id}
Delete one stage from the tenant CRM. The response carries the record as it was
#
GET
/api/organizations/{organization_id}/crm/contacts/{contact_id}/marketing
Read consent and marketing preference for one CRM contact
#
PUT
/api/organizations/{organization_id}/crm/contacts/{contact_id}/marketing
Record permission-based marketing consent for one contact
#
POST
/api/organizations/{organization_id}/crm/contacts/{contact_id}/preference-token
Create a signed preference and one-click unsubscribe capability for a contact
#
POST
/api/organizations/{organization_id}/domains/{domain_id}/marketing-smoke
Queue one controlled permission-based marketing message to the server-side…
#
GET
/api/organizations/{organization_id}/contact-imports
List the contact imports of the organization
#
POST
/api/organizations/{organization_id}/contact-imports
Upload a consent-declared CSV and get back a safe preview before anything is…
#
GET
/api/organizations/{organization_id}/contact-imports/{import_id}
Read one durable contact import and its current counts
#
POST
/api/organizations/{organization_id}/contact-imports/{import_id}/confirm
Confirm a previewed import and enqueue it, exactly once
#
GET
/api/organizations/{organization_id}/contact-imports/{import_id}/errors
List the row-numbered errors of one import, so the source file can be fixed
#
GET
/api/organizations/{organization_id}/contact-files/{file_id}
Download a tenant-owned CSV before its seven-day expiry
#
POST
/api/organizations/{organization_id}/contacts/export
Create a CSV export of the organization's contacts, retained for seven days
#
GET
/api/organizations/{organization_id}/suppressions
List the organization's suppressions, without exposing email hashes
#
POST
/api/organizations/{organization_id}/suppressions
Suppress one recipient inside the active organization
#
POST
/api/organizations/{organization_id}/audiences
Create a static audience or a saved segment with an allowlisted filter
#
GET
/api/organizations/{organization_id}/audiences/{audience_id}
Read one audience of this organization
#
PATCH
/api/organizations/{organization_id}/audiences/{audience_id}
Rename an audience or change its saved filter
#
DELETE
/api/organizations/{organization_id}/audiences/{audience_id}
Delete an audience and its memberships. Contacts themselves are untouched
#
GET
/api/organizations/{organization_id}/audiences/{audience_id}/members
List the contacts currently in one audience
#
POST
/api/organizations/{organization_id}/audiences/{audience_id}/members
Add a CRM contact to a static audience
#
DELETE
/api/organizations/{organization_id}/audiences/{audience_id}/members/{contact_id}
Remove a contact from a static audience
#
GET
/api/organizations/{organization_id}/templates
List the versioned email templates of the organization
#
GET
/api/organizations/{organization_id}/templates/{template_id}
Read one template draft owned by this organization
#
PATCH
/api/organizations/{organization_id}/templates/{template_id}
Update a template as a new draft, leaving published versions untouched
#
DELETE
/api/organizations/{organization_id}/templates/{template_id}
Archive a template without deleting its published versions
#
POST
/api/organizations/{organization_id}/templates/{template_id}/publish
Publish an immutable, content-hashed version of the draft
#
GET
/api/organizations/{organization_id}/templates/{template_id}/versions
List the immutable published versions of a template
#
POST
/api/organizations/{organization_id}/templates/preview
Compile and safely render a draft, without saving or publishing anything
#
GET
/api/organizations/{organization_id}/templates/{template_id}/export
Export the latest published version as HTML, plain text and MJML
#
POST
/api/organizations/{organization_id}/templates/import-html
Import a conservative HTML subset and convert it into canonical blocks
#
POST
/api/organizations/{organization_id}/messages
Send one transactional message with the organization in the path instead of the…
#
POST
/api/organizations/{organization_id}/campaigns
Create a campaign draft from an active domain, an audience and a published…
#
GET
/api/organizations/{organization_id}/campaigns/{campaign_id}
Read one campaign, without any recipient data
#
PATCH
/api/organizations/{organization_id}/campaigns/{campaign_id}
Edit a draft, or pause, resume or cancel a campaign that already launched
#
POST
/api/organizations/{organization_id}/campaigns/{campaign_id}/launch
Freeze the eligible recipients and launch — or schedule — the campaign, exactly…
#
GET
/api/organizations/{organization_id}/campaigns/{campaign_id}/report
Reconcile a campaign: delivery counts and normalized feedback counts
#
GET
/api/organizations/{organization_id}/messaging-settings
Read the organization's timezone and whether marketing is currently paused
#
PATCH
/api/organizations/{organization_id}/messaging-settings
Change the scheduling timezone, or pause and safely resume marketing
#
GET
/api/organizations/{organization_id}/deliverability
Read delivery, backlog, suppression, reputation and dead-letter aggregates in…
#
GET
/api/organizations/{organization_id}/domains/{domain_id}/report
Read delivery and feedback aggregates for one sending domain
#
GET
/api/organizations/{organization_id}/webhooks
List the webhook endpoints of the organization, without their signing secrets
#
POST
/api/organizations/{organization_id}/webhooks
Create an HTTPS webhook and reveal its signing secret exactly once
#
GET
/api/organizations/{organization_id}/webhooks/{webhook_id}
Read one webhook, without its signing secret
#
DELETE
/api/organizations/{organization_id}/webhooks/{webhook_id}
Disable a webhook without deleting the evidence of what it already delivered
#
GET
/api/organizations/{organization_id}/webhooks/{webhook_id}/deliveries
List the signed attempts made to one webhook and their retry state
#
GET
/api/organizations/{organization_id}/dead-letters
Inspect the tenant's dead letters by opaque record ID
#
POST
/api/organizations/{organization_id}/dead-letters/{record_id}/replay
Replay one campaign or webhook dead letter, by name
#
GET
/api/organizations/{organization_id}/billing
Read this organization's entitlement, quota allocation and expiration warning
#
GET
/api/organizations/{organization_id}/operations
List the organization's current operational alerts
#
POST
/api/organizations/{organization_id}/operations
Re-observe alerts, quota and global capacity right now
#
GET
/api/organizations/{organization_id}/data-exports
List the tenant data exports, which are retained for seven days
#
POST
/api/organizations/{organization_id}/data-exports
Create a tenant-scoped JSON export of the organization's data
#
GET
/api/organizations/{organization_id}/data-exports/{export_id}
Download one tenant-scoped JSON export before it expires
#
GET
/api/organizations/{organization_id}/deletion-requests
Read the latest erasure request and where it is in the grace period
#
POST
/api/organizations/{organization_id}/deletion-requests
Schedule the erasure of the organization, after a seven-day grace period
#
POST
/api/organizations/{organization_id}/deletion-requests/{request_id}/cancel
Cancel a scheduled erasure while it is still inside the grace period
#
Documentation
📖
Documentation
https://commsharbor.com/api/
📖
RateLimits
https://raw.githubusercontent.com/api-evangelist/commsharbor/refs/heads/main/rate-limits/commsharbor-rate-limits.yml
Specifications
Other Resources
🔗
LLMsTxt
https://commsharbor.com/llms.txt
🔗
LLMsTxt
https://commsharbor.com/llms-full.txt
🔗
ToolCrosswalk
https://raw.githubusercontent.com/api-evangelist/commsharbor/refs/heads/main/mcp/commsharbor-tool-crosswalk.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/commsharbor/refs/heads/main/errors/commsharbor-problem-types.yml
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/commsharbor/refs/heads/main/data-model/commsharbor-data-model.yml
🔗
Sandbox
https://raw.githubusercontent.com/api-evangelist/commsharbor/refs/heads/main/sandbox/commsharbor-sandbox.yml
🔗
Webhooks
https://raw.githubusercontent.com/api-evangelist/commsharbor/refs/heads/main/asyncapi/commsharbor-webhooks.yml
🔗
X-APIsJson
https://commsharbor.com/apis.json