{"openapi":"3.0.3","info":{"title":"APICK URL을 Markdown·JSON으로 변환","version":"1.0.0","description":"입력한 URL의 메뉴·광고·각주를 걷어 낸 본문을 Markdown이나 구조화된 JSON으로 정리해 돌려줍니다."},"servers":[{"url":"https://apick.app"}],"paths":{"/rest/url_to_markdown":{"post":{"summary":"URL을 Markdown·JSON으로 변환","description":"입력한 URL의 메뉴·광고·각주를 걷어 낸 본문을 Markdown이나 구조화된 JSON으로 정리해 돌려줍니다.","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"서비스별 성공·처리 상태 응답","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"url":{"type":"string","description":"실제로 연 주소입니다. 입력 주소가 다른 곳으로 넘겨졌으면 그 최종 주소입니다."},"title":{"type":"string","description":"문서 제목입니다. 없으면 빈 문자열입니다."},"description":{"type":"string","description":"문서 설명(요약 메타)입니다. 없으면 빈 문자열입니다."},"markdown":{"type":"string","description":"본문을 옮긴 Markdown 입니다. format이 json이면 이 필드가 없습니다."},"json":{"type":"object","properties":{"headings":{"type":"array","items":{"type":"object","properties":{"level":{"type":"integer"},"text":{"type":"string"}}},"description":"제목 구조입니다. 각 항목에 level(1~6)과 text가 들어 있습니다."},"text":{"type":"string","description":"Markdown 표기를 뺀 평문입니다. 검색 색인에 쓰기 좋습니다."},"links":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"href":{"type":"string"}}},"description":"본문 링크 목록입니다. 같은 주소는 한 번만 담고 text·href를 담습니다."},"images":{"type":"array","items":{"type":"object","properties":{"src":{"type":"string"},"alt":{"type":"string"}}},"description":"본문 이미지 목록입니다. src와 alt를 담습니다."}}},"word_count":{"type":"integer","description":"본문 단어 수입니다. 공백 기준으로 셉니다."},"markdown_chars":{"type":"integer","description":"Markdown 본문 글자 수입니다."},"truncated":{"type":"boolean","description":"본문이 max_chars를 넘어 잘렸으면 true입니다."},"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/article"},"format":{"type":"string","description":"markdown · json · both(기본) 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다. (string)","example":"both"},"max_chars":{"type":"string","description":"본문 최대 글자 수 (기본 100000) 숫자로 보내며, 허용 범위를 벗어나면 요청이 거부됩니다. (integer)"}},"required":["url"]}}}}}}},"x-code-tables":[{"title":"오류 응답","columns":["HTTP","data.error","원인·조치"],"rows":[["400","URL 형식이 올바르지 않습니다.","주소가 없거나 주소 형태가 아닙니다. http·https로 시작하는 전체 주소를 보내세요."],["400","http 또는 https로 시작하는 주소만 사용할 수 있습니다.","다른 방식의 주소는 페이지를 열 수 없습니다."],["400","이 호스트로는 요청할 수 없습니다.","내부망·루프백 주소입니다. 외부에 공개된 주소만 사용할 수 있습니다."],["400","format 은 markdown·json·both 중 하나여야 합니다.","지원하지 않는 형식입니다. 셋 중 하나로 보내세요."],["424","본문을 찾지 못했습니다. 다른 주소로 시도해 주세요.","페이지에 읽을 본문이 없습니다(이미지·스크립트만 있는 화면 등)."],["424","페이지를 열지 못했습니다. 주소와 접속 가능 여부를 확인해 주세요.","접속 실패·시간 초과입니다. 잠시 후 다시 시도하세요."]]}],"x-service-errors":[],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}