G2에서 5점 만점에 5.0점
API 참조
HummingDeck은 통합 파트너와 자동화 플랫폼을 위한 REST API를 제공합니다. 엔드포인트는 Bearer 토큰으로 인증하며 JSON 응답을 반환합니다.
https://app.hummingdeck.com/api/v1인증
모든 API 요청은 Authorization 헤더에 Bearer 토큰을 담아 보냅니다. 두 가지 자격 증명을 지원하며, 동작 방식이 서로 다릅니다.
방법
Bearer 토큰
헤더 형식
Authorization: Bearer {access_token}
자격 증명 종류
워크스페이스 API 토큰
Authorization: Bearer hd_api_...
REST API 액세스는 Business 플랜에서 요청할 수 있으며 검토 후 워크스페이스별로 활성화됩니다. 그런 다음 워크스페이스 소유자와 관리자는 워크스페이스 설정, 연동, HummingDeck API에서 이름이 지정된 API 키를 각각 만들 수 있습니다. 각 연동에 필요한 권한만 선택하세요. 키는 생성할 때 한 번만 표시되며 나중에 다시 확인할 수 없습니다. 생성 후 1년이 지나면 만료되고 발급된 워크스페이스에 계속 묶이므로 요청에서 워크스페이스를 선택하거나 변경할 수 없습니다.
워크스페이스당 활성 API 키를 최대 20개까지 사용할 수 있습니다. 키 하나를 교체하면 그 키의 이전 비밀 값만 즉시 무효화되며 다른 키는 계속 작동합니다. 소유자와 관리자는 키 하나 또는 모든 키를 언제든지 비활성화할 수 있습니다. 해당 비밀 값의 해지는 영구적입니다.
워크스페이스 API 키는 선택한 권한에서 허용하는 작업만 호출할 수 있습니다. 웹훅 구독 엔드포인트는 사용할 수 없습니다.
Zapier OAuth
Authorization: Bearer {access_token}
워크스페이스가 Zapier 연동을 연결할 때 OAuth 인증 절차를 통해 발급됩니다. 액세스 토큰은 30일 후 만료됩니다. 90일간 유효한 리프레시 토큰을 사용하면 다시 인증하지 않고 새 액세스 토큰을 받을 수 있습니다.
웹훅 구독을 생성하거나 삭제할 수 있는 유일한 자격 증명입니다.
권한
권한을 하나 이상 선택하세요. 쓰기 권한에는 해당 읽기 권한도 포함됩니다. 키를 교체할 때 권한을 변경할 수 있습니다.
rooms:read룸, 탭, 항목, 링크 및 라벨을 조회합니다.
rooms:write룸, 탭, 항목, 링크 및 라벨을 만들고 관리합니다.
plan:read상호 실행 계획의 단계와 작업을 조회합니다.
plan:write상호 실행 계획의 단계와 작업을 만들고 관리합니다.
analytics:read참여 분석, 활동 및 수집된 이메일을 조회합니다.
crm:read워크스페이스 회사와 연락처를 검색합니다.
crm:write회사, 연락처 및 링크 대상을 만들거나 업데이트합니다.
documents:read문서를 검색하고 메타데이터를 조회합니다.
documents:write문서를 업로드하고 문서 또는 URL을 룸에 추가합니다.
엔드포인트 행의 권한 표시는 워크스페이스 API 키에 적용됩니다. 필수 권한은 항상 필요하고, 추가 필수 권한은 함께 필요하며, 조건부 권한은 요청에서 관련 필터나 필드를 사용할 때만 필요합니다. GET /me에는 권한이 필요하지 않습니다. Zapier OAuth에는 고정된 연동 접근 권한이 적용됩니다.
요청이 401을 반환하는 경우
키를 알 수 없거나 형식이 잘못된 경우, 만료되었거나 비활성화된 경우, API 액세스가 꺼진 워크스페이스에 속한 경우, 또는 발급자가 더 이상 해당 워크스페이스의 소유자나 관리자가 아닌 경우 요청은 401을 반환합니다.
연결 테스트
토큰이 유효한지 확인하고 인증된 사용자의 프로필을 확인합니다.
/me현재 사용자의 이름, 이메일, 팀 정보를 반환합니다.
API 키 권한 필요 없음
문서
문서(PDF, 슬라이드 덱, 제안서 및 기타 파일)를 업로드, 검색 및 관리합니다.
/decks새 문서를 업로드합니다. file 필드(PDF, PPTX, DOCX, XLSX, XLS, HTML)와 title 필드를 포함한 multipart/form-data로 전송합니다. API 업로드 한도는 30MB입니다. 업로드 후에도 처리가 계속되며, 응답에 processingStatus가 포함됩니다.
documents:write/decks최신순으로 문서를 최대 20개 나열합니다. 선택 사항인 title 쿼리 매개변수로 대소문자를 구분하지 않고 제목의 일부를 필터링할 수 있습니다.
documents:readGET /decks 응답 필드
| Field | Type | Description |
|---|---|---|
| id | string | 문서 ID |
| title | string | 문서 제목 |
| fileType | string | 문서의 MIME 유형 |
| pageCount | integer | null | 페이지 수 |
| thumbnailUrl | string | null | 썸네일 이미지 URL |
| processingStatus | string | pending, processing, completed, failed 중 하나입니다. 처리 중인 문서도 룸에 추가할 수 있습니다. 문서 링크는 completed가 된 후에 보내세요. |
| processingErrorCode | string | null | 처리에 실패한 경우 그 이유 |
| createdAt | string | ISO 8601 타임스탬프 |
POST /decks 응답 필드
| Field | Type | Description |
|---|---|---|
| id | string | 문서 ID |
| title | string | 문서 제목 |
| fileType | string | 문서의 MIME 유형 |
| processingStatus | string | pending, processing, completed, failed 중 하나입니다. 처리 중인 문서도 룸에 추가할 수 있습니다. 문서 링크는 completed가 된 후에 보내세요. |
| processingErrorCode | string | null | 처리에 실패한 경우 그 이유 |
룸
문서와 대상 링크를 갖춘 딜룸을 한 번의 호출로 만들고, 룸을 찾고, 설정을 변경하고, 보관 및 복원하고, 탭과 항목을 정리합니다. 워크스페이스 API 토큰으로만 사용할 수 있으며 Zapier OAuth 자격 증명은 거부됩니다.
/rooms룸을 최신순으로 나열합니다. search, status(active, archived, all), companyId로 필터링합니다. 한 페이지에 25개(limit으로 최대 100개)가 담기며, 다음 페이지를 받으려면 해당 페이지의 nextCursor를 cursor로 전달합니다.
rooms:readcrm:read(Required when the companyId filter is present.)/rooms문서와 첫 대상 링크를 포함한 룸을 한 번의 호출로 만듭니다.
rooms:writedocuments:write(Required when documentIds contains one or more document IDs.)crm:write(Required when the request supplies contactId, recipientName, recipientEmail, companyId, companyName, or when either primaryLink.allowedEmails or primaryLink.allowedDomains is non-empty.)/rooms/{roomId}룸의 설정, 표시 순서대로 정렬된 탭과 항목, 링크 수를 반환합니다.
rooms:read/rooms/{roomId}이름, 환영 메시지, 담당자, 회사, 연락처를 변경합니다.
rooms:writecrm:write(Required when companyId or contactId is present, including null to detach the association.)/rooms/{roomId}/archive룸을 보관합니다. 룸의 링크는 더 이상 작동하지 않습니다.
rooms:write/rooms/{roomId}/restore보관된 룸을 복원합니다. 링크가 다시 작동합니다.
rooms:write/rooms/{roomId}/tabs탭을 지정한 위치나 맨 끝에 추가합니다.
rooms:write/rooms/{roomId}/tabs/{tabId}탭 이름을 바꿉니다.
rooms:write/rooms/{roomId}/tabs/order모든 탭의 순서를 새로 정합니다.
rooms:write/rooms/{roomId}/tabs/{tabId}항목이 표시되지 않는 탭을 삭제합니다.
rooms:write/rooms/{roomId}/items탭에 문서, URL, 임베드, 섹션 구분선을 추가합니다.
rooms:writedocuments:write(Required when type is document or url.)/rooms/{roomId}/items/{itemId}/move항목을 다른 탭의 맨 끝으로 옮깁니다.
rooms:write/rooms/{roomId}/items/order한 탭의 항목 순서를 새로 정합니다.
rooms:write/rooms/{roomId}/items/{itemId}항목을 룸에서 뺍니다. 항목은 라이브러리에 남습니다.
rooms:write/rooms/{roomId}/links룸의 대상 링크를 최신순으로 나열합니다. 제한된 링크에는 활성 초대자도 포함됩니다.
rooms:read/rooms/{roomId}/links활성 룸에 귀속 정보가 있는 공개 링크를 만듭니다.
rooms:writecrm:write/rooms/{roomId}/links/{linkId}링크를 켜거나 끄고, 만료일을 설정하거나 지우고, 허용 목록을 교체합니다.
rooms:writecrm:write(Required when allowedEmails or allowedDomains is present, including an empty array that clears the audience.)/rooms/{roomId}/action-plan룸의 실행 계획을 반환합니다. 설정, 단계, 작업(내부 전용 포함), 선행 작업, 진행률이 포함됩니다.
plan:read/rooms/{roomId}/action-plan계획 설정을 변경합니다. 룸을 여는 사람이 자기 작업을 완료 처리할 수 있는지도 포함됩니다.
plan:write/rooms/{roomId}/action-plan/phases마일스톤을 추가합니다. color를 생략하면 단계가 순서대로 청록, 피치, 파랑으로 바뀝니다.
plan:write/rooms/{roomId}/action-plan/phases/{phaseId}단계의 이름, 위치, 날짜, 색상을 변경합니다. color에 null을 보내면 자동 순환으로 돌아갑니다.
plan:write/rooms/{roomId}/action-plan/phases/{phaseId}단계를 삭제합니다. mode는 필수이며 delete_tasks 또는 move_to_unphased를 지정합니다. 작업이 실수로 사라지지 않습니다.
plan:write/rooms/{roomId}/action-plan/tasks작업을 추가합니다. assignee는 null, 담당 회사를 뜻하는 side만, 또는 특정 담당자를 뜻하는 side와 email입니다.
plan:write/rooms/{roomId}/action-plan/tasks/{taskId}작업을 업데이트합니다. assignee를 생략하면 담당이 그대로 유지되고, null을 보내면 담당이 해제됩니다.
plan:write/rooms/{roomId}/action-plan/tasks/{taskId}작업을 삭제합니다. 하위 작업도 함께 삭제됩니다.
plan:write/rooms/{roomId}/action-plan/tasks/{taskId}/status워크스페이스를 대신해 작업을 완료하거나 다시 엽니다. 선행 작업이 끝나지 않은 작업은 409 TASK_BLOCKED를 반환합니다.
plan:write/rooms/{roomId}/analytics룸 방문 수, 순 방문자, 평균 체류 시간, 열람한 문서 수와 전체 문서 수, 평균 완료율을 반환합니다. 봇은 제외됩니다.
analytics:read/rooms/{roomId}/activity룸에서 일어난 일을 최신순으로 반환합니다. 대화 항목은 보낸 사람만 표시하며 메시지 본문은 포함하지 않습니다. since로 범위를 좁히세요.
analytics:read/rooms/{roomId}/captured-emails룸이 수집한 이메일 주소를 반환합니다. source는 일회용 링크로 확인했으면 verify, 입력만 했으면 ask입니다.
analytics:read/room-views워크스페이스 전체의 룸 입장을 최신순으로 반환합니다. 입장을 알 수 있는 다른 경로는 없으며, /views는 문서 열람만 다룹니다.
analytics:read/room-labels워크스페이스의 룸 라벨과 각 라벨을 사용하는 룸 수를 나열합니다. 룸에 라벨을 붙이기 전에 여기서 ID를 확인하세요.
rooms:read/room-labels라벨을 만듭니다. 이름은 대소문자를 구분하지 않고 워크스페이스 내에서 고유하며, color는 #RRGGBB 형식의 16진수입니다.
rooms:write/room-labels/{labelId}라벨의 이름, 색상, 설명을 변경합니다.
rooms:write/room-labels/{labelId}라벨과 그 배정을 삭제합니다. 해당 라벨이 붙어 있던 룸은 그대로이며, 응답에 몇 개에서 제거됐는지 포함됩니다.
rooms:write한 번의 호출로 룸 만들기
각 파일을 POST /decks로 업로드한 다음, 수신자 회사를 위한 룸을 봐야 할 사람만 열 수 있는 제한된 링크와 함께 만드세요. 회사, 연락처, 룸, 문서, 링크가 함께 만들어지므로 호출이 거부되면 아무것도 만들어지지 않습니다. 문서는 처리 중에도 룸에 추가할 수 있습니다. 룸의 항목은 processingStatus를 알려 주므로 모든 문서가 completed가 된 뒤에 링크를 보내세요.
{
"name": "Acme renewal",
"companyName": "Acme Inc",
"recipientName": "Pat Buyer",
"recipientEmail": "pat@acme.example",
"documentIds": [
"{documentId}",
"{documentId}"
],
"primaryLink": {
"accessMode": "verified-allowlist",
"allowedEmails": [
"pat@acme.example",
{
"email": "cfo@acme.example",
"name": "Sam Rivera"
}
],
"allowedDomains": [
"acme.example"
]
}
}accessMode는 open(URL을 아는 누구나), verify-any(방문자가 일회용 링크로 이메일 주소를 확인), verified-allowlist(allowedEmails의 주소와 allowedDomains 도메인의 주소를 가진 사람만) 중 하나입니다. API는 제한된 링크에 누구도 자동으로 추가하지 않으므로, 룸을 미리 보려면 본인 주소도 넣으세요. 요금제에 없는 옵션은 403 FEATURE_NOT_AVAILABLE을, 알 수 없는 필드는 400을 반환하므로 룸이 요청한 것과 다른 대상에게 열리는 일은 없습니다.
탭과 항목 정리하기
룸의 현재 상태에서 시작하세요. 룸을 읽으면 탭과 항목이 표시 순서대로 반환되고, 각 항목은 속한 탭과 그 안에서의 위치(0부터 셈)를 알려 줍니다. 탭과 항목을 원하는 위치에 추가하고, 항목을 탭 사이로 옮기고, 탭의 새 순서를 전체로 보내세요. 순서에는 탭의 모든 항목이 정확히 한 번씩 들어가야 하므로, 그 사이에 다른 변경이 있었다면 룸을 다시 읽으세요. 탭은 항목이 하나도 표시되지 않을 때 삭제할 수 있습니다.
{
"type": "section",
"label": "Commercials",
"tabId": "{tabId}",
"position": 0
}지원되는 임베드 제공업체
임베드는 공유 링크와 임베드 링크를 모두 받아 제공업체의 임베드 형식으로 정규화합니다. 이 목록에 없는 것은 400 EMBED_PROVIDER_NOT_SUPPORTED를 반환합니다.
| Field | Type | Description |
|---|---|---|
| 동영상 | Loom, YouTube, Vimeo, Wistia, Vidyard | |
| 일정 예약 | Calendly, Cal.com, SavvyCal, Google Calendar | |
| 양식 | Typeform, Tally, Google Forms, Jotform, Fillout | |
| 디자인 | Figma, Miro, Canva, Whimsical | |
| 문서와 표 | Google Docs, Google Sheets, Notion, Coda, Airtable | |
| 프레젠테이션 | Google Slides, Pitch, Gamma, Guideflow, Flipsnack, Prezi | |
| 오디오 | Spotify, SoundCloud |
다른 대상용 링크 추가
모든 룸에는 POST /rooms로 만든 링크가 이미 하나 있습니다. 귀속이나 접근 권한을 다르게 하려면 링크를 더 추가하세요. recipientName, recipientEmail, contactId, companyId, companyName 중 최소 하나를 지정합니다. accessMode는 primaryLink와 같은 open, verify-any, verified-allowlist 값을 받고 필드도 동일합니다(requireEmail, allowedEmails, allowedDomains, label, expiresAt, allowDownloads). 요금제 한도를 포함해 거부된 호출은 링크도, 회사도, 연락처도 남기지 않습니다.
{
"companyName": "Analytical Engines",
"accessMode": "verified-allowlist",
"allowedEmails": [
{
"email": "cfo@analytical.example",
"name": "Sam Rivera"
}
]
}링크 업데이트
네 개의 필드를 바꿀 수 있습니다. isActive, expiresAt, allowedEmails, allowedDomains(뒤의 두 개는 verified-allowlist 링크에만 해당). accessMode와 슬러그는 바뀌지 않으므로 새 링크를 만드세요. 링크를 다시 켜면 요금제의 활성 링크 한도를 다시 확인합니다.
{
"isActive": false
}실행 계획 만들기
모든 룸에는 계획이 정확히 하나 있으므로 별도 ID 없이 룸 아래에 붙습니다. 대부분의 작업은 개인이 아니라 회사에 속합니다. side만 보내면 계획은 이를 회사로 읽으며, 상대 쪽에서 누가 일할지 모를 때 이것이 적절합니다. 담당자를 아는 경우에만 email을 추가하세요. 내부 전용 작업은 룸에 표시되지 않으므로 수신자 쪽에 배정할 수 없습니다.
{
"title": "Sign the NDA",
"assignee": {
"side": "buyer"
},
"dueDate": "2026-10-02"
}계획의 recipientCompletionEnabled가 룸을 여는 사람이 자기 쪽 작업을 완료 처리할 수 있는지 결정합니다. 기본값은 true이며 이것이 유일한 조건입니다. 작업을 완료하기 위해 API가 수신자의 주소를 요구하는 일은 없습니다. 누가 완료했는지는 룸의 접근 방식이 제공하는 확실성만큼 기록됩니다.
룸에 라벨 붙이기
라벨은 워크스페이스 전체에서 공유되므로 한 번 만들어 재사용합니다. 룸을 만들면서 라벨을 붙이려면 POST /rooms에 labelIds를 전달하고, 전체 세트를 교체하려면 PATCH /rooms/{roomId}에 전달하세요. 빈 배열은 모든 라벨을 제거하고, 필드를 생략하면 그대로 유지됩니다. 한 룸은 최대 5개를 가지며, 이는 설정이 아니라 구조적 제한입니다. 룸을 읽으면 라벨도 함께 반환됩니다.
{
"labelIds": [
"{labelId}"
]
}무슨 일이 있었는지 확인하기
/room-views를 조회해 워크스페이스 전체의 입장 기록을 확인한 다음, 개별 룸의 분석, 활동 및 수집된 주소를 읽습니다. 계속하려면 페이지의 nextCursor를 cursor로 전달하세요. 이 API가 발급하지 않은 커서는 처음부터 다시 시작하지 않고 400을 반환하므로 폴링 작업이 중복되지 않습니다. since로 활동 기간을 좁히고 cursor로 페이지를 이어서 가져옵니다. /room-views는 아카이브가 아니라 기간입니다. since를 생략하면 최근 30일이 반환되며, 90일보다 오래된 요청은 거부됩니다. 적용된 기간은 since로 반환되므로 cursor와 함께 보내면 같은 범위를 계속 조회할 수 있습니다.
회사 및 연락처
기존 계정 레코드를 결정적으로 찾아 사용하거나 새로 만듭니다. 회사 이름과 연락처 이메일은 대소문자를 구분하지 않고 일치시킵니다.
/companies?name={name}&domain={domain}정확한 이름과 선택적 도메인으로 회사를 검색합니다.
crm:read/companies대소문자를 구분하지 않는 이름으로 회사를 찾거나 만듭니다. 명시적 도메인은 레코드 정보만 보완합니다.
crm:write/contacts?email={query}이메일 주소로 연락처를 검색합니다. 연관된 회사와 함께 일치하는 연락처를 반환합니다.
crm:read/contacts연락처를 이메일로 찾거나 만들고 선택적으로 회사에 연결합니다.
crm:writePOST /companies 요청
| Field | Type | Description | |
|---|---|---|---|
| name | string | 필수 | 회사 이름 |
| domain | string | 선택 | 회사 정보 보완에 사용할 도메인. 기존 회사 일치에는 사용하지 않음 |
POST /contacts 요청
| Field | Type | Description | |
|---|---|---|---|
| name | string | 조건부 | 전체 이름. firstName이 없으면 필수 |
| firstName | string | 조건부 | 이름. name이 없으면 필수 |
| lastName | string | 선택 | 성 |
| string | 필수 | 고유하게 일치시킬 이메일 주소 | |
| title | string | 선택 | 직함 |
| companyId | UUID | 선택 | 인증된 워크스페이스의 기존 회사 |
| companyName | string | 선택 | 찾거나 만들 회사 이름 |
| companyDomain | string | 선택 | companyName과 함께 사용할 선택적 정보 보완 도메인. 회사 일치 키가 아님 |
회사 응답
| Field | Type | Description |
|---|---|---|
| company.id | UUID | 회사 ID |
| company.name | string | 회사 이름 |
| company.domain | string | null | 정규화된 회사 도메인 |
| created | boolean | POST 요청에서 회사를 만든 경우 true |
연락처 응답
| Field | Type | Description |
|---|---|---|
| contact.id | UUID | 연락처 ID |
| contact.firstName | string | 이름 |
| contact.lastName | string | 성 |
| contact.email | string | 정규화된 이메일 주소 |
| contact.title | string | null | 직함 |
| contact.companyId | UUID | null | 연결된 회사 ID |
| contact.companyName | string | null | 연결된 회사 이름 |
| created | boolean | POST 요청에서 연락처를 만든 경우 true |
| company | object | null | 확인된 회사(있는 경우) |
| companyCreated | boolean | 이 요청에서 회사를 만든 경우 true |
Webhook
REST Hooks를 통해 실시간 이벤트를 구독합니다. 이벤트가 발생하면 HummingDeck은 이벤트 페이로드와 함께 등록된 HTTPS URL로 POST 요청을 전송합니다. 배달 실패 시 최대 3회 재시도됩니다(1초, 5초, 30초 간격). 웹훅 구독은 Zapier 연동으로 관리되며 워크스페이스 API 토큰으로는 사용할 수 없습니다.
/hooks이벤트를 구독합니다. HTTPS 대상 URL과 이벤트 유형이 필요합니다. 구독 ID를 반환합니다.
Zapier OAuth 전용
/hooks/{id}구독 ID로 이벤트 구독을 취소합니다.
Zapier OAuth 전용
이벤트 유형
| Event | Description |
|---|---|
| view.created | 실제 사람이 공유된 문서를 조회했습니다. 봇 트래픽(이메일 보안 스캐너, 크롤러)은 자동으로 필터링됩니다. |
| decision.made | 잠재 고객이 제안에 수락, 거절 또는 변경 요청으로 응답했습니다. |
| email_captured | 방문자가 게이트 콘텐츠에 접근하기 위해 이메일 주소를 입력했습니다. |
페이로드 예시
view.created
{
"event": "view.created",
"data": {
"id": "view_abc123",
"deck_id": "deck_xyz789",
"deck_title": "Q4 Enterprise Proposal",
"viewer_email": "sarah@acme.com",
"viewer_name": "Sarah Wood",
"viewer_company": "Acme Corp",
"location": "San Francisco, CA",
"device": "Desktop",
"browser": "Chrome",
"pages_viewed": 8,
"total_pages": 12,
"duration_seconds": 272,
"completion_percent": 67,
"created_at": "2026-03-29T14:32:00Z"
}
}decision.made
{
"event": "decision.made",
"data": {
"share_slug": "proposal-2024",
"decision": "accepted",
"deck_title": "Q4 Enterprise Proposal",
"viewer_email": "sarah@acme.com",
"viewer_name": "Sarah Wood",
"decision_note": "Approved pending final review",
"decided_at": "2026-03-29T15:30:00Z"
}
}email_captured
{
"event": "email_captured",
"data": {
"email": "prospect@company.com",
"share_slug": "proposal-2024",
"deck_title": "Q4 Enterprise Proposal",
"view_id": "view_xyz789",
"captured_at": "2026-03-29T14:35:00Z"
}
}조회수 및 이벤트
최근 참여 데이터를 검색하기 위한 폴링 엔드포인트입니다. webhook이 실시간으로 전달하는 동일한 데이터를 반환합니다. 백필링, 테스트 또는 대안으로 사용하십시오.
/views가장 최근의 문서 조회 100건을 나열합니다. 봇 세션은 제외됩니다.
analytics:read/decisions최근 제안 결정(수락, 거절, 변경 요청)을 나열합니다.
analytics:read/emails게이트 콘텐츠에서의 최근 이메일 캡처를 나열합니다.
analytics:read오류 처리
모든 오류는 무엇이 잘못되었는지 설명하는 error 필드가 담긴 JSON 객체를 반환합니다. 대부분의 응답에는 PLAN_LIMIT_REACHED, FEATURE_NOT_AVAILABLE, ROOM_NOT_ACTIVE, TAB_NOT_EMPTY, INVALID_FORMAT, FILE_TOO_LARGE처럼 프로그래밍 방식으로 처리할 수 있는 code 필드도 포함됩니다. HTTP 상태 코드는 표준 규칙을 따릅니다.
| Status | Meaning |
|---|---|
| 400 | 잘못된 요청: 누락되거나 잘못된 파라미터 |
| 401 | 인증되지 않음: 유효하지 않거나 만료된 Bearer token |
| 403 | 금지됨: 자격 증명에 필요한 scope가 없거나, 요금제 한도에 도달했거나, 필요한 옵션이 요금제에 없거나, 이 자격 증명 유형을 이 엔드포인트에서 사용할 수 없습니다 |
| 404 | 찾을 수 없음: 리소스가 존재하지 않거나 팀 소유가 아님 |
| 409 | 충돌: 제공된 식별자가 서로 일치하지 않거나, 룸이 보관되었거나, 룸의 탭 상태로는 이 변경을 할 수 없습니다 |
| 413 | 페이로드가 너무 큼: 요청 본문 또는 업로드 파일이 이 엔드포인트의 한도를 초과했습니다 |
| 429 | 요청이 너무 많음: 키 또는 클라이언트 IP가 현재 한도를 초과했습니다. Retry-After에 지정된 시간 후 다시 시도하세요 |
| 500 | 서버 오류: 요청을 재시도하십시오 |
속도 제한
수동 워크스페이스 키와 Zapier OAuth 연결에는 자격 증명별 제한이 적용됩니다. 읽기는 5분당 600회, 쓰기는 분당 120회, /room-views는 분당 60회, 업로드는 시간당 20회입니다. 모든 자격 증명을 합친 워크스페이스별 제한은 읽기 5분당 1,200회, 쓰기 분당 240회, /room-views 분당 120회, 업로드 시간당 40회입니다. Bearer 인증 실패와 유효하지 않은 OAuth 클라이언트 인증은 각각 클라이언트 IP별로 5분당 60회로 제한됩니다. 팀당 활성 webhook 구독은 최대 50개입니다.
이 API는 현재 당사의 Zapier 통합에서 사용됩니다. 향후 추가 통합 플랫폼이 지원될 수 있습니다.