{"openapi":"3.1.0","info":{"title":"Giao Hang Tiet Kiem (BYOK) API","version":"0.1.0","description":"Giao Hang Tiet Kiem (BYOK) lets an AI assistant read your own Giao Hang Tiet Kiem data through the Giao Hang Tiet Kiem API with a key you supply (GHTK API token). Read-only: 6 tools (get_order_status, calculate_shipping_fee, list_pickup_addresses, list_delivery_solutions, lookup_street_addresses, search_product_codes). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-ghtk.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-ghtk/docs"},"termsOfService":"https://connectorbay.com/byok-ghtk/terms"},"servers":[{"url":"https://byok-ghtk.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-ghtk/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_order_status":{"post":{"operationId":"get_order_status","summary":"Get the delivery status of one GHTK order by its GHTK label id or your own partner order id: status code and text, dates","description":"Get the delivery status of one GHTK order by its GHTK label id or your own partner order id: status code and text, dates, fees, weight and COD amount (recipient name, phone and address are left out). Use for \"Where is GHTK order S1.A1.17373471\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tracking_order":{"description":"GHTK order code such as S1.A1.17373471, or the partner order id you submitted.","maxLength":200,"title":"Tracking Order","type":"string"}},"required":["tracking_order"],"title":"get_order_statusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/calculate_shipping_fee":{"post":{"operationId":"calculate_shipping_fee","summary":"Quote the GHTK shipping fee and insurance fee between a pickup and a delivery address by province, district and ward nam","description":"Quote the GHTK shipping fee and insurance fee between a pickup and a delivery address by province, district and ward names (free to call; creates no order). Use for \"How much does GHTK charge to ship 1 kg from Ha Noi to Ho Chi Minh City\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pick_province":{"description":"Province or city name of the pickup point, for example 'Ha noi'.","maxLength":200,"title":"Pick Province","type":"string"},"pick_ward":{"description":"Ward or commune name of the pickup point (the docs mark it required).","maxLength":200,"title":"Pick Ward","type":"string"},"province":{"description":"Province or city name of the recipient.","maxLength":200,"title":"Province","type":"string"},"ward":{"description":"Ward or commune name of the recipient (the docs mark it required).","maxLength":200,"title":"Ward","type":"string"},"weight":{"description":"Parcel weight in grams.","maximum":1000000,"minimum":1,"title":"Weight","type":"integer"},"pick_district":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"District name of the pickup point.","title":"Pick District"},"district":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"District name of the recipient.","title":"District"},"address":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Street address of the recipient.","title":"Address"},"value":{"anyOf":[{"maximum":1000000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Declared goods value in VND, used for the insurance fee.","title":"Value"},"transport":{"anyOf":[{"enum":["road","fly"],"type":"string"},{"type":"null"}],"default":null,"description":"Transport mode: road or fly (falls back to the default if invalid).","title":"Transport"}},"required":["pick_province","pick_ward","province","ward","weight"],"title":"calculate_shipping_feeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_pickup_addresses":{"post":{"operationId":"list_pickup_addresses","summary":"List the shop's saved GHTK pickup addresses (id, name and address) to use as pickup points. Use for \"What pickup address","description":"List the shop's saved GHTK pickup addresses (id, name and address) to use as pickup points. Use for \"What pickup addresses do I have at GHTK\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_pickup_addressesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_delivery_solutions":{"post":{"operationId":"list_delivery_solutions","summary":"List the optional delivery solution packages (extra goods-safety services) the shop can add to orders. Use for \"Which GH","description":"List the optional delivery solution packages (extra goods-safety services) the shop can add to orders. Use for \"Which GHTK delivery solution packages can my shop use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_delivery_solutionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/lookup_street_addresses":{"post":{"operationId":"lookup_street_addresses","summary":"List GHTK's level-4 (street or place) address names within a province, district and ward or street, for special-address ","description":"List GHTK's level-4 (street or place) address names within a province, district and ward or street, for special-address matching. Use for \"Which level-4 addresses does GHTK know on Doi Can street in Ba Dinh, Ha Noi\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"province":{"description":"Province or city name.","maxLength":200,"title":"Province","type":"string"},"district":{"description":"District name.","maxLength":200,"title":"District","type":"string"},"ward_street":{"description":"Ward or street name.","maxLength":200,"title":"Ward Street","type":"string"},"address":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional detailed address text to narrow the list.","title":"Address"}},"required":["province","district","ward_street"],"title":"lookup_street_addressesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_product_codes":{"post":{"operationId":"search_product_codes","summary":"Search the shop's products already known to GHTK by name and get their product codes, weight and value. Use for \"What GH","description":"Search the shop's products already known to GHTK by name and get their product codes, weight and value. Use for \"What GHTK product code does my laptop have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"description":"Product name to search for.","maxLength":200,"title":"Term","type":"string"}},"required":["term"],"title":"search_product_codesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}