CommsHarbor Organizations API

The Organizations API from CommsHarbor — 70 operation(s) for organizations.

Operations 114

GET /api/organizations List the organizations the current person belongs to #
POST /api/organizations Create one organization trial for a verified owner and a sending domain #
GET /api/organizations/{organization_id} Read one organization #
PATCH /api/organizations/{organization_id} Update an organization's name #
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 #
GET /api/organizations/{organization_id}/invitations List invitations without their tokens #
POST /api/organizations/{organization_id}/invitations Create an invitation and reveal its token exactly once #
GET /api/organizations/{organization_id}/api-keys List API keys without token hashes or secrets #
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 #
POST /api/organizations/{organization_id}/crm/contacts Create a contact 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… #
POST /api/organizations/{organization_id}/crm/companies Create a company in the tenant CRM #
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… #
POST /api/organizations/{organization_id}/crm/pipelines Create a pipeline in the tenant CRM #
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 #
POST /api/organizations/{organization_id}/crm/deals Create a deal in the tenant CRM #
GET /api/organizations/{organization_id}/crm/deals/{deal_id} Read one deal from the tenant CRM #
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… #
POST /api/organizations/{organization_id}/crm/activities Create a activity in the tenant CRM #
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 #
POST /api/organizations/{organization_id}/crm/tasks Create a task in the tenant CRM #
GET /api/organizations/{organization_id}/crm/tasks/{task_id} Read one task from 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 #
GET /api/organizations/{organization_id}/audiences List static audiences and saved segments #
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 #
POST /api/organizations/{organization_id}/templates Create a template draft from canonical blocks #
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… #
GET /api/organizations/{organization_id}/campaigns List the campaigns of the organization #
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 #
POST /api/organizations/{organization_id}/billing/purchases/{action} Request a pass or a top-up. #
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 #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/commsharbor-organizations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

commsharbor-organizations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CommsHarbor Organizations API
  version: 2d690e87
  description: CommsHarbor API. Organization identity is explicit and tenant-scoped.
servers:
- url: https://commsharbor.com
tags:


# --- truncated at 32 KB (238 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/commsharbor/refs/heads/main/openapi/commsharbor-organizations-api-openapi.yml