{"openapi":"3.0.3","info":{"title":"APICK 웹페이지 캡처+텍스트 좌표","version":"1.0.0","description":"입력한 URL의 전체 화면 캡처 이미지와, 화면에 보이는 제목·문단·목록·표의 글자와 좌표를 함께 돌려줍니다."},"servers":[{"url":"https://apick.app"}],"paths":{"/rest/web_capture_extract":{"post":{"summary":"웹페이지 캡처+텍스트 좌표","description":"입력한 URL의 전체 화면 캡처 이미지와, 화면에 보이는 제목·문단·목록·표의 글자와 좌표를 함께 돌려줍니다.","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"서비스별 성공·처리 상태 응답","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"page":{"type":"object","properties":{"url":{"type":"string"},"title":{"type":"string"},"viewport":{"type":"object","properties":{"width":{"type":"integer"},"height":{"type":"integer"}}},"document_size":{"type":"object","properties":{"width":{"type":"integer"},"height":{"type":"integer"}}}},"description":"연 페이지 정보입니다. url, title, viewport(창 너비·높이), document_size(문서 전체 너비·높이)가 들어 있습니다."},"blocks":{"type":"array","items":{"type":"object","properties":{"tag":{"type":"string"},"text":{"type":"string"},"x":{"type":"integer"},"y":{"type":"integer"},"width":{"type":"integer"},"height":{"type":"integer"}}},"description":"화면에 보이는 글자 블록입니다. 각 항목에 tag(h1·p·li·td 등), text, x, y, width, height가 들어 있습니다."},"block_count":{"type":"integer","description":"돌려준 글자 블록 수입니다."},"truncated":{"type":"boolean","description":"글자 블록이 200개를 넘어 잘렸으면 true입니다."},"image_base64":{"type":"string","description":"JPEG 이미지를 base64로 담은 값입니다. 2MB를 넘으면 null이고 warnings에 안내가 들어갑니다.","nullable":true},"image_bytes":{"type":"integer","description":"이미지 크기(바이트)입니다. 이미지를 싣지 않았으면 0입니다."},"image_format":{"type":"string","description":"이미지 형식입니다. 항상 jpeg입니다."},"full_page":{"type":"boolean","description":"전체 페이지를 담았으면 true입니다. 크기 때문에 화면에 보이는 영역만 담으면 false입니다."},"warnings":{"type":"array","items":{},"description":"이미지를 싣지 못한 이유 같은 안내 문구입니다. 없으면 빈 배열입니다."},"success":{"type":"integer"},"error":{"type":"string","description":"실패 사유 문구입니다. 정상 응답에는 없습니다."}},"description":"캡처 결과 묶음입니다. 실패하면 아래 필드 대신 error 문구가 들어 있습니다."},"api":{"type":"object","properties":{"success":{"type":"boolean"},"cost":{"type":"integer","description":"이번 호출에서 차감된 포인트입니다. data.error가 있는 실패 응답은 0입니다."},"ms":{"type":"integer","description":"요청을 받아 응답을 만들기까지 걸린 시간(밀리초)입니다."},"pl_id":{"type":"integer"}},"description":"호출 공통 정보입니다. 처리 여부·차감 포인트·처리 시간·차감 기록 번호가 들어 있습니다."}}}}}},"default":{"description":"HTTP 상태 및 서비스 오류코드 확인","content":{"application/json":{"schema":{"type":"object"}}}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"조회할 대상의 URL입니다. http·https를 포함한 전체 주소를 보내며, 서비스에 따라 영상 ID만 받을 수도 있습니다. (string)","example":"https://example.com"}},"required":["url"]}}}}}}},"x-code-tables":[{"title":"오류 응답","columns":["HTTP","data.error","원인·조치"],"rows":[["400","URL 형식이 올바르지 않습니다.","주소가 없거나 주소 형태가 아닙니다. http·https로 시작하는 전체 주소를 보내세요."],["400","이 호스트로는 요청할 수 없습니다.","내부망·루프백 주소입니다. 외부에 공개된 주소만 사용할 수 있습니다."],["424","페이지를 캡처하지 못했습니다. 주소와 접속 가능 여부를 확인해 주세요.","접속 실패·시간 초과입니다. 잠시 후 다시 시도하세요."]]}],"x-service-errors":[],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}