{"components":{"responses":{"400":{"content":{"application/problem+json":{"example":{"code":"invalid_tracking_number","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","status":400,"title":"운송장번호 형식이 아닙니다. 영숫자 8~20자여야 하고 숫자가 최소 1개 필요합니다.","type":"https://taekbae.net/docs/api/errors/invalid_tracking_number"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`invalid_tracking_number`, `invalid_parameter`","headers":{"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 쿼터를 조회한 뒤 생긴 오류에 옵니다(인증 실패에는 없습니다).","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"현재 창이 리셋될 때까지 남은 초.","schema":{"type":"integer"}},"RateLimit-Scope":{"description":"두 창 중 더 임박한 쪽.","schema":{"enum":["daily","monthly"],"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"401":{"content":{"application/problem+json":{"example":{"code":"missing_api_key","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","status":401,"title":"Authorization 헤더가 없거나 Bearer 형식이 아닙니다.","type":"https://taekbae.net/docs/api/errors/missing_api_key"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`missing_api_key`, `invalid_api_key`","headers":{"WWW-Authenticate":{"description":"`Bearer realm=\"taekbae\"`. 키가 틀린 경우 `error=\"invalid_token\"`이 붙습니다.","schema":{"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"404":{"content":{"application/problem+json":{"example":{"code":"carrier_not_supported","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","status":404,"supported":["cj","hanjin","lotte","logen","epost","kyungdong","daesin","slx","gs25","cu","aliexpress","dhl","ems"],"title":"지원하지 않는 택배사 슬러그입니다. 응답의 `supported`에 전체 목록이 들어 있습니다.","type":"https://taekbae.net/docs/api/errors/carrier_not_supported"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`carrier_not_supported`, `tracking_number_not_found`, `not_found`","headers":{"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 쿼터를 조회한 뒤 생긴 오류에 옵니다(인증 실패에는 없습니다).","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"현재 창이 리셋될 때까지 남은 초.","schema":{"type":"integer"}},"RateLimit-Scope":{"description":"두 창 중 더 임박한 쪽.","schema":{"enum":["daily","monthly"],"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"405":{"content":{"application/problem+json":{"example":{"code":"method_not_allowed","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","status":405,"title":"경로는 있지만 그 메서드를 지원하지 않습니다. `Allow` 헤더에 허용 메서드가 옵니다.","type":"https://taekbae.net/docs/api/errors/method_not_allowed"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`method_not_allowed`","headers":{"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 쿼터를 조회한 뒤 생긴 오류에 옵니다(인증 실패에는 없습니다).","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"현재 창이 리셋될 때까지 남은 초.","schema":{"type":"integer"}},"RateLimit-Scope":{"description":"두 창 중 더 임박한 쪽.","schema":{"enum":["daily","monthly"],"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"422":{"content":{"application/problem+json":{"example":{"candidates":[{"code":"cj","name":"CJ대한통운"}],"code":"carrier_not_detected","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","status":422,"title":"운송장번호만으로 택배사를 특정하지 못했습니다. `tried`가 이미 조회한 택배사, `candidates`가 아직 시도하지 않은 후보입니다. 후보를 다 썼거나 애초에 못 뽑았으면 `candidates`는 빈 배열입니다. 택배사를 실제로 조회했으므로 1건 차감합니다. 후보를 하나도 못 뽑아 상류를 아예 부르지 않은 경우(`tried`가 빈 배열)만 차감하지 않습니다.","type":"https://taekbae.net/docs/api/errors/carrier_not_detected"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`carrier_not_detected`","headers":{"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 쿼터를 조회한 뒤 생긴 오류에 옵니다(인증 실패에는 없습니다).","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"현재 창이 리셋될 때까지 남은 초.","schema":{"type":"integer"}},"RateLimit-Scope":{"description":"두 창 중 더 임박한 쪽.","schema":{"enum":["daily","monthly"],"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"429":{"content":{"application/problem+json":{"example":{"code":"quota_exceeded","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","scope":"daily","status":429,"title":"요청 한도를 초과했습니다. `scope`가 일·월 중 어느 창인지 알려줍니다.","type":"https://taekbae.net/docs/api/errors/quota_exceeded"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`quota_exceeded`","headers":{"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 쿼터를 조회한 뒤 생긴 오류에 옵니다(인증 실패에는 없습니다).","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"현재 창이 리셋될 때까지 남은 초.","schema":{"type":"integer"}},"RateLimit-Scope":{"description":"두 창 중 더 임박한 쪽.","schema":{"enum":["daily","monthly"],"type":"string"}},"Retry-After":{"description":"재시도까지 기다릴 초. `quota_exceeded`·`carrier_unavailable`에 옵니다.","schema":{"type":"integer"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"500":{"content":{"application/problem+json":{"example":{"code":"internal_error","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","status":500,"title":"우리 쪽 오류입니다.","type":"https://taekbae.net/docs/api/errors/internal_error"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`internal_error`","headers":{"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"502":{"content":{"application/problem+json":{"example":{"code":"carrier_error","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","status":502,"title":"택배사가 응답했지만 우리가 해석하지 못했습니다.","type":"https://taekbae.net/docs/api/errors/carrier_error"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`carrier_error`","headers":{"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 쿼터를 조회한 뒤 생긴 오류에 옵니다(인증 실패에는 없습니다).","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"현재 창이 리셋될 때까지 남은 초.","schema":{"type":"integer"}},"RateLimit-Scope":{"description":"두 창 중 더 임박한 쪽.","schema":{"enum":["daily","monthly"],"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"503":{"content":{"application/problem+json":{"example":{"code":"carrier_unavailable","request_id":"req_0f8c1a2b3c4d5e6f7a8b9c0d1e2f3a4b","status":503,"title":"택배사 시스템에 접근할 수 없습니다. 택배사 점검·장애·차단입니다.","type":"https://taekbae.net/docs/api/errors/carrier_unavailable"},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"`carrier_unavailable`","headers":{"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 쿼터를 조회한 뒤 생긴 오류에 옵니다(인증 실패에는 없습니다).","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"현재 창이 리셋될 때까지 남은 초.","schema":{"type":"integer"}},"RateLimit-Scope":{"description":"두 창 중 더 임박한 쪽.","schema":{"enum":["daily","monthly"],"type":"string"}},"Retry-After":{"description":"재시도까지 기다릴 초. `quota_exceeded`·`carrier_unavailable`에 옵니다.","schema":{"type":"integer"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}}},"schemas":{"CarrierList":{"properties":{"carriers":{"items":{"properties":{"auto_detect":{"description":"carrier를 생략했을 때의 감지 신뢰도. `weak`은 학습 표본이 부족해 못 맞힐 수 있고, `unsupported`는 반드시 carrier를 지정해야 합니다.","enum":["reliable","prefix","weak","unsupported"],"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"supports":{"items":{"type":"string"},"type":"array"}},"required":["code","name","auto_detect","supports"],"type":"object"},"type":"array"}},"required":["carriers"],"type":"object"},"CarrierRef":{"properties":{"code":{"enum":["cj","hanjin","lotte","logen","epost","kyungdong","daesin","slx","gs25","cu","aliexpress","dhl","ems"],"type":"string"},"detected":{"description":"true면 우리가 추론한 값입니다(요청에 carrier를 넣지 않은 경우). false면 요청에서 지정한 값을 그대로 돌려준 것입니다(예: carrier=cj) - 필드 자체가 빠지지 않고 항상 옵니다. 자동 감지는 확률이 높은 순으로 후보 택배사를 하나씩 조회해 처음 성공한 곳을 그대로 반환하며, 남은 후보와 대조해 검증하지 않습니다. 운송장번호는 택배사마다 독립적으로 발급되므로, 드물지만 서로 다른 택배사가 우연히 같은 번호로 실제 배송 건을 각자 가지고 있을 수 있습니다 - 이 경우 추론된 택배사도 진짜 데이터를 반환하기 때문에 조회 자체는 성공하지만, 사용자가 찾던 화물이 아닐 수 있습니다. 자동 감지를 얼마나 믿을지는 `GET /v1/carriers`의 `auto_detect`로 판단하고, `detected: true`인 응답을 사용자에게 보여줄 때는 \"다른 택배사인가요?\"를 물을 근거로 남겨 두세요.","type":"boolean"},"name":{"type":"string"}},"required":["code","name","detected"],"type":"object"},"DeliveryAgent":{"description":"배송 담당자. 주는 택배사에서만 채워집니다. `GET /v1/carriers`의 `supports`를 확인하세요.","properties":{"branch":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"type":"object"},"Eta":{"description":"도착 예측. 단일 시각이 아니라 구간과 신뢰도를 줍니다.","properties":{"as_of":{"format":"date-time","type":"string"},"confidence":{"enum":["low","medium","high"],"type":"string"},"estimated_delivery_from":{"format":"date-time","type":"string"},"estimated_delivery_to":{"format":"date-time","type":"string"},"fallback_level":{"description":"같은 택배사·구간의 표본이 없어 더 성긴 사전분포로 물러났을 때 채워집니다. confidence와 함께 보세요.","type":"string"},"model_version":{"type":"string"},"p50_remaining_minutes":{"type":"integer"},"p90_remaining_minutes":{"type":"integer"},"status":{"enum":["available","unavailable","completed","exception"],"type":"string"},"support_count":{"description":"예측 근거가 된 과거 배송 건수","type":"integer"}},"required":["status","model_version","as_of"],"type":"object"},"Event":{"properties":{"country":{"description":"ISO 3166-1 alpha-2. 국제특송만 채워집니다.","type":"string"},"delivery_agent":{"$ref":"#/components/schemas/DeliveryAgent"},"location":{"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"occurred_at_raw":{"description":"택배사가 준 시각 원문","type":"string"},"stage":{"description":"이 이벤트의 정규화된 단계. `status.code`와 같은 값 집합입니다(원문은 `status_text`).","enum":["accepted","picked_up","at_origin_terminal","linehaul","at_destination_terminal","out_for_delivery","delivered","exception","returned","cancelled","unknown"],"type":"string"},"status_text":{"description":"택배사 원문 상태 문구","type":"string"},"time_precision":{"description":"`date_only`면 택배사가 시각을 주지 않았습니다. 00:00으로 해석하지 마세요.","enum":["exact","date_only","missing"],"type":"string"}},"required":["time_precision","stage"],"type":"object"},"Parties":{"properties":{"receiver":{"$ref":"#/components/schemas/Party"},"sender":{"$ref":"#/components/schemas/Party"}},"type":"object"},"Party":{"properties":{"masked":{"description":"택배사가 이미 가린 값인지","type":"boolean"},"name":{"type":"string"}},"required":["name","masked"],"type":"object"},"Problem":{"description":"RFC 9457 problem+json. 오류는 항상 4xx/5xx로 옵니다.","properties":{"cached":{"description":"`carrier_not_detected`에만 옵니다. `true`면 이번 요청에서 택배사를 부르지 않고, 최근 전탐색이 어느 택배사에도 없다고 확인한 결과를 그대로 돌려준 것입니다(쿼터 차감 없음). 접수 직후라면 잠시 뒤 다시 시도하세요.","type":"boolean"},"candidates":{"description":"`carrier_not_detected`에만 옵니다. 이 중 하나의 `code`를 `carrier`로 지정해 다시 호출하세요.","items":{"properties":{"code":{"enum":["cj","hanjin","lotte","logen","epost","kyungdong","daesin","slx","gs25","cu","aliexpress","dhl","ems"],"type":"string"},"name":{"type":"string"}},"required":["code","name"],"type":"object"},"type":"array"},"carrier":{"description":"상류 조회가 실패한 택배사 코드. 택배사 오류(`carrier_error`·`carrier_unavailable`·`tracking_number_not_found` 등)에 옵니다.","enum":["cj","hanjin","lotte","logen","epost","kyungdong","daesin","slx","gs25","cu","aliexpress","dhl","ems"],"type":"string"},"code":{"description":"안정된 기계 판독용 코드. 문구가 바뀌어도 이 값은 유지됩니다.","enum":["invalid_tracking_number","invalid_parameter","missing_api_key","invalid_api_key","carrier_not_supported","tracking_number_not_found","not_found","method_not_allowed","carrier_not_detected","quota_exceeded","carrier_error","carrier_unavailable","internal_error"],"type":"string"},"detected":{"description":"이 조회가 자동 감지 경로였는지(`carrier`를 생략했는지). `true`인데 5xx가 났다면 추론이 빗나갔을 수 있으므로, 재시도보다 `carrier`를 직접 지정하는 편이 낫습니다.","type":"boolean"},"request_id":{"description":"문의 시 이 값을 알려주세요. `req_` + 32자리 16진수입니다.","pattern":"^req_[0-9a-f]{32}$","type":"string"},"scope":{"description":"`quota_exceeded`에만 옵니다. 어느 창의 한도에 걸렸는지.","enum":["daily","monthly"],"type":"string"},"status":{"type":"integer"},"supported":{"description":"`carrier_not_supported`에만 옵니다. 사용 가능한 택배사 코드 전체.","items":{"enum":["cj","hanjin","lotte","logen","epost","kyungdong","daesin","slx","gs25","cu","aliexpress","dhl","ems"],"type":"string"},"type":"array"},"title":{"type":"string"},"tried":{"description":"`carrier_not_detected`에만 옵니다. 이번 요청에서 실제로 조회한 택배사(`{code, name}`)입니다. 정보가 없어 실패했으므로 같은 값으로 재시도하면 결과가 같습니다.","items":{"type":"object"},"type":"array"},"type":{"description":"해당 오류 문서 URL","format":"uri","type":"string"}},"required":["type","title","status","code","request_id"],"type":"object"},"Status":{"properties":{"code":{"description":"택배사와 무관하게 정규화된 배송 상태. `events[].stage`와 같은 값 집합입니다.","enum":["accepted","picked_up","at_origin_terminal","linehaul","at_destination_terminal","out_for_delivery","delivered","exception","returned","cancelled","unknown"],"type":"string"},"is_final":{"description":"더 이상 변하지 않는 상태. 폴링 종료 조건으로 쓰세요. `delivered`·`returned`·`cancelled`가 true입니다.","type":"boolean"},"label":{"type":"string"}},"required":["code","label","is_final"],"type":"object"},"Tracking":{"properties":{"as_of":{"description":"이 정보를 택배사에서 가져온 시각. 응답을 만든 시각이 아닙니다.","format":"date-time","type":"string"},"carrier":{"$ref":"#/components/schemas/CarrierRef"},"delivery_agent":{"$ref":"#/components/schemas/DeliveryAgent"},"eta":{"allOf":[{"$ref":"#/components/schemas/Eta"}],"description":"도착 예측. **`eta=true`로 요청했을 때만 옵니다.** 기본 요청에는 이 키 자체가 없습니다."},"events":{"description":"항상 옵니다. `events=none`이면 빈 배열입니다.","items":{"$ref":"#/components/schemas/Event"},"type":"array"},"last_event_at":{"format":"date-time","type":"string"},"parties":{"$ref":"#/components/schemas/Parties"},"status":{"$ref":"#/components/schemas/Status"},"tracking_number":{"type":"string"}},"required":["tracking_number","carrier","status","events","as_of"],"type":"object"},"Usage":{"properties":{"enforced":{"type":"boolean"},"remaining":{"type":"integer"},"reset_at":{"format":"date-time","type":"string"},"scope":{"enum":["daily","monthly"],"type":"string"}},"required":["enforced"],"type":"object"}},"securitySchemes":{"bearerAuth":{"description":"`Authorization: Bearer tb_...`. 쿼리스트링 전달은 지원하지 않습니다.","scheme":"bearer","type":"http"}}},"info":{"contact":{"url":"https://taekbae.net/docs/api"},"description":"택배사 코드를 몰라도 조회할 수 있습니다. `carrier`를 생략하면 운송장번호 형식과 학습된 패턴으로 택배사를 자동 감지합니다.\n\n전체 문서: https://taekbae.net/docs/api","summary":"운송장번호 하나로 국내외 13개 택배사 배송 상태를 조회합니다.","title":"택배넷 배송조회 API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/v1/carriers":{"get":{"description":"조회에 필요한 선행 호출이 아닙니다. 자동 감지가 있으므로 코드를 몰라도 조회할 수 있고, 이 목록은 \"이 택배사에서 왜 이 필드가 안 오는가\"를 확인하는 용도입니다. 쿼터를 차감하지 않습니다.","operationId":"listCarriers","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CarrierList"}}},"description":"성공","headers":{"Cache-Control":{"description":"`max-age=3600`. 목록은 자주 바뀌지 않습니다.","schema":{"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"택배사 목록과 지원 필드","tags":["meta"]}},"/v1/openapi.json":{"get":{"description":"기계 판독용 OpenAPI 문서입니다. **인증 없이 볼 수 있습니다.** 키를 발급받기 전에도 스펙을 확인하고 SDK를 만들 수 있으며 쿼터도 차감하지 않습니다.","operationId":"getOpenApiSpec","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"OpenAPI 문서","headers":{"Cache-Control":{"description":"`max-age=3600`","schema":{"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"500":{"$ref":"#/components/responses/500"}},"security":[],"summary":"이 스펙 문서","tags":["meta"]}},"/v1/tracking/{tracking_number}":{"get":{"description":"`carrier`는 선택입니다. 생략하면 자동 감지합니다.\n\n`ETag`와 `Cache-Control`이 함께 옵니다. `If-None-Match`로 조건부 요청을 보내면 내용이 그대로일 때 304가 오고 **쿼터가 차감되지 않습니다.**\n\n쿼리 파라미터는 각각 **한 번만** 보내세요. 같은 파라미터를 두 번 보내거나 해석할 수 없는 값을 보내면 400 `invalid_parameter`로 거절하고, 응답의 `parameter`가 어느 파라미터인지 알려줍니다. 조용히 기본값으로 처리하지 않습니다.","operationId":"getTracking","parameters":[{"description":"운송장번호. 하이픈을 제거한 뒤 영숫자 8~20자여야 하고 **숫자가 최소 1개** 필요합니다(정규식으로는 표현할 수 없어 pattern에는 빠져 있습니다). 하이픈은 자동 제거하고 영문은 대문자로 정규화합니다.","example":"5028471963005","in":"path","name":"tracking_number","required":true,"schema":{"pattern":"^-*([A-Za-z0-9]-*){8,20}$","type":"string"}},{"description":"택배사 코드. 생략하면 자동 감지합니다.","in":"query","name":"carrier","required":false,"schema":{"enum":["cj","hanjin","lotte","logen","epost","kyungdong","daesin","slx","gs25","cu","aliexpress","dhl","ems"],"type":"string"}},{"description":"이벤트 이력 범위. 폴링에는 `latest`가 가볍습니다. `none`이면 `events`는 빈 배열이 옵니다(키는 항상 있습니다).","in":"query","name":"events","required":false,"schema":{"default":"full","enum":["full","latest","none"],"type":"string"}},{"description":"도착 예측 포함 여부. **기본은 미포함**이라 `eta` 키가 아예 오지 않습니다. 도착 예측은 아직 정확도가 충분하지 않으니, 필요할 때만 `eta=true`로 켜고 참고값으로만 쓰세요.","in":"query","name":"eta","required":false,"schema":{"default":false,"type":"boolean"}},{"description":"이전 응답의 `ETag`. 일치하면 304를 반환하고 쿼터를 차감하지 않습니다.","in":"header","name":"If-None-Match","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tracking"}}},"description":"조회 성공","headers":{"Cache-Control":{"description":"권장 폴링 주기","schema":{"type":"string"}},"ETag":{"description":"조건부 요청용","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 한도를 강제받는 계정에만 옵니다.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"창 리셋까지 남은 초","schema":{"type":"integer"}},"RateLimit-Scope":{"schema":{"enum":["daily","monthly"],"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"304":{"description":"내용 변화 없음. 본문이 없고 쿼터도 차감되지 않습니다. `ETag`는 그대로 오므로 다음 조건부 요청에 다시 쓰면 됩니다.","headers":{"Cache-Control":{"description":"권장 폴링 주기","schema":{"type":"string"}},"ETag":{"description":"조건부 요청용","schema":{"type":"string"}},"RateLimit-Remaining":{"description":"현재 창의 잔여 호출 수. 한도를 강제받는 계정에만 옵니다.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"창 리셋까지 남은 초","schema":{"type":"integer"}},"RateLimit-Scope":{"schema":{"enum":["daily","monthly"],"type":"string"}},"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"404":{"$ref":"#/components/responses/404"},"422":{"$ref":"#/components/responses/422"},"429":{"$ref":"#/components/responses/429"},"500":{"$ref":"#/components/responses/500"},"502":{"$ref":"#/components/responses/502"},"503":{"$ref":"#/components/responses/503"}},"summary":"배송 조회","tags":["tracking"]}},"/v1/usage":{"get":{"description":"잔량과 리셋 시각을 돌려줍니다. 쿼터를 차감하지 않습니다.","operationId":"getUsage","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Usage"}}},"description":"성공","headers":{"X-Request-Id":{"description":"문의 시 이 값을 알려주세요.","schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/401"},"500":{"$ref":"#/components/responses/500"}},"summary":"남은 호출 수","tags":["meta"]}}},"security":[{"bearerAuth":[]}],"servers":[{"description":"운영","url":"https://taekbae.net"}],"tags":[{"description":"배송 조회","name":"tracking"},{"description":"택배사 목록·사용량","name":"meta"}]}