주요 콘텐츠로 건너뛰기
문서API 오픈 플랫폼인증 및 속도 제한

인증 및 속도 제한

Bearer / X-API-Key / 쿼리 세 가지 쓰기 방법, 패키지 속도 제한, HTTP 상태 코드 의미.

오픈 플랫폼의 모든 엔드포인트는 API Key를 통해 균일하게 인증됩니다. 이 페이지에서는 토큰을 작성하는 세 가지 방법, 패키지 속도 제한 및 오류 응답의 의미를 명확하게 설명합니다.

세 가지 인증 작성 방법

1. 권한 : Bearer (권장)

bash
curl https://braidrun.com/api/v1/workflows \
  -H "Authorization: Bearer dyk_<id>_<secret>"

가장 표준적인 작성 방법으로 모든 SDK에서 기본적으로 지원됩니다. 생산 환경이 선호됩니다.

2.X-API-키 헤더

bash
curl https://braidrun.com/api/v1/workflows \
  -H "X-API-Key: dyk_<id>_<secret>"

일부 폐쇄 네트워크의 프록시가 인증 헤더를 전달할 수 없는 시나리오에 적합합니다. 기능적으로 Bearer와 동일합니다.

3. 쿼리 매개변수 ?api_key=(헤더를 쓸 수 없는 시나리오에만 해당)

text
https://braidrun.com/api/webhook-trigger/approval/appr-123/approve?api_key=dyk_<id>_<secret>
쿼리 매개변수를 주의해서 사용하세요.

쿼리 매개변수는 브라우저 기록, 리퍼러 헤더, HTTP 서버 액세스 로그 및 CDN 로그에 기록됩니다. GET 링크(예: 이메일/Slack/텔레그램 원클릭 승인 링크) 형식으로 트리거되어야 하는 시나리오에서만 사용되며 짧은 TTL 키와 함께 사용됩니다. 쿼리 매개변수에 대한 Bearer 우선순위를 절대로 포기하지 마십시오.

우선순위

  1. Authorization: Bearer dyk_…
  2. X-API-Key: dyk_…
  3. ?api_key=dyk_…

위에서 아래로 시도하고 비어 있지 않은 것을 찾으면 구문 분석을 중지하십시오.

속도 제한

각 API Key에는 "분당"과 "일일"이라는 두 가지 상한이 있으며, 이는 키 소유자의 패키지에 따라 자동으로 적용됩니다. 각 키에는 독립적인 할당량이 있으며 동일한 계정의 다른 키와 공유되지 않습니다.

패키지 비교표

패키지분당매일
Free602,000
Pro30050,000
Team1,200500,000
Enterprise6,000제한 없음

창 의미론

  • 분 창 · epoch 분을 키로 사용하면 경계가 1분마다 자동으로 재설정됩니다(첫 번째 호출에서 시작하는 슬라이딩 창이 아님).
  • 매일(요일 창) · UTC 날짜를 키로 사용하고 매일 UTC 00:00에 자동으로 재설정됩니다.

한도에 도달하면

http
HTTP/1.1 429 Too Many Requests
Retry-After: 38
X-RateLimit-Limit: 60
X-RateLimit-Window: minute
Content-Type: application/json

{
  "error": "Rate limit exceeded",
  "window": "minute",
  "limit": 60,
  "retryAfterSeconds": 38
}

클라이언트는 다음을 수행해야 합니다.

  • Retry-After 헤더(초)를 읽고 해당 시간 동안 지연한 후 다시 시도하십시오.
  • X-RateLimit-Window 어떤 창에 도달했는지 알려줍니다(분/일).
  • 지수 백오프 + 지터; 429를 받은 후 즉시 재시도하지 마세요.
트래픽을 분할하는 다중 키

더 높은 처리량이 필요합니까? 서로 다른 환경/다양한 통합을 위해 독립 키가 발급되며 각 키는 전체 할당량을 받습니다. 3개의 키를 여는 Pro 사용자는 총 용량 900RPM과 같습니다. 이는 사고 위치에 대한 모범 사례이기도 합니다. 문제가 발생하면 어떤 키가 비정상적인 용도로 사용되는지 살펴보기만 하면 됩니다.

HTTP 응답 코드

상태 코드의미대처 전략
200성공
202승인(실행 시작 시)반환된 실행 ID로 상태를 폴링합니다.
400잘못된 요청 본문(JSON/필드 오류)요청 수정; 재시도하지 마세요
401토큰이 누락되었거나 형식이 잘못되었거나 취소되었거나 만료되었거나 범위가 충분하지 않습니다.토큰과 범위를 다시 확인하세요. 다시 시도하지 마세요
403토큰 소유자 계정이 비활성화/잠겨졌습니다.계정 관리자에게 문의하세요. 다시 시도하지 마세요
404리소스가 존재하지 않거나 표시되지 않습니다.ID/범위를 확인하세요. 다시 시도하지 마세요
409상태 충돌(예: 승인이 결정됨)현재 상태를 다시 쿼리해 보세요.
429속도 제한Retry-After 준수 후 재시도
500/502/503서버 오류지수 백오프 + 지터, 3~5회 재시도
401이 이유를 구별하지 못하는 이유

토큰 누락, 만료, 취소 및 불충분한 범위는 모두 특정 실패 이유를 노출하지 않고 균일하게 401을 반환합니다. 이를 통해 공격자가 시행착오를 통해 어떤 키가 존재하는지/어떤 범위가 활성화되어 있는지 감지하는 것을 방지할 수 있습니다. 전체 실패 사유(이유 필드)는 감사 로그에 보관되며 관리자가 확인할 수 있습니다.