Cal.com Orgs / Secondary Domains API
The Orgs / Secondary Domains API from Cal.com — 3 operation(s) for orgs / secondary domains.
The Orgs / Secondary Domains API from Cal.com — 3 operation(s) for orgs / secondary domains.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/cal-com:cal-com-orgs-secondary-domains-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Cal.com API v2 Orgs / Secondary Domains API
description: ''
version: 1.0.0
contact: {}
servers: []
tags:
- name: Orgs / Secondary Domains
paths:
/v2/organizations/{orgId}/secondary-domains:
get:
description: 'For platform, the plan must be ''ESSENTIALS'' or higher to access this endpoint. Required membership role: `org admin`. PBAC permission: `organization.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsSecondaryDomainsController_getSecondaryDomains
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationSecondaryDomainsResponseOutput'
summary: Get all secondary domains of an organization
tags:
- Orgs / Secondary Domains
x-platform-plan: ESSENTIALS
post:
description: 'Adds an unverified secondary domain. Publish the returned `verificationRecord` as a DNS TXT record and call the verify endpoint. Once verified, members with this email domain join the organization with usernames suffixed by `usernameSuffix` (e.g. john@acme.fr becomes john-fr). For platform, the plan must be ''ESSENTIALS'' or higher to access this endpoint. Required membership role: `org admin`. PBAC permission: `organization.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsSecondaryDomainsController_createSecondaryDomain
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOrganizationSecondaryDomainInput'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationSecondaryDomainResponseOutput'
summary: Add a secondary domain to an organization
tags:
- Orgs / Secondary Domains
x-platform-plan: ESSENTIALS
/v2/organizations/{orgId}/secondary-domains/{domainId}:
get:
description: 'For platform, the plan must be ''ESSENTIALS'' or higher to access this endpoint. Required membership role: `org admin`. PBAC permission: `organization.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsSecondaryDomainsController_getSecondaryDomain
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
- name: domainId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationSecondaryDomainResponseOutput'
summary: Get a secondary domain of an organization
tags:
- Orgs / Secondary Domains
x-platform-plan: ESSENTIALS
delete:
description: 'For platform, the plan must be ''ESSENTIALS'' or higher to access this endpoint. Required membership role: `org admin`. PBAC permission: `organization.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsSecondaryDomainsController_deleteSecondaryDomain
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
- name: domainId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationSecondaryDomainResponseOutput'
summary: Remove a secondary domain from an organization
tags:
- Orgs / Secondary Domains
x-platform-plan: ESSENTIALS
/v2/organizations/{orgId}/secondary-domains/{domainId}/verify:
post:
description: 'Checks the DNS TXT record returned in `verificationRecord` and marks the domain as verified. For platform, the plan must be ''ESSENTIALS'' or higher to access this endpoint. Required membership role: `org admin`. PBAC permission: `organization.update`. Learn more about API access control at https://cal.com/docs/api-reference/v2/access-control'
operationId: OrganizationsSecondaryDomainsController_verifySecondaryDomain
parameters:
- name: Authorization
in: header
description: For non-platform customers - value must be `Bearer <token>` where `<token>` is api key prefixed with cal_
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
- name: orgId
required: true
in: path
schema:
type: number
- name: domainId
required: true
in: path
schema:
type: number
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationSecondaryDomainResponseOutput'
summary: Verify a secondary domain of an organization
tags:
- Orgs / Secondary Domains
x-platform-plan: ESSENTIALS
components:
schemas:
OrganizationSecondaryDomainOutput:
type: object
properties:
id:
type: number
example: 1
domain:
type: string
example: acme.fr
usernameSuffix:
type: string
example: fr
description: Usernames of members with this email domain end with -<usernameSuffix>
verified:
type: boolean
example: false
verifiedAt:
format: date-time
type:
- string
- 'null'
example: null
createdAt:
format: date-time
type: string
example: '2026-10-02T09:00:00.000Z'
verificationRecord:
description: DNS record that must be published to verify ownership of the domain
allOf:
- $ref: '#/components/schemas/SecondaryDomainVerificationRecordOutput'
required:
- id
- domain
- usernameSuffix
- verified
- verifiedAt
- createdAt
- verificationRecord
OrganizationSecondaryDomainsResponseOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
type: array
items:
$ref: '#/components/schemas/OrganizationSecondaryDomainOutput'
required:
- status
- data
OrganizationSecondaryDomainResponseOutput:
type: object
properties:
status:
enum:
- success
- error
type: string
example: success
data:
$ref: '#/components/schemas/OrganizationSecondaryDomainOutput'
required:
- status
- data
CreateOrganizationSecondaryDomainInput:
type: object
properties:
domain:
type: string
minLength: 1
maxLength: 253
example: acme.fr
description: Domain to add as a secondary verified domain
usernameSuffix:
type: string
minLength: 1
maxLength: 63
example: fr
description: Suffix appended to usernames of members with this email domain, e.g. john@acme.fr becomes john-fr. Defaults to the domain ending.
required:
- domain
SecondaryDomainVerificationRecordOutput:
type: object
properties:
type:
type: string
example: TXT
enum:
- TXT
name:
type: string
example: _cal-verification.acme.fr
value:
type: string
example: cal-verification=3f1c0d7e9a2b4c6d8e0f1a2b3c4d5e6f
required:
- type
- name
- value
x-provenance:
method: harvested
publisher: Cal.com
source: https://cal.com/docs/api-reference/v2/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)