Search API
자연어 문장으로 특허를 검색할 수 있는 시맨틱 검색 엔진입니다. 한·미·일·중·유럽 5개국 특허를 한 번에 검색합니다.
검색 가이드
LLM 자연어 검색 방법과 파라미터를 활용한 세부 검색 조합 가이드는 좌측 메뉴의 검색 가이드를 참고하세요.
인증
공개 통계·헬스 체크를 제외한 모든 엔드포인트는 X-API-Key 헤더가 필요합니다. 자세한 내용은 인증을 참고하세요.
POST /api/v1/search/semantic
자연어로 특허를 검색합니다. 쿼리를 벡터로 임베딩한 뒤 k-NN 으로 매칭하고 리랭킹합니다. 다국어 질의를 지원합니다. (한국어, 영어, 일본어, 중국어)
요청 파라미터 (Request Parameters)
| 파라미터 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
query | string | 예 | — | 자연어 검색 질의 (문장형) |
top_k | integer | 아니오 | 10 | 반환할 결과 개수 (1–100 권장) |
countries | string[] | 아니오 | 5개국 전체 | ["KR","US","CN","JP","EP"] 의 부분집합 |
doc_type | enum | 아니오 | "all" | "all" (공개+등록, 중복 제거) / "application" / "grant" |
kind_codes | string[] | 아니오 | null | 특정 kind code (예: ["B1","B2"]). doc_type 보다 우선 |
include_utility_model | boolean | 아니오 | false | 실용신안 포함 여부 |
filing_date_from / _to | string | 아니오 | null | 출원일 범위 (YYYY-MM-DD) |
publication_date_from / _to | string | 아니오 | null | 공개일 범위 |
grant_date_from / _to | string | 아니오 | null | 등록일 범위 (등록공보만 매칭됨) |
priority_date_from / _to | string | 아니오 | null | 우선일 범위 |
applicant | string | 아니오 | null | 출원인 검색어. 대소문자 무시, 각국 원어 입력 가능 |
applicant_match | enum | 아니오 | "contains" | "contains" / "prefix" / "exact" |
inventor | string | 아니오 | null | 발명자 검색어 (prefix 매칭) |
ipc_codes | string[] | 아니오 | null | IPC 코드 prefix (예: ["H01M10"]) |
cpc_codes | string[] | 아니오 | null | CPC 코드 prefix |
publication_number | string | 아니오 | null | 공개번호 정확 매칭 (KIPRIS 형식) |
application_number | string | 아니오 | null | 출원번호 정확 매칭 |
family_id | string | 아니오 | null | 패밀리 ID 정확 매칭 |
출원인 매칭
출원인 입력은 대소문자를 구분하지 않으며 각국 원어 입력을 지원합니다 ("삼성전자", "华为", "ソニー", "APPLE"). 단, 한 번의 입력으로 5개국 모든 언어 표기를 자동 확장하지는 않습니다 — 국가별 커버리지가 필요하면 영문과 자국어를 각각 조회하세요.
요청 예시 (Request Example)
curl -X POST https://api.findip.ai/api/v1/search/semantic \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "전고체 배터리에서 리튬 수지상 성장을 억제하는 고체 전해질 기술",
"top_k": 20,
"countries": ["KR", "US", "JP"],
"doc_type": "application",
"applicant": "SAMSUNG",
"applicant_match": "prefix",
"filing_date_from": "2022-01-01",
"filing_date_to": "2024-12-31",
"ipc_codes": ["H01M10"]
}'응답 (Response)
응답은 total (= results.length) 과 결과 배열을 반환합니다.
{
"total": 20,
"results": [
{
"patent_id": "KR1020230012345A",
"title": "고체 전해질을 포함하는 이차전지",
"applicant": "SAMSUNG SDI CO., LTD.",
"filing_date": "2023-02-10",
"publication_date": "2024-08-15",
"ipc_codes": ["H01M10/0525", "H01M4/62"],
"kind_code": "A",
"country": "KR",
"similarity_score": 0.8712,
"rerank_score": 0.9345,
"representative_figure": "fig_0001.webp",
"chunks": [
{
"text": "본 발명은 리튬 수지상 성장을 억제하기 위한 고체 전해질을 제공한다 ...",
"chunk_type": "description",
"section_name": "상세설명_3",
"paragraph_numbers": [42, 43],
"claim_numbers": [],
"similarity_score": 0.8712,
"rerank_score": 0.9345
}
]
}
]
}결과 항목 필드 — patent_id (공개번호, KIPRIS 형식), title, applicant, filing_date, publication_date, ipc_codes, kind_code, country, similarity_score (0–1, 클수록 유사), rerank_score (BGE 리랭커 — 절대값보다 정렬 순위로 활용), representative_figure (파일명만 — 아래 도면 참고), chunks (매칭 청크, rerank_score 내림차순 정렬).
POST /api/v1/search/semantic-analytics
동일한 벡터 검색을 수행하되 통계 집계 + 페이지네이션 결과를 함께 반환합니다. 대시보드·분석 UI 에 적합합니다. /semantic 의 모든 필터 필드를 지원하며, 개별 날짜 필드 대신 date_range + date_type 를 사용합니다.
요청 파라미터 (/semantic 과 차이나는 부분)
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
min_score | float | 0.5 | 유사도 임계값 (best_score >= min_score) |
max_results | integer | 10000 | 통계 대상 최대 문서 수 |
date_range | object | null | {"from": "YYYY-MM-DD", "to": "YYYY-MM-DD"} |
date_type | enum | "filing" | "filing" / "publication" / "grant" / "priority" |
stats_group_by | string[] | ["year","country"] | 집계 축: "year", "country", "applicant", "ipc" |
page | integer | 1 | 1부터 시작하는 페이지 번호 |
page_size | integer | 20 | 페이지 크기 (1–100) |
요청 예시 (Request Example)
curl -X POST https://api.findip.ai/api/v1/search/semantic-analytics \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "5G 빔포밍 안테나 배열",
"min_score": 0.6,
"max_results": 5000,
"countries": ["KR", "US"],
"date_range": {"from": "2020-01-01", "to": "2024-12-31"},
"date_type": "filing",
"stats_group_by": ["year", "country", "applicant", "ipc"],
"page": 1,
"page_size": 20
}'응답 (Response)
{
"query": "5G 빔포밍 안테나 배열",
"total_matched": 412,
"min_score_used": 0.6,
"page": 1,
"page_size": 20,
"total_pages": 21,
"stats": {
"by_year": { "2020": 142, "2021": 180 },
"by_country": { "KR": 230, "US": 182 },
"top_applicants": [{ "name": "SAMSUNG ELECTRONICS CO., LTD.", "count": 58 }],
"top_ipc": [{ "code": "H01Q", "count": 96 }]
},
"results": [
{
"patent_id": "KR1020210099999A",
"title": "5G 기지국용 빔포밍 안테나 배열",
"applicant": "SAMSUNG ELECTRONICS CO., LTD.",
"country": "KR",
"kind_code": "A",
"filing_date": "2021-03-04",
"publication_date": "2022-09-10",
"ipc_codes": ["H01Q3/26"],
"similarity_score": 0.7321,
"chunk_text": "적응형 빔포밍을 위한 안테나 배열 ..."
}
]
}stats 객체는 요청한 stats_group_by 축에 따라 by_year, by_country, top_applicants (최대 20개), top_ipc (최대 20개) 를 포함합니다.
POST /api/v1/patents/details
하나 이상의 특허에 대한 전체 상세 정보 (마크다운 본문 + 메타데이터) 를 조회합니다. 도면은 마크다운 본문 안에 참조되어 있으므로 아래 도면 규칙으로 이미지 URL 을 조립하세요.
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
patent_ids | string[] | 예 | 공개번호 1–200건 (KIPRIS 형식) |
sections | string | 아니오 | title,abstract,claims,description 중 콤마 분리 선택. 생략 시 전체 마크다운 |
요청 예시 (Request Example)
curl -X POST https://api.findip.ai/api/v1/patents/details \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"patent_ids": ["KR1020230012345A", "US20230123456A1"],
"sections": "title,abstract,claims"
}'응답 (Response)
{
"patents": [
{
"patent_id": "KR1020230012345A",
"metadata": {
"title": "고체 전해질을 포함하는 이차전지",
"applicant": "SAMSUNG SDI CO., LTD.",
"filing_date": "2023-02-10",
"publication_date": "2024-08-15",
"ipc_codes": ["H01M10/0525"],
"kind_code": "A",
"country": "KR"
},
"content": "# Title\n\n## Abstract\n\n...",
"representative_figure": "fig_0001.webp"
},
{
"patent_id": "US99999999B2",
"error": "not_found"
}
]
}각 항목은 요청한 ID 별로 반환됩니다. 특허를 찾을 수 없는 경우 해당 항목은 메타데이터 대신 {"patent_id": "...", "error": "not_found"} 를 담으며, 전체 응답은 여전히 200 OK 입니다.
GET /api/v1/drawings/{publication_id}/{filename}
특허 도면 이미지를 가져옵니다. 인증이 필요하지 않습니다. 서버는 단기 유효 presigned URL 로 302 redirect 를 반환하며, 브라우저와 fetch 가 이를 자동으로 따라가므로 <img src="..."> 에 그대로 사용할 수 있습니다.
검색·상세 응답의 representative_figure 필드는 파일명만 반환합니다. 다음과 같이 이미지 URL 을 조립하세요.
patent_id = "KR1020240116067A" representative_figure = "pat00012.webp" → https://api.findip.ai/api/v1/drawings/KR1020240116067A/pat00012.webp
허용 확장자: .webp, .jpg, .jpeg, .png (그 외는 400). presigned URL 은 매 요청마다 변경되므로 프런트엔드에서 patent_id/filename 키로 캐싱하는 것을 권장합니다.
GET /api/v1/stats/coverage
공개 커버리지 통계 (국가별 특허 수, 날짜 범위 등) 를 반환합니다. 인증이 필요하지 않습니다. 1시간 캐시되며, 커버리지 문서를 사용할 수 없으면 503 을 반환합니다.