About clarify-api
clarify-api documents Clarify’s workspace API for developers integrating with Clarify data. It covers schema discovery, record operations, relationships, and meeting recording artifacts, with API-key and OAuth authentication.
Key features
- 01API-key 与 OAuth 2.0 认证
- 02查询对象及 JSON Schema
- 03分页、排序和条件过滤
- 04创建、读取及更新记录
- 05批量 upsert 与关系管理
- 06获取会议录制资源链接
Use cases
- 01查询工作区对象结构
- 02筛选和排序工作区记录
- 03创建或批量更新记录
- 04关联记录并获取会议录制资源
MCP support
输入未说明 MCP 集成。
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ clarifyhq/ skills --skill clarify-apiAfter installing, type/clarify-apiin Claude Code to confirm it loaded.
Details
From the project READMEClarify API
Note: The Clarify API is under active development and subject to breaking changes. Contact [email protected] with any questions.
Root URL
https://api.clarify.ai/v1/workspaces/{slug}/*
The slug is the workspace ID assigned to the customer's organization. You can find it in the URL when logging in or by clicking your avatar in the application.
Authentication
API Key Authentication
-
Generate a new API key from workspace settings. Generated keys have admin level permissions to your workspace:
- They have access to records within the workspace and can read, write, and delete data
- They only have access to redacted email metadata, sensitive fields like bodies are not available
- They have the same permissions for viewing meeting data as other users
-
Include this API key in the
Authorizationheader with theapi-keyscheme:
curl --header "Authorization: api-key $APIKEY" \
https://api.clarify.ai/v1/workspaces/$WORKSPACE_SLUG/schemas
Partner OAuth 2.0 Authentication
Clarify uses OAuth and supports Authorization Code, Authorization Code with PKCE, and Refresh Token grants.
OAuth Endpoints:
- Authorization:
https://auth1.clarify.ai/oauth2/authorize - Token:
https://auth1.clarify.ai/oauth2/token - Refresh Token:
https://auth1.clarify.ai/oauth2/token - Scopes:
openid profile email offline_access
OAuth Flow:
- Get authorization code:
GET https://auth1.clarify.ai/oauth2/authorize?response_type=code&client_id={your_client_id}&scope=openid%20profile%20email%20offline_access&redirect_uri={your_redirect_url}
- Exchange for tokens:
POST https://auth1.clarify.ai/oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
code={your-code}
redirect_uri={your_redirect_uri}
client_id={your_client_id}
client_secret={your_client_secret}
- Use access token in API calls:
Authorization: Bearer {access-token}
API Structure
The API follows the JSON:API spec.
Pagination
Maximum response size is 1000 items.
Request:
page[limit]={number}— maximum number of items to return
Response fields:
data— array of returned itemsmeta— pagination metadata:total_records,total_pages,offset,limitlinks— URL references:prev(if available),next(if available)
Ordering
Control record order with the sortOrder query parameter:
sortOrder[column]— field name to order bysortOrder[dir]— direction:ASCorDESC
Filtering
Filter records with filter query parameters. Conditions are always AND (OR not supported).
Basic syntax:
filter[{field_name}]={field_value}
Advanced syntax with operators:
filter[{field_name}][{operator}]={field_value}
Supported operators by field type:
| Field Type | Operators |
|---|---|
| Text, Multiline Text | Is, Is not, Contains, Does not contain, Starts with, Ends with |
| Number, Currency | Is, Greater than, Less than, Greater than or equal, Less than or equal |
| Dates | Is, Is after, Is before, Is on or after, Is on or before |
| Single select | Is, Is not, One of, Not one of |
| Multi select | Contains, Does not contain |
| Checkbox | Is, Is not |
| Location | Contains, Does not contain |
| Record IDs | Is, Is not |
| Collections (Email, Domains) | Contains, Does not contain |
Endpoints
Get Objects & Schemas
GET /schemas
Returns an array of schema JSONs:
core/*— internal schemas referenced in other schemasentities/*— objects available: company, deal, meeting, meeting_recording, person, task, user
Each entity has its JSON Schema definition in the attributes field.
Get Records
GET /objects/{object}/resources
Parameters:
sortOrder— field to order by with optional directionfilters— one or more criteria to filter recordsinclude— comma-separated list of relationship fields to include
Create Record
POST /objects/{object}/records
Request body:
{
"data": {
"type": "{object}",
"attributes": {
"{field-name}": "{field-value}"
}
}
}
Unique fields for upsert behavior:
| Object | Unique Field |
|---|---|
| Person | email_addresses (any one) |
| Company | domains (any one) |
| Deal | name |
| Meeting | N/A |
| Meeting Recording | N/A |
| User | N/A |
Get Record
GET /objects/{object}/records/{id}
Parameters:
include— comma-separated list of relationship fields to include
Update Record
PATCH /objects/{object}/records/{id}
Request body:
{
"data": {
"id": "{id}",
"type": "{object}",
"attributes": {
"{field-name}": "{field-value}"
}
}
}
Bulk Upsert Records
POST /objects/{object}/records/bulk
Request body:
{
"data": [{
"type": "{entity}",
"attributes": {
"{field-name}": "{field-value}"
}
}]
}
Bulk Delete Records
There is no way to bulk delete records today.
Set Relationship
PATCH /objects/{object}/records/{id}/relationships/{field-name}
Request body:
{
"data": [
{
"id": "{id-of-record-to-associate}",
"type": "{object}"
}
]
}
Unset Relationship
DELETE /objects/{object}/records/{id}/relationships/{field-name}
Request body:
{
"data": [
{
"id": "{id-of-record-to-disassociate}",
"type": "{object}"
}
]
}
Get Recording Artifacts
POST /meetings/{id}/recordings/{id}/artifacts
Response:
{
"data": {
"videoUrl": "{signed-video-url}",
"transcriptionUrl": "{signed-transcription-url}"
}
}
Swagger Documentation
Full API documentation: https://api.clarify.ai/swagger