이 개요에는 API 키의 토큰으로 작동하는 모든 엔드포인트가 나열되어 있습니다. 모든 경로는 https://dock.at-harbor.com으로 시작합니다. 각 엔드포인트의 정확한 필드는 https://dock.at-harbor.com/openapi.yaml의 OpenAPI 명세에 있습니다.
# 인증과 공개 엔드포인트 메서드와 경로 인증 용도 POST /v1/token 없음(본문에 키 ID와 시크릿) API 키를 액세스 토큰으로 교환 GET /v1/plans 없음 플랜과 가격 GET /v1/pages/available?handle=… 없음 핸들이 사용 가능한지 확인
# 페이지 메서드와 경로 스코프 용도 GET /v1/pages read:pages 워크스페이스의 모든 페이지(ID, 핸들, 제목, 상태, 공개 버전, 공개 범위, URL 포함) POST /v1/pages write:pages 페이지 만들기. 필수: handle(2~64자, 문자, 숫자, 하이픈)과 template_key. 선택: title, domain_id, theme_config GET /v1/pages/{id} read:pages 페이지 하나. has_unpublished_changes도 포함(초안이 게시된 버전과 다르면 true) PATCH /v1/pages/{id} write:pages title, handle, discoverable(디렉터리 노출) 변경 PATCH /v1/pages/{id}/visibility write:pages public, private, password(4~72자 password 포함). 즉시 적용 POST /v1/pages/{id}/publish write:pages 초안 게시. 응답에 새 버전 포함 GET /v1/pages/{id}/versions read:pages 게시된 버전 GET /v1/pages/{id}/versions/{version} read:pages 버전 하나 POST /v1/pages/{id}/versions/{version}/restore write:pages 버전을 초안으로 되돌림. current는 모든 초안 변경을 버림 GET /v1/pages/{id}/seo read:pages SEO 및 공유 텍스트 PATCH /v1/pages/{id}/seo write:pages seo_title, seo_description, og_title, og_description, og_image_asset_id, canonical_url, noindex POST /v1/pages/{id}/invite-link write:pages 게시된 비공개 페이지의 초대 링크. days 1~30, 기본 7. 그 밖에는 409 page_not_private 또는 page_not_published POST /v1/pages/{id}/invite-link/revoke write:pages 초대 링크 폐기 POST /v1/pages/{id}/uploads write:assets 페이지용 파일 업로드
메서드와 경로 스코프 용도 GET /v1/pages/{id}/draft read:pages 현재 초안: template_key, config, theme_config, custom_css, seo, 이미지 할당, 링크 PATCH /v1/pages/{id}/draft write:pages 다음 중 하나 이상: config(JSON으로 최대 64 KB, 각 텍스트 최대 5,000자), theme_config, custom_css(최대 50,000자, 65,535바이트), seo, template_key, template_asset_bindings GET /v1/pages/{id}/draft/validate read:pages 초안을 게시할 수 있는지 확인
초안에 대한 PATCH는 config, theme_config, seo, custom_css를 완전히 대체합니다. theme_config에 값 하나만 보내면 다른 테마 설정이 사라집니다. 먼저 초안을 읽고, 객체를 바꾼 다음, 전체를 다시 보내세요. template_asset_bindings만 자리별로 병합되며, null을 보내면 할당이 제거됩니다.
메서드와 경로 스코프 용도 GET /v1/pages/{id}/blocks read:pages 페이지의 블록 POST /v1/pages/{id}/blocks write:pages 블록 만들기. 필수: type과 config PATCH /v1/pages/{id}/blocks/{blockId} write:pages 블록 편집 DELETE /v1/pages/{id}/blocks/{blockId} write:pages 블록 삭제 POST /v1/pages/{id}/blocks/reorder write:pages 순서 지정 GET /v1/blocks/schemas read:pages 모든 블록 종류와 config 스키마
만들 수 있는 유형: text, image, embed, spacer, social_links, form, integration, donation, modal, heading, notice, coupon, contact, opening_hours, tour, file, vcard, countdown, gallery. 링크 블록은 고정되어 있어 이 엔드포인트로 만들지 않습니다. 플랜에 없는 블록 유형은 API가 403 block_type_requires_plan으로 거부합니다. 블록의 config는 JSON으로 최대 128 KB이고 그 안의 각 텍스트는 최대 10,000자입니다. 정보 모달의 modal_body_html은 최대 50,000자, 65,535바이트입니다.
메서드와 경로 스코프 용도 GET /v1/pages/{id}/links read:links 페이지의 링크 POST /v1/pages/{id}/links write:links 링크 만들기. 필수: title(1~200)과 target_url_template(8~2048) GET /v1/pages/{id}/links/{linkId} read:links 링크 하나 PATCH /v1/pages/{id}/links/{linkId} write:links 링크 편집 DELETE /v1/pages/{id}/links/{linkId} write:links 링크 삭제 POST /v1/pages/{id}/links/reorder write:links 순서 지정: {"order":[IDs]}
만들기와 편집 시 선택 필드: enabled, geo(mode allowlist 또는 denylist와 countries가 있는 국가 규칙), device(기기별 별도 대상), starts_at과 ends_at(예약), protection_tier(봇 보호), age_restriction. 예약, 국가 및 기기 규칙은 Creator Pro부터 쓸 수 있습니다. 순서를 바꿀 때는 앞으로 옮길 ID만 보내면 되며, 나머지 링크는 이전 순서대로 뒤따릅니다. 페이지에 속하지 않는 ID는 API가 422 validation_failed로 거부하며, details.missing_link_ids에 나열됩니다.
# 단축 링크 메서드와 경로 스코프 용도 GET /v1/short-links read:short_links limit, offset, sort, 검색 q가 있는 단축 링크. 응답에 total 포함 POST /v1/short-links write:short_links 만들기. 필수: target_url(http 또는 https, 8~2048). 선택: title(최대 120)과 custom_slug(3~32, 소문자, 숫자, 하이픈) GET /v1/short-links/{id} read:short_links 단축 링크 하나 PATCH /v1/short-links/{id} write:short_links target_url 또는 title 변경 DELETE /v1/short-links/{id} write:short_links 단축 링크 삭제
플랜의 단축 링크 한도에 도달하면 API가 402 plan_limit_reached로 응답합니다.
메서드와 경로 스코프 용도 GET /v1/assets read:assets 워크스페이스의 에셋 POST /v1/assets write:assets 파일 업로드(multipart/form-data, 필드 file. 선택: page_id, kind, title, alt_text) DELETE /v1/assets/{assetId} write:assets 에셋 삭제
메서드와 경로 스코프 용도 GET /v1/forms read:forms 폼 POST /v1/forms write:forms 폼 만들기. 필수: name과 fields(필드 1~100개) GET /v1/forms/{id} read:forms 폼 하나 PATCH /v1/forms/{id} write:forms 폼 편집 DELETE /v1/forms/{id} write:forms 폼 삭제 GET /v1/forms/{id}/summary read:forms 요약 GET /v1/forms/{id}/submissions read:forms 제출 내역, 최신순(limit 1~500, 기본 100. 다음 페이지는 cursor = next_cursor) GET /v1/forms/{id}/submissions/export read:forms 모든 제출 내역을 CSV 파일로, 최신순, 플랜의 내보내기 한도까지(Creator Pro부터). X-Export-Truncated 헤더로 잘렸는지 알 수 있음
메서드와 경로 스코프 용도 GET /v1/stats/pages/{id}/summary read:stats 페이지의 주요 수치 GET /v1/stats/pages/{id}/timeseries read:stats 페이지의 시계열 GET /v1/stats/pages/{id}/compare read:stats 이전 기간과 비교 GET /v1/stats/pages/{id}/links read:stats 링크별 클릭수 GET /v1/stats/pages/{id}/widgets read:stats 위젯 클릭수 GET /v1/stats/pages/{id}/conversions/breakdown read:stats 페이지의 전환 GET /v1/stats/workspaces/me/summary read:stats 모든 페이지의 주요 수치 GET /v1/stats/workspaces/me/timeseries read:stats 모든 페이지의 시계열 GET /v1/stats/workspaces/me/compare read:stats 이전 기간과 비교 GET /v1/stats/workspaces/me/top-pages read:stats 인기 페이지 GET /v1/stats/workspaces/me/conversions/breakdown read:stats 워크스페이스의 전환 GET /v1/stats/workspaces/me/donations read:donations 후원 결제 합계
기간은 페이지네이션 에서 설명한 대로 period 또는 from과 to로 고릅니다. 얼마나 이전까지 볼 수 있는지는 플랜에 따라 다릅니다. Creator Pro와 Agency는 365일, Enterprise는 730일입니다. 그보다 이전 기간은 이 한도로 줄어듭니다.
# 푸시(읽기 전용) 메서드와 경로 스코프 용도 GET /v1/push/history read:stats 푸시 기록(limit, offset) GET /v1/push/usage read:stats 주간 한도 사용량
푸시 알림 보내기와 푸시 규칙 관리는 대시보드에서만 할 수 있습니다.
# 워크스페이스, 템플릿, 도메인 메서드와 경로 스코프 용도 GET /v1/workspaces/me/entitlements read:workspaces 플랜 기능과 한도 GET /v1/workspaces/me/usage read:workspaces 현재 사용량 GET /v1/workspaces/me/usage/metering read:workspaces 사용량 기록 GET /v1/workspaces/me/members read:workspaces 멤버 목록 GET /v1/workspaces/me/settings read:workspaces 워크스페이스 설정 GET /v1/workspaces/me/callback-secrets read:workspaces 콜백 시크릿(평문 시크릿 제외) GET /v1/workspaces/me/callback-secrets/{id} read:workspaces 콜백 시크릿 하나(평문 시크릿 제외) GET /v1/templates read:workspaces 모든 템플릿 GET /v1/templates/available read:workspaces 유효한 template_key 값이 있는 기본 제공 및 활성 워크스페이스 템플릿. 워크스페이스 템플릿의 키는 ws:<key>이고 type은 workspace GET /v1/templates/{key} read:workspaces 템플릿 하나 GET /v1/workspaces/me/templates read:workspaces 자체 워크스페이스 템플릿 GET /v1/workspaces/me/templates/{id} read:workspaces 워크스페이스 템플릿 하나 POST, PATCH, DELETE /v1/workspaces/me/templates[/{id}] write:templates 워크스페이스 템플릿 만들기, 편집, 삭제. html은 최대 60,000바이트(넘으면 details.reason maxBytes와 함께 422 validation_failed), asset_slots 최대 32개 GET /v1/domains read:workspaces 커스텀 도메인 GET /v1/domains/available read:workspaces 페이지에 쓸 수 있는 도메인
# API 키로 쓸 수 없는 것웹훅, 연동, 푸시 알림 보내기, 도메인 관리, 멤버, 결제, 페이지 삭제는 대시보드에서만 쓸 수 있습니다. 콜백 시크릿도 대시보드에서만 만들고 관리할 수 있으며, 나열하고 읽는 것(평문 시크릿 제외)은 read:workspaces로 가능합니다. 전체 목록은 스코프 자세히 보기 에 있습니다. 들어오는 데이터(판매와 자체 라이브 데이터)는 별도의 시크릿으로 콜백 에 설명된 엔드포인트로 보냅니다.