# 공시가격 조회



필지고유번호(PNU)와 기준연도로 공시가격을 조회합니다. 공동주택·개별주택·개별공시지가를 유형으로 고를 수 있어 토지와 주택을 함께 다룰 수 있습니다.



인증: Authorization: Bearer $APICK_API_KEY

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

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



## POST /rest/public_price 응답 필드

- `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/public_price



### 입력

- `pnu` (string, 필수): 필지고유번호 (19자리)

- `stdrYear` (string, 필수): 공시 기준연도 (YYYY)

- `priceType` (string, 선택): 공시가격 유형 (기본 apart) 허용값: apart, indvdHouse, indvdLand

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

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



### 응답 명세

```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": 10
  },
  "api": {
    "cost": 60,
    "success": true,
    "ms": 360
  }
}

```

### curl

```curl

curl --fail-with-body --request POST 'https://apick.app/rest/public_price' \
  --header "Authorization: Bearer $APICK_API_KEY" \
  --form-string 'pnu=1168010100108080000' \
  --form-string 'stdrYear=2025' \
  --form-string 'priceType=apart'

```

### Node.js (서버 ESM)

```javascript

const form = new FormData();
form.append("pnu", "1168010100108080000");
form.append("stdrYear", "2025");
form.append("priceType", "apart");
const response = await fetch("https://apick.app/rest/public_price", {
  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 = [
    ("pnu", (None, "1168010100108080000")),
    ("stdrYear", (None, "2025")),
    ("priceType", (None, "apart")),
]
response = requests.request("POST", "https://apick.app/rest/public_price",
    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 = [
    'pnu' => '1168010100108080000',
    'stdrYear' => '2025',
    'priceType' => 'apart',
];
$curl = curl_init('https://apick.app/rest/public_price');
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);

```

## 코드·오류

## 상세 기능·요금

이용 전 확인 성공한 조회 한 건당 60P가 차감됩니다. 해당 연도 공시가 아직 없으면 결과가 0건일 수 있으며, 그래도 조회가 성공하면 같은 요금이 적용됩니다. PNU는 19자리 필지고유번호입니다. 주소만 있을 때는 먼저 주소·좌표 조회로 pnu를 확인하세요. 인증키는 서버 환경변수에 보관하고 공개 저장소·웹페이지에 넣지 마세요.

## 상세 요청

항목설정 메서드·주소POST https://apick.app/rest/public_price 인증 헤더Authorization: Bearer — 내 계정의 API 인증키 본문 형식multipart/form-data 필수 항목pnu 필지고유번호 19자리, stdrYear 공시 기준연도 YYYY 선택 항목priceType 유형(apart 공동주택·indvdHouse 개별주택·indvdLand 개별공시지가, 기본 apart), pageNo 페이지(기본 1), numOfRows 결과 수(기본 10, 최대 1000) 요청 예시 PNU로 공동주택 공시가격을 받는 예입니다. 성공 시 과금되는 실제 요청입니다. form-data 전체 예제 보기

## 상세 코드·정책

응답과 오류 복구 필드타입설명 data.items[]array공시가격 항목입니다. 공시가격·기준연도·공시일·소재지 등 항목 이름은 원문 표기를 그대로 씁니다. data.totalCountinteger조건에 맞는 전체 건수입니다. data.pageNointeger이번 응답의 페이지 번호입니다. data.numOfRowsinteger이번 응답의 항목 수입니다. api.costinteger차감된 포인트입니다. 실패한 응답은 0입니다. api.msinteger처리 시간(밀리초)입니다. { "data": { "items": [], "totalCount": 0, "pageNo": 1, "numOfRows": 10 }, "api": { "cost": 60, "success": true, "ms": 360 } } PNU가 19자리가 아니거나 기준연도가 4자리가 아니거나 유형 값이 잘못되면 조회 전에 data.error로 실패합니다. 공시가격 정보를 가져오지 못하면 공개 안내 문구가 오고 api.cost는 0입니다. 주택과 토지 공시가는 서로 다른 유형이므로 둘 다 필요하면 유형을 바꿔 각각 조회하세요.
