Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.1",
"info": {
"title": "UPLOAD - Air, Sea, Road (EU), Rail (DEMO)",
"description": "Upload available documents for your bookings and shipments moved by DSV. Supported transport modes: Air, Sea, Road (EU) and Rail.",
"version": "v1"
},
"servers": [
{
"url": "https://api.dsv.com/my-demo/upload/v1"
}
],
"paths": {
"/shipments/bookingId/{type}/{bookingId}": {
"post": {
"tags": [
"Upload attachment using Booking ID"
],
"summary": "Upload attachment using Booking Id",
"description": "Upload attachment to shipment. Allowed types: \"CUS\", \"GDS\",\"HAZ\", \"INV\", \"PKL\"",
"operationId": "uploadDocumentByBookingId",
"parameters": [
{
"name": "bookingId",
"in": "path",
"description": "Unique identifier of the DSV booking",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "type",
"in": "path",
"description": "Allowed types:\n- CUS - Customs Declaration\n- GDS - Other Goods Document\n- HAZ - Dangerous Goods Document\n- INV - Commercial Invoice\n- PKL - Packing list",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "DSV-Service-Auth",
"in": "header",
"description": "Basic Auth header - Will be deprecated",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "Oauth header",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "It is not possible to delete documents which have been uploaded via the API to DSV\n\nAll files are scanned for antimalware and the Maximum file size is 3MB.\n\nHere is a list of the most used content-types:\n- .xls = Content-Type: application/vnd.ms-excel\n- .xlsx = Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\n- .pdf = Content-Type: application/pdf\n- .txt = Content-Type: text/plain\n- .doc = Content-Type: application/msword\n- .docx = Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document\n- .ppt = Content-Type: application/vnd.ms-powerpoint\n- .pptx = Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation\n- .jpg = Content-Type: image/x-citrix-jpeg\n- .jpeg = Content-Type: image/x-citrix-jpeg\n- .png = Content-Type: image/x-png\n- .bmp = Content-Type: image/bmp\n- .json = Content-Type: application/json\n- .zip = Content-Type: application/zip",
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"file": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"responses": {
"201": {
"description": "File uploaded successfully",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": "Created"
}
}
},
"400": {
"description": "Request contains not valid data",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": {
"id": "73f3adf3-c508-4498-b618-5afa042956af",
"message": "Incorrect type"
}
}
}
},
"401": {
"description": "Not authorized",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": {
"Code": 401,
"Message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}
}
}
},
"403": {
"description": "Lack of privileges to use this method",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": {
"code": 403,
"message": "Access denied due to missing API role. Please contact DSV via email at developer.support@dsv.com"
}
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": "Internal Server Error"
}
}
}
}
}
},
"/shipments/tmsId/{type}/{tmsId}": {
"post": {
"tags": [
"Upload attachment using Shipment Id"
],
"summary": "Upload attachment using Shipment Id",
"description": "Upload an attachment to a shipment identified by TMSID. TMSID is the DSV Shipment ID (also referred to as 'shipmentId' in some UI screens). Allowed document types: CUS, GDS, HAZ, INV, PKL.",
"operationId": "uploadDocumentByShipmentId",
"parameters": [
{
"name": "tmsId",
"in": "path",
"description": "Unique identifier for the DSV shipment (TMSID = Shipment ID).",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "type",
"in": "path",
"description": "Allowed types:\n- CUS - Customs Declaration\n- GDS - Other Goods Document\n- HAZ - Dangerous Goods Document\n- INV - Commercial Invoice\n- PKL - Packing list",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "DSV-Service-Auth",
"in": "header",
"description": "Basic Auth header - Will be deprecated",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"in": "header",
"description": "Oauth header",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "It is not possible to delete documents which have been uploaded via the API to DSV\n\nAll files are scanned for antimalware and the Maximum file size is 3MB.\n\nHere is a list of the most used content-types:\n- .xls = Content-Type: application/vnd.ms-excel\n- .xlsx = Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\n- .pdf = Content-Type: application/pdf\n- .txt = Content-Type: text/plain\n- .doc = Content-Type: application/msword\n- .docx = Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document\n- .ppt = Content-Type: application/vnd.ms-powerpoint\n- .pptx = Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation\n- .jpg = Content-Type: image/x-citrix-jpeg\n- .jpeg = Content-Type: image/x-citrix-jpeg\n- .png = Content-Type: image/x-png\n- .bmp = Content-Type: image/bmp\n- .json = Content-Type: application/json\n- .zip = Content-Type: application/zip",
"content": {
"multipart/form-data": {
"schema": {
"properties": {
"file": {
"type": "string",
"format": "binary"
}
}
}
}
}
},
"responses": {
"201": {
"description": "File uploaded successfully",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": "string"
}
}
},
"400": {
"description": "Request contains not valid data",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": "string"
}
}
},
"401": {
"description": "Not authorized",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": "string"
}
}
},
"403": {
"description": "Lack of privileges to use this method",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": "string"
}
}
},
"500": {
"description": "Internal Server Error",
"content": {
"application/json": {
"schema": {
"type": "string"
},
"example": "string"
}
}
}
}
}
}
},
"components": {
"securitySchemes": {
"apiKeyHeader": {
"type": "apiKey",
"name": "DSV-Subscription-Key",
"in": "header"
},
"apiKeyQuery": {
"type": "apiKey",
"name": "DSV-Subscription-Key",
"in": "query"
}
}
},
"security": [
{
"apiKeyHeader": []
},
{
"apiKeyQuery": []
}
]
}