API 요청
/rest/get_car_flooding요청 파라미터 2개 · 필수 2
type- 예시
1
value- 예시
KMHD341CBNU123456
응답 필드 10개
datadata.resultdata.msgdata.successdata.errorapiapi.successapi.costapi.msapi.pl_id차량번호 또는 차대번호로 자동차의 침수 여부를 조회합니다.
https://apick.app/rest/get_car_flooding왜 차량 침수차 여부 조회인가
겉은 멀쩡해도 속이 상한 침수차는 고장과 분쟁, 환불 요구로 돌아옵니다. 차량번호나 차대번호 하나로 침수 여부를 조회해 매물 등록 단계에서 위험 차량을 차단하세요.
조회에 성공하면 침수 이력 유무와 관계없이 한 건당 10P가 차감됩니다. 실제 차감액은 응답의 api.cost에서 확인하세요.
입력값이 잘못됐거나 조회에 실패하면 data.error로 응답하며 과금되지 않습니다(api.cost 0).
차대번호(17자리)나 차량번호 중 하나로 조회합니다. 번호판이 바뀐 차량처럼 차량을 정확히 특정해야 하면 차대번호를 쓰세요.
응답 시간은 보통 5초 이내이고 최대 30초입니다. 요청 시간 제한을 35초 이상으로 잡으세요.
인증키는 서버 환경변수에 보관하고 공개 저장소·웹페이지에 넣지 마세요.
/rest/get_car_floodingtype1valueKMHD341CBNU123456datadata.resultdata.msgdata.successdata.errorapiapi.successapi.costapi.msapi.pl_idPOST https://apick.app/rest/get_car_floodingAuthorization: Bearer — 내 계정의 API 인증키multipart/form-data차대번호로 조회하는 예입니다. 성공 시 과금되는 실제 요청입니다.
차량번호로 조회하려면 type=2, value=12가3456처럼 보냅니다. 요금은 같습니다.
상황별로 보내는 값과 응답에서 확인할 값을 모았습니다. 언어 탭에서 그대로 복사해 쓸 수 있습니다.
중고차 매물의 차대번호(17자리)를 알고 있을 때 가장 정확한 방법입니다.
/rest/get_car_floodingcurl --fail-with-body --request POST 'https://apick.app/rest/get_car_flooding' \
--header "Authorization: Bearer $APICK_API_KEY" \
--form-string 'type=1' \
--form-string 'value=KMHD341CBNU123456'const form = new FormData();
form.append("type", "1");
form.append("value", "KMHD341CBNU123456");
const response = await fetch("https://apick.app/rest/get_car_flooding", {
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);import os
import requests
parts = [
("type", (None, "1")),
("value", (None, "KMHD341CBNU123456")),
]
response = requests.request("POST", "https://apick.app/rest/get_car_flooding",
headers={"Authorization": "Bearer " + os.environ["APICK_API_KEY"]},
files=parts,
timeout=(10, 120))
response.raise_for_status()
result = response.json()
print(result)<?php
$headers = ["Authorization: Bearer " . getenv("APICK_API_KEY")];
$form = [
'type' => '1',
'value' => 'KMHD341CBNU123456',
];
$curl = curl_init('https://apick.app/rest/get_car_flooding');
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);data.result가 1이면 침수 이력이 있습니다. 0이면 없습니다. 이력 유무와 관계없이 성공하면 과금됩니다.data.msg는 안내 문구라 바뀔 수 있으니 판정에는 data.result만 씁니다.value는 그대로 조회하므로 앞뒤 공백 없이 정확히 17자로 보냅니다.번호판만 알 때 씁니다.
/rest/get_car_floodingcurl --fail-with-body --request POST 'https://apick.app/rest/get_car_flooding' \
--header "Authorization: Bearer $APICK_API_KEY" \
--form-string 'type=2' \
--form-string 'value=12가3456'const form = new FormData();
form.append("type", "2");
form.append("value", "12가3456");
const response = await fetch("https://apick.app/rest/get_car_flooding", {
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);import os
import requests
parts = [
("type", (None, "2")),
("value", (None, "12가3456")),
]
response = requests.request("POST", "https://apick.app/rest/get_car_flooding",
headers={"Authorization": "Bearer " + os.environ["APICK_API_KEY"]},
files=parts,
timeout=(10, 120))
response.raise_for_status()
result = response.json()
print(result)<?php
$headers = ["Authorization: Bearer " . getenv("APICK_API_KEY")];
$form = [
'type' => '2',
'value' => '12가3456',
];
$curl = curl_init('https://apick.app/rest/get_car_flooding');
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);data.error가 있으면 과금되지 않습니다. "필수 입력값이 없습니다."(HTTP 400)이면 입력값을 고치고, "알 수 없는 이유로 실패했습니다."(HTTP 424)이면 잠시 후 다시 요청합니다.HTTP 성공과 업무 결과를 구분하세요. 경로별 응답 필드와 예시는 위 요청과 응답에 함께 있습니다.
{
"data": {
"result": 0,
"msg": "침수사고내역이 없습니다",
"success": 1
},
"api": { "success": true, "cost": 10, "ms": 156, "pl_id": 8417706 }
}
판단은 data.result로 합니다. data.msg 문구는 바뀔 수 있으므로 문자열 비교로 판정하지 마세요. data.result가 1이면 data.msg를 함께 보여 주어 사용자가 내용을 확인하게 하세요.
0: 침수 이력 없음, 1: 침수 이력 있음.1이면 정상 조회되어 과금된 응답, 0이면 실패(과금 없음)입니다.응답을 아래 순서로 확인하세요. 결과 유무와 과금 여부는 서로 다릅니다.
data.error(사유 문구)와 data.success=0을 돌려줍니다. HTTP 상태는 사유에 따라 400·404·408·424 중 하나입니다.api.cost는 0이며 과금되지 않습니다. data.error 문구를 그대로 기록하고 사용자에게 보여 주세요.{
"data": {
"error": "입력값을 확인해 주세요.",
"success": 0
},
"api": {
"success": true,
"cost": 0,
"ms": 5
}
}아래 경우는 data.error로 응답하며 과금되지 않습니다(api.cost 0). 실패 응답은 표의 HTTP 상태 코드와 함께 옵니다. 화면에 보여 줄 안내는 본문의 data.error를 쓰세요.
type이 1·2가 아님, value가 비었음, 차대번호가 17자가 아님필수 입력값이 없습니다.type과 value를 고쳐 다시 요청합니다. 차대번호의 앞뒤 공백도 확인합니다.알 수 없는 이유로 실패했습니다.FORM_DATA_INVALIDFORM_DATA_FIELD_CONFLICTMULTIPART_LIMIT_OR_PARSE_ERROR실제 차감 금액은 응답의 api.cost로 확인하세요. 상세 요금은 요금정책에서 볼 수 있습니다.
같은 요청을 JavaScript와 Python으로 옮긴 예시입니다. 키는 환경변수 APICK_API_KEY 에서 읽습니다.