건설 문서용 OCR이 작동하지 않아, 수정했습니다
Source: Hacker News
엔드포인트
POST /v1/drawings/detection/doors
건축 평면도 PDF에서 문을 감지합니다.
이전에 업로드된 document_id를 받아 추론을 큐에 넣고, 결과를 폴링할 수 있는 작업(job)을 반환합니다. 감지는 PDF 좌표 공간의 경계 상자(bounding box) 형태로 반환됩니다.
Floor plans – Async · 2022 credits / page


요청
X-API-Key 헤더를 통한 인증.
본문은 JSON이며, 이 엔드포인트는 파일 업로드를 직접 받지 않습니다.
매개변수
| 이름 | 타입 | 설명 |
|---|---|---|
document_id (required) | string (UUID) | 업로드된 PDF의 ID. 해당 계정에 속하고 만료되지 않아야 합니다. |
page_numbers | int[] | 스캔할 1‑기반 페이지 인덱스. 생략하면 모든 페이지를 스캔합니다. 범위를 벗어난 값은 워커에 의해 건너뛰어지지만 여전히 청구됩니다. |
webhook_url | string | 완료된 작업 페이로드를 POST할 URL. 개발자, 프로, 엔터프라이즈 티어에서만 사용할 수 있습니다. |
Note: 크레딧은
len(page_numbers)(생략 시 문서 전체 페이지 수)를 기준으로 제출 시 청구됩니다 — 실제로 문이 있는 페이지에 대해서만이 아니라. 과다 청구를 방지하려면 유효한 페이지 인덱스만 전송하십시오.
코드 예시
curl -X POST https://api.anchorgrid.ai/v1/drawings/detection/doors \
-H "X-API-Key: " \
-H "Content-Type: application/json" \
-d '{
"document_id": "550e8400-e29b-41d4-a716-446655440000",
"page_numbers": [1, 2, 3]
}'
응답 — 202 Accepted
작업이 즉시 대기열에 추가됩니다. status가 complete 또는 failed가 될 때까지 GET /v1/jobs/{job_id}를 폴링하십시오.
필드
| 이름 | 형식 | 설명 |
|---|---|---|
job_id | string (UUID) | 결과를 조회하기 위해 사용합니다. |
status | string | 이 응답에서는 항상 "queued"입니다. |
poll_url | string | 경로만 포함 — 전체 URL을 만들려면 https://api.anchorgrid.ai를 앞에 붙이세요. |
결과 형태
status === "complete"이고 model === "door-detector"인 경우, 작업의 result 필드에는 다음과 같은 내용이 포함됩니다:
필드
| Name | Type | Description |
|---|---|---|
document_id | string (UUID) | 원본 문서의 UUID. |
doors | array | 필터링된 문 감지 목록. 각 항목은 id, page, bbox를 가집니다. |
doors[].id | string | 안정적인 식별자 — "door_" + 12 hex chars. |
doors[].page | integer | 문이 감지된 PDF 페이지 인덱스(1부터 시작). |
doors[].bbox | object | PDF 좌표 공간에서 축에 정렬된 경계 상자: x1, y1, x2, y2. |
doors_found | integer | 서버 측 기하학 필터링 후 doors에 있는 항목 수. |
pages_analyzed | integer | 워커가 실제로 스캔한 페이지 수. |
model_version | string | 예: door-detector-v1.0.0. |
processing_time_ms | integer | 추론 작업의 실제 경과 시간(밀리초). |
Info: 문 목록은 반환되기 전에 기하학 및 중간 면적 파이프라인을 통해 후처리됩니다.
doors_found는 항상 필터링된 개수를 나타내며, 원시(필터링되지 않은) 개수는 노출되지 않습니다.
크레딧 및 속도 제한
비용
- 2 credits × pages billed
속도 제한
| Tier | RPM (requests per minute) |
|---|---|
| free | 5 |
| developer / pro | 60 |
| enterprise | 120 (or 300 depending on plan) |
- Free tier: 평생 크레딧 한도 — 초과 시
402 FREE_TIER_LIMIT_REACHED반환. - Developer / Pro: 월간 풀 — 초과 시
429 QUOTA_EXCEEDED반환. - Enterprise: 할당량 검사가 없음.
속도 제한 429 응답에는 본문에 retry_after_seconds가 포함됩니다. 할당량 초과와 속도 제한 오류 모두 상태 코드 429를 사용합니다; 구분하려면 오류 본문을 확인하세요.
오류
| 코드 | 설명 |
|---|---|
401 | 누락되었거나 잘못된 X-API-Key. |
402 | 무료 티어 평생 크레딧 한도에 도달했습니다. |
404 | document_id를 찾을 수 없거나 만료되었습니다. |
422 | 검증 오류 — 형식이 잘못된 UUID 또는 잘못된 본문. |
429 | 속도 제한 또는 월 할당량 초과. |
{
"job_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "queued",
"poll_url": "/v1/jobs/7c9e6679-7425-40de-944b-e07fc1f90ae7"
}