Relm CRM REST API

REST surface for the whole Relm workspace — contacts, companies, deals, activities (full CRUD with soft delete + restore), pipelines and stages, custom fields / enum values / object types, automations, drip sequences, templates, BYO messaging connections, webhooks with signed deliveries, cross-object search, a 100-operation batch endpoint, usage and spend-cap settings, and a live self-describing GET /schema. 72 operations across 41 paths, OpenAPI 3.1.0, servers[] https://api.relmcrm.com/v1. Bearer key or OAuth 2.1; RFC 9457 errors; keyset cursor pagination; Idempotency-Key on the four core creates; If-Match on updates.

Operations 72

GET /schema Live object/field/enum registry. #
GET /usage Current billing period usage. #
GET /settings Workspace settings (spend cap). #
PATCH /settings Set the monthly overage spend cap. #
GET /enums All enum groups and their values. #
POST /enums Add a value to an enum group (idempotent). #
POST /fields Register a custom field on an object. #
POST /types Register a custom object type (schema grouping only). #
GET /contacts List contacts. #
POST /contacts Create a contact. #
GET /contacts/{id} Fetch a contact. #
PATCH /contacts/{id} Update a contact. #
DELETE /contacts/{id} Soft-delete a contact. #
POST /contacts/{id}/restore Restore a soft-deleted contact. #
GET /companies List companies. #
POST /companies Create a company (name required). #
GET /companies/{id} Fetch a company. #
PATCH /companies/{id} Update a company. #
DELETE /companies/{id} Soft-delete a company. #
POST /companies/{id}/restore Restore a company. #
GET /deals List deals. #
POST /deals Create a deal (title required). #
GET /deals/{id} Fetch a deal. #
PATCH /deals/{id} Update a deal (incl. moving stage/pipeline). #
DELETE /deals/{id} Soft-delete a deal. #
POST /deals/{id}/restore Restore a deal. #
GET /activities List activities. #
POST /activities Log an activity (attach to a contact and/or deal). #
GET /activities/{id} Fetch an activity. #
PATCH /activities/{id} Update an activity. #
DELETE /activities/{id} Soft-delete an activity. #
POST /activities/{id}/restore Restore an activity. #
GET /pipelines List pipelines with their ordered stages. #
POST /pipelines Create a pipeline. #
GET /pipelines/{key} Fetch a pipeline. #
PATCH /pipelines/{key} Update a pipeline: display `name`, `is_default`, and/or re-`key` it. The key is slugified; deals attach by internal id, so a re-key never orphans them. A soft-deleted pipeline's ke #
DELETE /pipelines/{key} Delete a pipeline (fails if deals still use it). #
POST /pipelines/{key}/default Make this pipeline the workspace default. #
POST /pipelines/{key}/stages Add a stage to a pipeline. #
POST /pipelines/{key}/stages/reorder Reorder stages (order = a permutation of every existing stage key). #
PATCH /pipelines/{key}/stages/{stage} Rename/retype a stage. `key` is slugified; deals on the stage follow automatically (linked by internal id), so this safely fixes a typo'd key or sets the semantic type. #
DELETE /pipelines/{key}/stages/{stage} Delete a stage (fails if deals use it). #
GET /automations List automations. #
POST /automations Create a single-step rule: when [if ] then . #
GET /automations/{id} Fetch an automation. #
PATCH /automations/{id} Enable or disable an automation (only `enabled` is patchable). #
DELETE /automations/{id} Delete an automation. #
GET /automations-capabilities Valid trigger events, condition ops, action types and channels. #
GET /sequences List drip sequences with steps and enrollment counts. #
POST /sequences Create a multi-step drip sequence. #
GET /sequences/{id} Fetch a sequence. #
PATCH /sequences/{id} Enable or disable a sequence (only `enabled` is patchable). #
DELETE /sequences/{id} Delete a sequence. #
GET /sequences/{id}/preview Dry-run: who would enroll now + the send schedule. #
GET /sequences/{id}/enrollments List enrollments and their state. #
POST /sequences/{id}/enroll Manually enroll a contact (idempotent per contact+sequence). #
GET /templates List email templates. #
POST /templates Create a reusable email template. #
GET /templates/{id} Fetch a template. #
PATCH /templates/{id} Update a template. #
DELETE /templates/{id} Delete a template. #
GET /connections List connected messaging channels (never returns the secret). #
POST /connections Connect a BYO channel (e.g. email/Resend). Key encrypted at rest. #
DELETE /connections/{id} Delete a connection. #
GET /webhooks List webhook subscriptions. #
POST /webhooks Subscribe an https endpoint to events. Returns the signing secret once. #
GET /webhooks/{id} Fetch a webhook. #
PATCH /webhooks/{id} Update a webhook (url/events/description/enabled). #
DELETE /webhooks/{id} Delete a webhook. #
GET /webhooks/{id}/deliveries Recent delivery attempts (status, retries, dead-letter). #
POST /batch Run up to 100 record writes in one call (event-silent; metered per op). #

Documentation

Specifications

Other Resources

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/relm-crm-rest-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

relmcrm-com-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Relm CRM API
  version: 0.17.1
  summary: API-first CRM built for LLMs and AI agents.
  description: REST surface for Relm. Every operation is also available as a typed MCP tool at https://api.relmcrm.com/mcp
    and over A2A at https://api.relmcrm.com/a2a. Auth is either a workspace-scoped bearer key (relm_live_ / relm_test_)
    or an OAuth 2.1 access token (PKCE S256, dynamic client registration; discovery at /.well-known/oauth-authorization-server;
    live mode only). Errors are RFC-9457 problem+json with valid_options and a suggestion so an agent self-corrects.
    Read GET /schema first to learn the live objects, fields and enum values.
  contact:
    name: Relm
    url: https://relmcrm.com/
  license:
    name: Proprietary
servers:
- url: https://api.relmcrm.com/v1
  description: Production
security:
- bearerAuth: []
- oauth2:
  - crm
tags:
- name: Discovery
  description: Self-describing schema, usage, settings.
- name: Contacts
- name: Companies
- name: Deals
- name: Activities
- name: Pipelines
- name: Search
- name: Registry
  description: Custom fields, enums, object types.
- name: Automations
- name: Sequences
- name: Templates
- name: Connections
- name: Webhooks


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