개요
| 항목 | 값 |
|---|---|
| Base URL | https://external-api.oasis-arca.com |
| 프로토콜 | HTTPS (TLS 1.2 이상) |
| 형식 | 요청 쿼리 파라미터 / 응답 application/json (UTF-8) |
| 메서드 | 전 엔드포인트 GET (조회 전용) |
| 시각 표현 | ISO-8601. lastHeartbeat 등 instant 필드는 UTC(Z) 표기, zone 없는 local date-time 은 KST(Asia/Seoul) 기준 |
빠른 시작
curl "https://external-api.oasis-arca.com/api/v1/ext/stations" \
-H "x-api-key: <발급받은 API 키>"응답의 null 값 필드는 생략될 수 있습니다. 파서는 필드 부재를 허용하도록 구현하십시오.
목록 API(stations · chargers · transactions)는 공통으로 page(0-base, 기본 0) / size(기본 50, 최대 200) 페이지네이션을 지원하며, 응답에 items와 함께 page/size/totalElements/totalPages 메타가 포함됩니다.
인증 (API 키)
모든 요청에 발급받은 API 키를 x-api-key 헤더로 전달합니다. 키는 CPO(사업자) 단위로 CSMS 운영팀이 발급합니다.
x-api-key: <발급받은 API 키>- 키 누락·무효 →
403(게이트웨이 단) - 운영팀에서 차단된 키 →
403(백엔드 단) - 다른 CPO 소유 자원은 목록에서 제외되고, 상세 조회 시
404로 응답합니다.
사용량 제한
| 항목 | 기본 플랜 |
|---|---|
| 초당 요청 수 | 10 rps (burst 20) |
| 일일 쿼터 | 100,000 요청/일 |
| 초과 시 | 429 Too Many Requests — 재시도 시 지수 백오프 권장 |
플랜 상향이 필요하면 운영팀에 문의하십시오.
오류 응답
오류는 발생 지점에 따라 두 가지 형태로 반환됩니다.
게이트웨이 단 (키 검증·사용량 제한)
{ "message": "Forbidden" }백엔드 단 (파라미터·대상 검증)
{ "error": "조회 기간은 최대 92일까지 가능합니다." }| 상태 코드 | 발생 지점 | 의미 |
|---|---|---|
400 | 백엔드 | 잘못된 파라미터 (기간 92일 초과, size 범위 초과 등) |
403 | 게이트웨이 | API 키 누락 · 무효 |
403 | 백엔드 | 차단(비활성)된 키 |
404 | 백엔드 | 대상 없음 (다른 CPO 소유 자원 포함) |
429 | 게이트웨이 | 사용량 제한 초과 |
5xx | - | 서버 오류 — 지수 백오프 후 재시도 |
변경 정책
- URL은
/api/v1/ext/로 고정됩니다. - 하위 호환을 깨지 않는 변경(응답 필드 추가, enum 값 추가 등)은 예고 없이 이루어질 수 있습니다. 파서는 알 수 없는 필드·enum 값을 무시하도록 구현하십시오.
- 호환이 깨지는 변경이 필요한 경우 별도 공지 후 진행합니다.
충전소 목록
/api/v1/ext/stations키에 매핑된 CPO가 소유한 충전소 목록을 이름 오름차순으로 반환합니다 (페이지네이션).
쿼리 파라미터
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
page | number | 0 | 0부터 시작하는 페이지 번호 |
size | number | 50 | 페이지 크기 (최대 200) |
요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/stations?page=0&size=50" -H "x-api-key: <API 키>"응답 200
{
"items": [
{
"id": 103,
"sid": "100001",
"name": "OO빌딩 충전소",
"address": "경기 과천시 과천대로7나길 60",
"detailAddress": "C동 505호",
"postalCode": "13840",
"latitude": 37.432265,
"longitude": 126.994741,
"createdAt": "2026-06-15T05:16:07.760511"
}
],
"page": 0,
"size": 50,
"totalElements": 1,
"totalPages": 1
}| 필드 | 타입 | 설명 |
|---|---|---|
id | number | 충전소 ID |
sid | string? | 환경부 충전소 ID(SID) — CPO별 6자리 |
name | string | 충전소명 |
address | string | 주소 |
detailAddress | string? | 상세 주소 |
postalCode | string? | 우편번호 |
latitude / longitude | number | 위도 / 경도 (WGS84) |
createdAt | string | 등록 시각 (ISO-8601, KST(Asia/Seoul) 기준 local date-time) |
충전소 상세 (소속 충전기 포함)
/api/v1/ext/stations/{stationId}충전소 단건을 조회합니다. 목록 항목의 필드에 더해 해당 충전소 소속 충전기 목록(chargers, ID 오름차순)이 포함되며, 각 충전기의 스키마는 충전기 목록·상태의 항목과 동일합니다(커넥터 상태 포함). 존재하지 않거나 다른 CPO 소유인 경우 404.
요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/stations/103" -H "x-api-key: <API 키>"응답 200
{
"id": 103,
"sid": "100001",
"name": "OO빌딩 충전소",
"address": "경기 과천시 과천대로7나길 60",
"detailAddress": "C동 505호",
"postalCode": "13840",
"latitude": 37.432265,
"longitude": 126.994741,
"createdAt": "2026-06-15T05:16:07.760511",
"chargers": [
{
"id": 3004,
"stationId": 103,
"identity": "CP-0001",
"maxPowerKw": 7,
"manufacturer": "바이온에버",
"modelName": "BSS007K-V11-J",
"online": true,
"status": "Available",
"operative": true,
"ocppVersion": "1.6",
"currentFirmwareVersion": "A00.00.01",
"lastHeartbeat": "2026-07-10T06:00:53.706155Z",
"kepcoContract": {
"voltageType": "LOW",
"planOption": "OPTION_1",
"demandChargeEnabled": false,
"contractDemandKw": 150.00
},
"connectors": [
{ "connectorId": 1, "status": "Charging", "operative": true, "connectorType": "CCS1", "lastStatusTime": "2026-07-10T06:02:55.678207Z" }
]
}
]
}충전기 목록·상태
/api/v1/ext/chargersCPO 소유 충전기 목록을 ID 오름차순으로 반환합니다 (페이지네이션). 각 충전기에 커넥터별 실시간 상태가 포함됩니다.
쿼리 파라미터
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
page | number | 0 | 0부터 시작하는 페이지 번호 |
size | number | 50 | 페이지 크기 (최대 200) |
요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/chargers?page=0&size=50" -H "x-api-key: <API 키>"응답 200
{
"items": [
{
"id": 3004,
"stationId": 103,
"identity": "CP-0001",
"maxPowerKw": 7,
"manufacturer": "바이온에버",
"modelName": "BSS007K-V11-J",
"online": true,
"status": "Available",
"operative": true,
"ocppVersion": "1.6",
"currentFirmwareVersion": "A00.00.01",
"lastHeartbeat": "2026-07-10T06:00:53.706155Z",
"kepcoContract": {
"voltageType": "LOW",
"planOption": "OPTION_1",
"demandChargeEnabled": false,
"contractDemandKw": 150.00
},
"connectors": [
{ "connectorId": 1, "status": "Charging", "operative": true, "connectorType": "CCS1", "lastStatusTime": "2026-07-10T06:02:55.678207Z" }
]
}
],
"page": 0,
"size": 50,
"totalElements": 1,
"totalPages": 1
}| 필드 | 타입 | 설명 |
|---|---|---|
id | number | 충전기 ID |
stationId | number? | 소속 충전소 ID |
identity | string? | OCPP 충전기 식별자 |
maxPowerKw | number? | 충전기 용량(kW) — 충전기 모델의 최대 출력. 모델 미지정 충전기는 null |
manufacturer | string? | 제조사 — 충전기 모델 기준. 모델 미지정 충전기는 null |
modelName | string? | 모델명 — 충전기 모델 기준. 모델 미지정 충전기는 null |
online | boolean | 실시간 접속 여부 |
status | string | 충전기 가용 상태(OCPP 실측) — Available / Unavailable / Faulted |
operative | boolean | 운영자 사용중지 여부 — false면 CSMS 운영자가 중지한 충전기. status(실측)와 별개 축이며, 커넥터에도 connectors[].operative로 동일하게 제공 |
ocppVersion | string | 예: 1.6 |
currentFirmwareVersion | string? | 현재 펌웨어 버전 |
lastHeartbeat | string? | 마지막 heartbeat 시각 (UTC) |
kepcoContract.voltageType | string | 한전 요금표 전압 구분 — LOW(저압) / HIGH(고압) |
kepcoContract.planOption | string | 한전 요금표 선택 구분(선택Ⅰ~Ⅳ) — OPTION_1 ~ OPTION_4 |
kepcoContract.demandChargeEnabled | boolean | 기본요금(수요전력 요금) 반영 여부 |
kepcoContract.contractDemandKw | number? | 한전 계약전력(kW) |
connectors[].status | string | OCPP 1.6 ChargePointStatus — Available, Preparing, Charging, SuspendedEVSE, SuspendedEV, Finishing, Reserved, Unavailable, Faulted |
connectors[].connectorId | number | 충전기 내 커넥터 번호 (1-base) |
connectors[].connectorType | string? | 물리 커넥터 타입 (CCS1/Type1/Type2/CHAdeMO/NACS) — 운영자 입력값, 미입력 시 없음 |
connectors[].lastStatusTime | string? | 마지막 상태 변경 시각 (UTC) |
충전기 상세
/api/v1/ext/chargers/{chargerId}충전기 단건(커넥터 상태 포함)을 조회합니다. 응답 스키마는 목록의 항목과 동일합니다. 존재하지 않거나 다른 CPO 소유인 경우 404.
요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/chargers/3004" -H "x-api-key: <API 키>"충전기 판매 단가 설정 (v1.9.0)
/api/v1/ext/chargers/{chargerId}/pricing충전기에 CSMS 에 설정된 판매 단가를 반환합니다. 충전기에 질의하지 않는 설정값이라 충전기가 오프라인이어도 응답합니다. 기준일(date, KST, 기본 오늘)에 유효한 단가 세트가 할당돼 있으면 시간대별 회원/비회원 단가를, 없으면 CPO 기본 단가를 적용 대상으로 표시합니다. 존재하지 않거나 다른 CPO 소유인 충전기는 404.
쿼리 파라미터
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
date | YYYY-MM-DD | 오늘(KST) | 기준일 — 이 날짜에 유효한 단가 세트 할당을 고릅니다 |
요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/chargers/3004/pricing?date=2026-09-18" -H "x-api-key: <API 키>"응답 200
{
"chargerId": 3004,
"chargerIdentity": "CP-0001",
"asOf": "2026-09-18",
"currency": "KRW",
"priceUnit": "KRW/kWh",
"source": "ASSIGNED_PRICE_SET",
"priceSet": {
"id": 3,
"name": "주간 세트",
"validFrom": "2026-09-01",
"validTo": "2026-12-31",
"timeRanges": [
{ "start": "00:00:00", "end": "12:00:00", "memberPrice": 150.00, "nonMemberPrice": 180.00 },
{ "start": "12:00:00", "end": "23:59:59", "memberPrice": 220.00, "nonMemberPrice": 260.00 }
]
},
"defaultUnitPrice": { "member": 200.00, "nonMember": 240.00 },
"rounding": { "mode": "HALF_UP", "unit": 1 }
}| 필드 | 타입 | 설명 |
|---|---|---|
asOf | string | 기준일(KST) |
source | string | ASSIGNED_PRICE_SET(기준일에 유효한 단가 세트 있음) / DEFAULT_UNIT_PRICE(없음 → CPO 기본 단가) |
priceSet | object? | { id, name, validFrom, validTo, timeRanges[] } — 기준일에 유효한 단가 세트와 이 충전기에 대한 할당 기간(양끝 포함). DEFAULT_UNIT_PRICE 면 없음 |
priceSet.timeRanges[] | array | { start, end, memberPrice, nonMemberPrice } — KST 벽시계 HH:mm:ss, start 포함·end 미포함, 시작 시각 오름차순. start > end 면 자정을 넘는 구간 |
defaultUnitPrice | object | { member, nonMember } — CPO 기본 단가(KRW/kWh). 세트 미할당 시, 그리고 세트 시간대에 포함되지 않는 시각에 적용 |
rounding | object | { mode, unit } — 거래 최종 금액 라운딩 규칙(HALF_UP 기본 1원 반올림 / CEILING / FLOOR). 단가·구간 계산에는 미적용 |
feeBreakdown.roaming). 단가 세트는 운영자가 수정할 수 있고 변경 이력이 없으므로, 과거 거래에 적용된 단가는 이 API 가 아니라 거래의 feeBreakdown으로 확인하십시오.충전기 충전 프로필 — CSMS 설정값 (v1.10.0)
/api/v1/ext/chargers/{chargerId}/charging-profilesCSMS 가 이 충전기에 SetChargingProfile 로 보낸 충전 프로필(전력 제한값·시간대별 스케줄)의 현재 유효한 목록입니다. 충전기에 질의하지 않는 CSMS 전송 기록이며, 충전기가 실제로 수락했는지는 항목별 commandStatus로 판단하십시오(기준선으로 쓸 때는 ACCEPTED만). 존재하지 않거나 다른 CPO 소유인 충전기는 404.
요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/chargers/3004/charging-profiles" -H "x-api-key: <API 키>"응답 200
{
"chargerId": 3004,
"chargerIdentity": "CP-0001",
"ocppVersion": "1.6",
"asOf": "2026-09-18T03:00:00Z",
"profiles": [
{
"profileId": 1587249301,
"connectorId": 0,
"purpose": "ChargePointMaxProfile",
"purposeOcpp": "ChargePointMaxProfile",
"kind": "Recurring",
"recurrency": "Daily",
"stackLevel": 0,
"validFrom": "2026-09-18T00:00:00Z",
"validTo": "2026-12-31T15:00:00Z",
"schedule": {
"duration": 86400,
"startSchedule": "2026-09-18T00:00:00Z",
"chargingRateUnit": "W",
"periods": [
{ "startPeriod": 0, "limit": 7000, "numberPhases": 1 },
{ "startPeriod": 32400, "limit": 3500, "numberPhases": 1 },
{ "startPeriod": 64800, "limit": 7000, "numberPhases": 1 }
]
},
"source": "PRESET",
"sentAt": "2026-09-18T00:00:05Z",
"commandStatus": "ACCEPTED",
"commandRespondedAt": "2026-09-18T00:00:06Z"
}
]
}| 필드 | 타입 | 설명 |
|---|---|---|
ocppVersion | string | 충전기 OCPP 버전 (1.6 / 2.0.1) |
asOf | string | 조회 시각 — 만료(validTo 경과)·교체·해제 판정 기준 |
profiles[].profileId | number | 충전기로 보낸 chargingProfileId |
profiles[].connectorId | number | 0 = 충전기 전체 (2.0.1 은 evseId) |
profiles[].purpose | string | OCPP 1.6 명칭 — ChargePointMaxProfile(상한) / TxDefaultProfile(거래 기본) / TxProfile(특정 거래) |
profiles[].purposeOcpp | string | 충전기 프로토콜로 실제 전송된 명칭 — 2.0.1 은 ChargingStationMaxProfile |
profiles[].kind | string | Absolute / Recurring / Relative. Recurring 이면 recurrency(Daily/Weekly) |
profiles[].stackLevel | number | 같은 목적 안에서 높은 값이 우선 |
profiles[].validFrom / validTo | string? | 유효기간(UTC). validTo 가 지난 프로필은 목록에서 제외 |
profiles[].schedule | object | { duration, startSchedule, chargingRateUnit(W|A), minChargingRate, periods[{ startPeriod, limit, numberPhases }] } — startPeriod 는 스케줄 시작으로부터의 오프셋(초), limit 는 chargingRateUnit 단위 |
profiles[].source | string | ADMIN(운영자 폼) / PRESET(전력제한 템플릿 적용) |
profiles[].sentAt | string | CSMS 가 명령을 보낸 시각 |
profiles[].commandStatus | string | 충전기 응답 — PENDING / SENT / ACCEPTED / REJECTED / ERROR / EXPIRED / UNKNOWN(명령 로그 없음) |
profiles[].commandRespondedAt / commandError | string? | 응답 시각 / 거절·오류 사유 |
충전 트랜잭션 내역
/api/v1/ext/transactions충전 트랜잭션 내역을 시작 시각 내림차순으로 반환합니다. 기간은 [from, to) 반개구간으로 필터됩니다.
쿼리 파라미터
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
from | ISO-8601 date-time | to − 30일 | 조회 시작 시각 (예: 2026-06-01T00:00:00Z) |
to | ISO-8601 date-time | 현재 시각 | 조회 종료 시각 (exclusive) |
page | number | 0 | 0부터 시작하는 페이지 번호 |
size | number | 50 | 페이지 크기 (최대 200) |
400이 반환됩니다.요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/transactions?from=2026-06-01T00:00:00Z&to=2026-07-01T00:00:00Z&page=0&size=50" \
-H "x-api-key: <API 키>"응답 200
{
"items": [
{
"id": 98765,
"chargerId": 3004,
"chargerIdentity": "CP-0001",
"connectorId": 1,
"startTime": "2026-07-11T02:10:00Z",
"stopTime": "2026-07-11T03:05:12Z",
"consumedWh": 21500,
"totalFee": 6450.00,
"assessedFee": 6450.00,
"authType": "MEMBER_CARD",
"feeBreakdown": {
"pricingSource": "ASSIGNED_PRICE_SET",
"memberType": "MEMBER",
"exempted": false,
"energyWh": 21500,
"currency": "KRW",
"priceSet": { "id": 3, "name": "주간 세트" },
"segments": [
{ "from": "2026-07-11T02:10:00Z", "to": "2026-07-11T03:00:00Z", "energyKwh": 19.5455, "unitPrice": 300.00, "fee": 5863.6364 },
{ "from": "2026-07-11T03:00:00Z", "to": "2026-07-11T03:05:12Z", "energyKwh": 1.9545, "unitPrice": 300.00, "fee": 586.3636 }
],
"rounding": { "mode": "HALF_UP", "unit": 1, "rawFee": 6450.0000, "finalFee": 6450.00 }
},
"reason": "Remote"
}
],
"page": 0,
"size": 50,
"totalElements": 1,
"totalPages": 1
}| 필드 | 타입 | 설명 |
|---|---|---|
id | number | 트랜잭션 ID |
chargerId | number | 충전기 ID |
chargerIdentity | string? | OCPP 충전기 식별자 |
connectorId | number | 충전기 내 커넥터 번호 (1-base) |
startTime | string | 충전 시작 시각 (UTC) |
stopTime | string? | 충전 종료 시각 — 진행 중이면 없음 |
consumedWh | number? | 충전량(Wh) — 끝난 세션은 확정값, 진행 중 세션은 조회 시점까지의 누계(통상 약 60초 주기 갱신). 미터값 미수신 시 없음 |
totalFee | number? | 실제 청구 요금(원) — 에너지 요금만(점유·시간 요금 없음). 미과금카드 거래는 0. 진행 중이면 없음 |
assessedFee | number? | 산정 요금(원) — 미과금 면제와 무관하게 계산된 정상 요금. totalFee = 0 인 거래의 면제 전 금액. 진행 중·산정 실패면 없음 |
authType | string? | 시작 시점 인증 구분 — NON_BILLING(미과금카드) / MEMBER_CARD(회원카드) / ROAMING(로밍카드) / GUEST_PREPAY(비회원 선결제) / PNC / UNREGISTERED. 2026-07-31 이전 거래는 없음 |
feeBreakdown | object? | 요금 산정 스냅샷 — 아래 표. 진행 중 거래와 스냅샷 도입(v1.8.0) 이전 종료 거래는 없음 |
reason | string? | 종료 사유 (OCPP StopTransaction reason) |
page / size / totalElements / totalPages | number | 페이지네이션 메타 |
feeBreakdown — 요금 산정 스냅샷 (v1.8.0)
거래 종료 시점에 어떤 단가가 어느 시간대 구간에 적용됐는지를 고정한 기록입니다. 단가 세트는 운영자가 수정할 수 있으므로 이 스냅샷이 그 거래에 적용된 단가의 유일한 근거입니다. 도매(정산) 단가와 결제 수단 정보는 담지 않습니다.
| 필드 | 타입 | 설명 |
|---|---|---|
pricingSource | string | 단가 출처 — ASSIGNED_PRICE_SET(충전기 할당 단가 세트, 시간대별 회원/비회원 단가) / DEFAULT_UNIT_PRICE(할당 없음 → CPO 기본 단가) / ROAMING_RETAIL(로밍 거래 — 협약 로밍사 소매가) |
memberType | string | 단가 선택에 쓰인 이용자 구분 — MEMBER / NON_MEMBER(비회원 선결제) / ROAMING |
exempted | boolean | true = 미과금카드 거래. totalFee 는 0, 산정액은 assessedFee |
energyWh | number | 산정에 쓴 충전량(Wh) |
priceSet | object? | 적용 단가 세트 { id, name } — ASSIGNED_PRICE_SET 일 때만 |
roaming | object? | 로밍 소매가 정보 { bid, companyName, chargerKw, bandMinKw, bandMaxKw, unitPrice } — ROAMING_RETAIL 일 때만 |
segments[] | array | 시간대 구간별 산정 { from, to, energyKwh, unitPrice, fee }. 구간 에너지는 전체 충전량을 구간 시간 비례로 배분한 값(구간별 실측 아님). fee 합 = rounding.rawFee |
rounding | object | { mode, unit, rawFee, finalFee } — mode: HALF_UP(기본 1원 반올림) / CEILING(올림) / FLOOR(내림). finalFee 가 곧 assessedFee |
totalFee는 에너지 요금만입니다(점유·시간·기본요금 없음). 따라서 totalFee ÷ consumedWh가 곧 실효 단가이며, 같은 충전기에서 값이 갈리는 것은 authType(회원/비회원/로밍)과 시간대 구간 때문입니다. totalFee = 0은 authType = NON_BILLING(feeBreakdown.exempted = true) 또는 충전량 0으로 판별하십시오.거래별 미터값 시계열
/api/v1/ext/transactions/{transactionId}/meter-values한 트랜잭션에 적재된 미터값(누적 전력량·순시 전력)을 시각 오름차순으로 반환합니다. 충전기 MeterValues 보고 주기(통상 약 60초)로 적재되며, 진행 중인 세션도 조회할 수 있습니다. 보관 중인 과거 거래는 기간 제한 없이 트랜잭션 ID로 소급 조회할 수 있습니다.
쿼리 파라미터
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
page | number | 0 | 0부터 시작하는 페이지 번호 |
size | number | 50 | 페이지 크기 (최대 200) |
요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/transactions/98765/meter-values?page=0&size=200" \
-H "x-api-key: <API 키>"응답 200
{
"items": [
{ "timestamp": "2026-08-27T09:23:28Z", "context": "Transaction.Begin", "energyWh": 273, "powerW": null },
{ "timestamp": "2026-08-27T09:24:28Z", "context": "Sample.Periodic", "energyWh": 294, "powerW": 1260 }
],
"page": 0,
"size": 200,
"totalElements": 2,
"totalPages": 1
}| 필드 | 타입 | 설명 |
|---|---|---|
timestamp | string | 측정 시각 (UTC) |
context | string? | OCPP ReadingContext (Sample.Periodic / Transaction.Begin / Transaction.End 등) |
energyWh | number? | 누적 충전 전력량(Wh) — 미터 누계값 |
powerW | number? | 순시 전력(W) — Power.Active.Import, 충전기가 보고하지 않으면 없음 |
404가 반환됩니다.출력 등급 분류 기준
/api/v1/ext/meta/speed-grades충전기 출력 등급(완속/중속/급속)의 분류 기준을 반환합니다. 충전기 응답의 maxPowerKw(kW)를 grades 배열 순서대로 상한과 비교해 첫 매칭이 그 충전기의 등급입니다(마지막 등급은 상한 없음). CPO와 무관한 공통 기준이며, CSMS 관리콘솔 대시보드 「출력 분포」와 동일합니다. maxPowerKw가 없는(모델 미지정) 충전기는 미분류로 취급하십시오.
요청 예시
curl "https://external-api.oasis-arca.com/api/v1/ext/meta/speed-grades" \
-H "x-api-key: <API 키>"응답 200
{
"basis": "chargers[].maxPowerKw (kW)",
"grades": [
{ "grade": "SLOW", "label": "완속", "upperBoundKw": 11, "upperInclusive": true },
{ "grade": "MID", "label": "중속", "upperBoundKw": 50, "upperInclusive": false },
{ "grade": "FAST", "label": "급속", "upperBoundKw": null, "upperInclusive": null }
]
}| 필드 | 타입 | 설명 |
|---|---|---|
grade | string | 등급 코드 (SLOW/MID/FAST) |
label | string | 한글 표기 (완속/중속/급속) |
upperBoundKw | number? | 이 등급의 상한(kW) — 없으면 상한 없음(최상위 등급) |
upperInclusive | boolean? | 상한 포함 여부 — true: ≤, false: < |
OpenAPI 스펙
기계가독형 계약 문서(OpenAPI 3.0)를 제공합니다. 클라이언트 코드 생성(openapi-generator 등)에 사용할 수 있습니다.
- external-api.openapi.yaml — OpenAPI 3.0.3 (YAML)
# 예: TypeScript 클라이언트 생성
npx @openapitools/openapi-generator-cli generate \
-i https://admin.oasis-arca.com/docs/external-api.openapi.yaml \
-g typescript-fetch -o ./csms-external-client문의
API 키 발급·차단, 사용량 플랜, 응답 필드 추가 요청 등은 CSMS 운영팀에 문의하십시오.
문의: axd@bionever.com