# 특허·실용신안 검색



키워드로 특허·실용신안 공개·등록공보를 검색합니다. 특허와 실용신안을 각각 포함할지 정할 수 있어, 하나만 보고 싶을 때 결과를 좁힐 수 있습니다.



인증: Authorization: Bearer $APICK_API_KEY

본문 있는 REST 요청: multipart/form-data. GET 본문 및 MCP JSON-RPC 규격은 해당 명세를 따릅니다.

인증키는 서버에 보관하세요. 모든 예제는 정적 자료입니다.



## POST /rest/kipris_patent 응답 필드

- `data` (object): 아래 하위 항목을 확인하세요.

- `data.items` (array): 아래 하위 항목을 확인하세요.

- `data.totalCount` (integer): 아래 하위 항목을 확인하세요.

- `data.pageNo` (integer): 아래 하위 항목을 확인하세요.

- `data.numOfRows` (integer): 아래 하위 항목을 확인하세요.

- `api` (object): 아래 하위 항목을 확인하세요.

- `api.cost` (integer): 아래 하위 항목을 확인하세요.

- `api.success` (boolean): 아래 하위 항목을 확인하세요.

- `api.ms` (integer): 아래 하위 항목을 확인하세요.

## API 요청: POST /rest/kipris_patent



### 입력

- `word` (string, 필수): 검색어 (최대 100자)

- `patent` (boolean, 선택): 특허 포함 여부 (기본 true)

- `utility` (boolean, 선택): 실용신안 포함 여부 (기본 true)

- `year` (string, 선택): 연도 필터 (YYYY)

- `pageNo` (integer, 선택): 페이지 번호 (기본 1)

- `numOfRows` (integer, 선택): 페이지당 결과 수 (기본 10, 최대 500)



### 응답 명세

```json

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {}
        },
        "totalCount": {
          "type": "integer"
        },
        "pageNo": {
          "type": "integer"
        },
        "numOfRows": {
          "type": "integer"
        }
      }
    },
    "api": {
      "type": "object",
      "properties": {
        "cost": {
          "type": "integer"
        },
        "success": {
          "type": "boolean"
        },
        "ms": {
          "type": "integer"
        }
      }
    }
  }
}

```

### 정적 응답 예시

```json

{
  "data": {
    "items": [],
    "totalCount": 0,
    "pageNo": 1,
    "numOfRows": 20
  },
  "api": {
    "cost": 100,
    "success": true,
    "ms": 520
  }
}

```

### curl

```curl

curl --fail-with-body --request POST 'https://apick.app/rest/kipris_patent' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'word=이차전지' \
  --form-string 'utility=false' \
  --form-string 'numOfRows=20'

```

### Node.js (서버 ESM)

```javascript

const form = new FormData();
form.append("word", "이차전지");
form.append("utility", "false");
form.append("numOfRows", "20");
const response = await fetch("https://apick.app/rest/kipris_patent", {
  method: "POST",
  headers: { Authorization: "Bearer " + process.env.APICK_API_KEY },
  body: form,
  signal: AbortSignal.timeout(120_000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const result = await response.json();
console.log(result);

```

### python

```python

import os
import requests
parts = [
    ("word", (None, "이차전지")),
    ("utility", (None, "false")),
    ("numOfRows", (None, "20")),
]
response = requests.request("POST", "https://apick.app/rest/kipris_patent",
    headers={"Authorization": "Bearer " + os.environ["APICK_API_KEY"]},
    files=parts,
    timeout=(10, 120))
response.raise_for_status()
result = response.json()
print(result)

```

### php

```php

<?php
$headers = ["Authorization: Bearer " . getenv("APICK_API_KEY")];
$form = [
    'word' => '이차전지',
    'utility' => 'false',
    'numOfRows' => '20',
];
$curl = curl_init('https://apick.app/rest/kipris_patent');
curl_setopt_array($curl, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_POSTFIELDS => $form,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_TIMEOUT => 120,
]);
$body = curl_exec($curl);
if ($body === false) { throw new RuntimeException(curl_error($curl)); }
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($status >= 400) { throw new RuntimeException($body); }
$result = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
print_r($result);

```

## 코드·오류

## 상세 기능·요금

이용 전 확인 성공한 조회 한 건당 100P가 차감됩니다. 검색 결과가 0건이어도 조회가 성공하면 같은 요금이 적용됩니다. 실제 차감액은 응답의 api.cost에서 확인하세요. 검색어는 최대 100자입니다. 연도를 지정하면 그 해 공보로 좁혀집니다. 인증키는 서버 환경변수에 보관하고 공개 저장소·웹페이지에 넣지 마세요.

## 상세 요청

항목설정 메서드·주소POST https://apick.app/rest/kipris_patent 인증 헤더Authorization: Bearer — 내 계정의 API 인증키 본문 형식multipart/form-data 필수 항목word — 검색어(최대 100자) 선택 항목patent 특허 포함(기본 true), utility 실용신안 포함(기본 true), year 연도 필터(YYYY), pageNo 페이지(기본 1), numOfRows 결과 수(기본 10, 최대 500) 요청 예시 키워드로 특허·실용신안을 함께 검색하는 예입니다. 성공 시 과금되는 실제 요청입니다. form-data 전체 예제 보기

## 상세 코드·정책

응답과 오류 복구 필드타입설명 data.items[]array특허·실용신안 항목입니다. 출원번호·발명의 명칭·출원인·공개일 등 항목 이름은 원문 표기를 그대로 씁니다. data.totalCountinteger검색 조건에 맞는 전체 건수입니다. data.pageNointeger이번 응답의 페이지 번호입니다. data.numOfRowsinteger이번 응답의 항목 수입니다. api.costinteger차감된 포인트입니다. 실패한 응답은 0입니다. api.msinteger처리 시간(밀리초)입니다. { "data": { "items": [], "totalCount": 0, "pageNo": 1, "numOfRows": 20 }, "api": { "cost": 100, "success": true, "ms": 520 } } 검색어가 비었거나 100자를 넘거나 연도 형식이 맞지 않으면 조회 전에 data.error로 실패합니다. 지식재산 정보를 가져오지 못하면 공개 안내 문구가 오고 api.cost는 0입니다. 결과가 많을 때는 pageNo로 나눠 받으세요.
