문서 목록 조회하기
문서 리스트 조회 API(GET /documents)를 통해 계정이 조회 가능한 문서의 목록을 조회할 수 있습니다. 필터·메타데이터 조건으로 필요한 문서만 골라 가져오고, 원하는 기준으로 정렬할 수 있습니다.
시작하기 전에 꼭 이해하기문서 목록 조회는 "모든 문서를 한 번에 가져오는 API"가 아니라 "필요한 문서만 좁혀서 가져오는 API"입니다.
- 문서 리스트 조회 API는 연산량이 많은 High-cost API로 지정되어 있어, 일반 API보다 낮은 호출 한도(분당 150회, 초당 5회)가 적용됩니다.
- 모든 문서 목록을 조회하는 방식은 지양해야 합니다. 필요한 시점에 적절한 필터를 사용하시길 바랍니다.
- 추후 필터 옵션이 필수사항으로 변경될 수 있습니다.
1. 기본 호출과 페이지네이션
offset과 limit 파라미터로 원하는 범위의 목록을 불러옵니다.
curl --get 'https://api.modusign.co.kr/documents' \
-H 'Accept: application/json' \
-H 'Authorization: Basic {인코딩된 API-KEY}' \
--data-urlencode 'offset=0' \
--data-urlencode 'limit=10'| 파라미터 | 설명 | 기본값 | 범위 |
|---|---|---|---|
offset | 목록을 입력한 값만큼 건너뛰고 불러옵니다. 페이지로 이용 시, (원하는 페이지 번호 − 1)에 페이지당 아이템 갯수를 곱하여 적용할 수 있습니다. | 0 | - |
limit | 불러올 목록의 아이템 수를 지정합니다. 페이지로 이용 시, 페이지당 아이템 갯수를 입력합니다. | 10 | 1 ~ 100 |
예로 ?offset=320&limit=10 의 파라미터는 33페이지의 10개의 문서를 불러옵니다.
응답 구조
응답은 조건에 맞는 전체 개수(count)와 이번 요청으로 불러온 문서 목록(documents)으로 구성됩니다. 전체 페이지 수는 count를 limit으로 나눈 값을 올림하여 계산할 수 있습니다. (예: count가 125, limit이 10이면 13페이지)
{
"count": 125,
"documents": [
{
"id": "{문서 ID}",
"title": "2026 근로계약서_김모두",
"status": "COMPLETED",
"requester": {
"email": "[email protected]",
"name": "홍길동"
},
"createdAt": "2026-10-01T09:00:00.000Z",
"startedAt": "2026-10-01T09:01:00.000Z",
"updatedAt": "2026-10-02T10:30:00.000Z",
"file": {
"downloadUrl": "{다운로드 링크}"
},
"metadatas": [
{ "key": "teamCode", "value": "HR" }
],
"labels": [
{ "id": "{라벨 ID}", "name": "인사", "description": "인사팀 문서" }
]
}
]
}위 예시는 이해를 돕기 위해 일부 필드를 생략했습니다. 전체 필드는 문서 리스트 조회 API를 확인하세요.
| 필드 | 설명 |
|---|---|
count | 조건에 맞는 전체 문서 개수 |
documents[].id | 문서 ID. 상세 조회 등 다른 API 호출에 사용합니다. |
documents[].status | 문서 상태 (아래 표 참고) |
documents[].requester | 서명 요청자 정보 (email, name) |
documents[].participants | 참여자(서명자·열람자) 목록 |
documents[].signings | 서명·열람을 완료한 참여자 목록 (participantId, signedAt) |
documents[].file.downloadUrl | 문서 PDF 다운로드 링크 (유효시간: 10분) |
documents[].auditTrail.downloadUrl | 감사추적인증서 다운로드 링크 (유효시간: 10분) |
documents[].metadatas | 메타데이터 리스트 (순서가 보장되지 않습니다) |
documents[].labels | 라벨 리스트 (순서가 보장되지 않습니다) |
응답의 status에는 아래 값이 올 수 있습니다.
| 값 | 의미 |
|---|---|
DRAFT | 작성 중 |
SCHEDULED | 전송 예약 중 |
ON_GOING | 서명/열람 진행 중 |
MODIFYING | 수정 중 |
APPROVAL_PENDING | 결재 대기 중 |
ON_PROCESSING | 문서 처리 중 |
PROCESSING_FAILED | 문서 처리 실패 |
ABORTED | 서명/열람 중단됨 |
COMPLETED | 모든 서명/열람 완료 |
안내사항
downloadUrl은 발급 후 10분만 유효합니다. 링크를 저장해 두었다가 나중에 사용하지 말고, 파일이 필요한 시점에 다시 조회해 사용하세요.- 수정 중인 문서는 목록 검색 결과에 수정 전 원본 데이터를 기준으로 표시됩니다.
2. 조건 지정과 정렬
필요한 문서만 조회하려면 아래 파라미터를 함께 사용하세요. 각 파라미터의 구문과 예시는 해당 가이드에서 확인할 수 있습니다.
| 파라미터 | 용도 | 가이드 |
|---|---|---|
filter | 상태·제목·기간·라벨 조건으로 조회 | filter로 검색하기 |
metadatas | 서명 요청 시 등록한 메타데이터로 조회 | 메타데이터로 문서와 템플릿 분류하기 |
orderBy | 생성일·최근 활동일·제목 기준 정렬 | orderBy로 정렬하기 |
orderBy를 생략하면 최근 활동일 내림차순(updatedAt desc)으로 정렬됩니다.
3. API 호출 시 주의사항
- 필요한 문서만 조회하세요. 문서 리스트 조회 API는 High-cost API로, 분당 150회·초당 5회로 제한됩니다(무료 체험 계정에서는 분당 5회·초당 1회). 한도를 초과하면
429오류와X-Retry-After헤더(재시도까지 대기할 시간, 초)가 응답됩니다. 자세한 내용은 API Rate Limit 정책 안내를 참고하세요. - 문서 상태 변화는 Webhook으로 받는 것을 권장합니다. 서명 완료 여부를 확인하려고 목록 조회나 상세 조회를 주기적으로 반복 호출(폴링)하면 호출 한도를 빠르게 소모합니다. Webhook으로 이벤트를 받은 뒤 필요한 문서만 조회하세요.
- API KEY는 서버사이드에서만 사용하세요. 브라우저 등 클라이언트에 노출하지 마세요.
조회 범위와 권한
- 목록 조회 결과에는 API 키를 발급한 계정이 조회할 수 있는 문서만 포함됩니다. API 키는 워크스페이스가 아니라 멤버 계정 단위로 발급됩니다.
- 이 범위 밖의 문서 ID로 문서 상세 조회 등의 API를 호출하면
403 Forbidden이 응답됩니다. 다음과 같은 경우가 해당됩니다.- 다른 계정 또는 다른 워크스페이스에서 요청한 문서
- 공유받지 않은 문서
- 삭제되었거나 존재하지 않는 문서
- 문서 ID는 가능하면 목록 조회 결과나 Webhook 이벤트로 받은 값을 사용하세요.
403을 받은 문서 ID는 다시 호출해도 같은 결과가 응답됩니다. 연동 로직에서 조회 대상에서 제외하고, 반복 호출하지 마세요. 불필요한 반복 호출은 호출 한도만 소모합니다.
자주 발생하는 오류
| 응답 | 에러 메시지 | 원인 | 해결 방법 |
|---|---|---|---|
| 400 | Validation failed | 필수 파라미터 또는 데이터 타입 오류 | 파라미터 형식과 데이터 타입을 확인 |
| 401 | Unauthorized | API KEY 또는 인증 헤더 오류 | API KEY와 Authorization 헤더(Basic 또는 Bearer) 확인 |
| 403 | Forbidden | 조회 권한이 없는 문서 ID로 요청 (다른 계정의 문서, 공유받지 않은 문서, 삭제된 문서 등) | 목록 조회 결과에 해당 문서가 있는지 확인하고, 문서를 요청한 계정의 API KEY로 호출 |
| 403 | Forbidden | API를 사용할 수 없는 요금제 | 목록 조회를 포함한 모든 API가 403이면 요금제 확인 |
| 403 | Usage limit exceeded | API 사용량이 모두 소진됨 | 사용량 한도 확인 또는 플랜 업그레이드 |
| 429 | - | Rate Limit 초과 (HTTP 429 Too Many Requests) | X-Retry-After(초)만큼 대기 후 재시도, 지수 백오프 권장 |
4. 자주 묻는 질문
목록 조회는 되는데 특정 문서의 상세 조회에서 403 오류가 발생합니다.
API KEY를 발급한 계정이 해당 문서를 조회할 권한이 없을 때 발생합니다.
응답 예시:
{
"statusCode": 403,
"message": "Forbidden",
"error": "Forbidden"
}- 해당 문서가 다른 계정·워크스페이스에서 요청된 문서인지, 공유받지 않은 문서인지, 삭제된 문서인지 확인하세요.
- 같은 API KEY로 목록 조회를 했을 때 해당 문서가 결과에 나오는지 확인하세요.
- 목록 조회를 포함한 모든 API에서 403이 발생한다면 문서 권한이 아니라 요금제(API 사용 가능 여부)를 확인하세요.
웹에서는 보이는 문서가 API로는 조회되지 않습니다.
웹에 로그인한 계정과 API KEY를 발급한 계정이 다른 경우입니다. API는 API KEY를 발급한 계정 기준으로 조회되므로, 해당 문서를 조회할 수 있는 계정에서 발급한 API KEY를 사용하세요.
목록 응답의 downloadUrl을 저장해 두고 나중에 사용해도 되나요?
아니요. downloadUrl의 유효시간은 10분입니다. 파일이 필요한 시점에 다시 조회해서 사용하세요.
수정 중인 문서는 목록에 어떻게 표시되나요?
수정 중인 문서의 목록 검색 결과는 수정 전 원본 데이터를 기준으로 표시됩니다.
429 Too Many Requests 오류가 발생합니다.
요청 횟수 제한(Rate Limit)을 초과했을 때 발생합니다. 문서 리스트 조회 API는 High-cost API로 분당 150회, 초당 5회로 제한됩니다.
- 응답의
X-Retry-After헤더(초)만큼 기다린 후 재시도하세요. - 연속 호출 시 요청 사이에 간격을 두거나 지수 백오프를 적용하세요.
- 상태 변화 확인을 위한 반복 조회는 Webhook으로 대체하세요.
Updated 2 days ago
