Create a shipment request
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Post, RequestUri = new Uri("https://app.quatlasglobal.com/api/integrations/v1/shipment-requests"), Headers = { { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"cargo\": { \"description\": \"example\", \"dimensions\": \"example\", \"exceedsStandard\": true, \"fragile\": true, \"hazardous\": true, \"maxStackLayers\": 1, \"maxTopLoadKg\": 1, \"outOfGauge\": true, \"packageCount\": 1, \"stackable\": true, \"standardType\": \"example\", \"temperatureMaxC\": 1, \"temperatureMinC\": 1, \"volumeM3\": 1, \"weightKg\": 1 }, \"costCenter\": \"example\", \"destination\": { \"addressLine\": \"example\", \"city\": \"example\", \"contactName\": \"example\", \"contactPhone\": \"example\", \"countryCode\": \"example\", \"handling\": \"example\", \"locationType\": \"example\", \"postalCode\": \"example\", \"unLocode\": \"example\", \"windowFrom\": \"example\", \"windowTo\": \"example\" }, \"externalReference\": \"example\", \"incoterm\": \"example\", \"isFlexibleSchedule\": true, \"metadata\": \"example\", \"modePolicy\": \"example\", \"notes\": \"example\", \"origin\": { \"addressLine\": \"example\", \"city\": \"example\", \"contactName\": \"example\", \"contactPhone\": \"example\", \"countryCode\": \"example\", \"handling\": \"example\", \"locationType\": \"example\", \"postalCode\": \"example\", \"unLocode\": \"example\", \"windowFrom\": \"example\", \"windowTo\": \"example\" }, \"preferredDeliveryDate\": \"2026-04-15\", \"preferredDeliveryTime\": \"example\", \"preferredPickupDate\": \"2026-04-15\", \"publish\": true, \"purchaseOrderNumber\": \"example\", \"transportMode\": \"example\" }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://app.quatlasglobal.com/api/integrations/v1/shipment-requests")) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{ \"cargo\": { \"description\": \"example\", \"dimensions\": \"example\", \"exceedsStandard\": true, \"fragile\": true, \"hazardous\": true, \"maxStackLayers\": 1, \"maxTopLoadKg\": 1, \"outOfGauge\": true, \"packageCount\": 1, \"stackable\": true, \"standardType\": \"example\", \"temperatureMaxC\": 1, \"temperatureMinC\": 1, \"volumeM3\": 1, \"weightKg\": 1 }, \"costCenter\": \"example\", \"destination\": { \"addressLine\": \"example\", \"city\": \"example\", \"contactName\": \"example\", \"contactPhone\": \"example\", \"countryCode\": \"example\", \"handling\": \"example\", \"locationType\": \"example\", \"postalCode\": \"example\", \"unLocode\": \"example\", \"windowFrom\": \"example\", \"windowTo\": \"example\" }, \"externalReference\": \"example\", \"incoterm\": \"example\", \"isFlexibleSchedule\": true, \"metadata\": \"example\", \"modePolicy\": \"example\", \"notes\": \"example\", \"origin\": { \"addressLine\": \"example\", \"city\": \"example\", \"contactName\": \"example\", \"contactPhone\": \"example\", \"countryCode\": \"example\", \"handling\": \"example\", \"locationType\": \"example\", \"postalCode\": \"example\", \"unLocode\": \"example\", \"windowFrom\": \"example\", \"windowTo\": \"example\" }, \"preferredDeliveryDate\": \"2026-04-15\", \"preferredDeliveryTime\": \"example\", \"preferredPickupDate\": \"2026-04-15\", \"publish\": true, \"purchaseOrderNumber\": \"example\", \"transportMode\": \"example\" }")) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());const url = 'https://app.quatlasglobal.com/api/integrations/v1/shipment-requests';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"cargo":{"description":"example","dimensions":"example","exceedsStandard":true,"fragile":true,"hazardous":true,"maxStackLayers":1,"maxTopLoadKg":1,"outOfGauge":true,"packageCount":1,"stackable":true,"standardType":"example","temperatureMaxC":1,"temperatureMinC":1,"volumeM3":1,"weightKg":1},"costCenter":"example","destination":{"addressLine":"example","city":"example","contactName":"example","contactPhone":"example","countryCode":"example","handling":"example","locationType":"example","postalCode":"example","unLocode":"example","windowFrom":"example","windowTo":"example"},"externalReference":"example","incoterm":"example","isFlexibleSchedule":true,"metadata":"example","modePolicy":"example","notes":"example","origin":{"addressLine":"example","city":"example","contactName":"example","contactPhone":"example","countryCode":"example","handling":"example","locationType":"example","postalCode":"example","unLocode":"example","windowFrom":"example","windowTo":"example"},"preferredDeliveryDate":"2026-04-15","preferredDeliveryTime":"example","preferredPickupDate":"2026-04-15","publish":true,"purchaseOrderNumber":"example","transportMode":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://app.quatlasglobal.com/api/integrations/v1/shipment-requests \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "cargo": { "description": "example", "dimensions": "example", "exceedsStandard": true, "fragile": true, "hazardous": true, "maxStackLayers": 1, "maxTopLoadKg": 1, "outOfGauge": true, "packageCount": 1, "stackable": true, "standardType": "example", "temperatureMaxC": 1, "temperatureMinC": 1, "volumeM3": 1, "weightKg": 1 }, "costCenter": "example", "destination": { "addressLine": "example", "city": "example", "contactName": "example", "contactPhone": "example", "countryCode": "example", "handling": "example", "locationType": "example", "postalCode": "example", "unLocode": "example", "windowFrom": "example", "windowTo": "example" }, "externalReference": "example", "incoterm": "example", "isFlexibleSchedule": true, "metadata": "example", "modePolicy": "example", "notes": "example", "origin": { "addressLine": "example", "city": "example", "contactName": "example", "contactPhone": "example", "countryCode": "example", "handling": "example", "locationType": "example", "postalCode": "example", "unLocode": "example", "windowFrom": "example", "windowTo": "example" }, "preferredDeliveryDate": "2026-04-15", "preferredDeliveryTime": "example", "preferredPickupDate": "2026-04-15", "publish": true, "purchaseOrderNumber": "example", "transportMode": "example" }'Requires the requests:write scope and an X-Idempotency-Key header (the same key with a different body answers 422 Integration.IdempotencyKeyReused). A repeated externalReference returns 409 with the existing request’s id. With a test key (qk_test_…) the request goes to your sandbox and the answer says livemode: false.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”object
object
What is moved. Required, at most 500 characters.
Optional, at most 100 characters. Kept with the request and visible only to your company.
object
ISO 3166-1 alpha-2 country code. Required.
Your own id for the request (for example the eBA record number). Required, at most 100 characters, unique within your company: the same reference again returns 409 with the first request’s id.
An Incoterms 2020 code: EXW, FCA, FAS, FOB, CFR, CIF, CPT, CIP, DAP, DPU or DDP. Optional.
Your own fields on the request (a cost centre, a PO number, a process number): at most 20 keys of 1 to 40 characters from A-Z, a-z, 0-9, ‘_’ and ‘-’, string values of at most 500 characters, 8 KB in all. Visible only to your company: returned in your reads and in webhooks sent to you, never to a carrier or anyone else. Empty or absent: none.
Required (default) or Open.
object
ISO 3166-1 alpha-2 country code. Required.
False (default): the request is created as a Draft. True: it is also published to the open market when the acting member may publish.
Optional, at most 100 characters. Kept with the request and visible only to your company.
Road, Sea, Air, Rail, Multimodal or HandCarry. Leave empty with modePolicy Open.
Examplegenerated
{ "cargo": { "description": "example", "dimensions": "example", "exceedsStandard": true, "fragile": true, "hazardous": true, "maxStackLayers": 1, "maxTopLoadKg": 1, "outOfGauge": true, "packageCount": 1, "stackable": true, "standardType": "example", "temperatureMaxC": 1, "temperatureMinC": 1, "volumeM3": 1, "weightKg": 1 }, "costCenter": "example", "destination": { "addressLine": "example", "city": "example", "contactName": "example", "contactPhone": "example", "countryCode": "example", "handling": "example", "locationType": "example", "postalCode": "example", "unLocode": "example", "windowFrom": "example", "windowTo": "example" }, "externalReference": "example", "incoterm": "example", "isFlexibleSchedule": true, "metadata": "example", "modePolicy": "example", "notes": "example", "origin": { "addressLine": "example", "city": "example", "contactName": "example", "contactPhone": "example", "countryCode": "example", "handling": "example", "locationType": "example", "postalCode": "example", "unLocode": "example", "windowFrom": "example", "windowTo": "example" }, "preferredDeliveryDate": "2026-04-15", "preferredDeliveryTime": "example", "preferredPickupDate": "2026-04-15", "publish": true, "purchaseOrderNumber": "example", "transportMode": "example"}Responses
Section titled “Responses”Created
object
True for a live key. False for a test key (qk_test_…): the request is in the sandbox and never touches real data.
object
The request is on the market.
Why it was not published; the request stays a Draft a person can publish in the app.
You sent publish: true.
The request’s business number (REQ-048213): the number a person reads out and your system can store. Never changes.
Draft or Published.
Where a person opens the request in the app.
Examplegenerated
{ "externalReference": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "livemode": true, "publish": { "published": true, "refusalCode": "example", "refusalDetail": "example", "requested": true }, "requestNumber": "example", "status": "example", "webUrl": "example"}Bad Request
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Unauthorized
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Forbidden
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Conflict
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Unprocessable Entity
object
object
Examplegenerated
{ "detail": "example", "errors": { "additionalProperty": [ "example" ] }, "instance": "example", "status": 1, "title": "example", "type": "example"}Too Many Requests
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}