3DPACK.ING API
Container optimization in seconds. Two endpoints. That's it.
Quick Start
1. Get your API key
Sign up at 3dpack.ing → Subscribe to a plan → Receive API key by email
2. Test with demo credentials
apiKey: "test"
username: "test"
3. Make your first call
curl -X POST 'https://3dpack.ing/api/ai/calculate' \
-H 'Content-Type: application/json' \
-d '{
"prompt": "Pack 500 boxes of 100x100x100 mm into a 1m x 1m x 1m container",
"apiKey": "test",
"username": "test"
}'
Response:
{
"containers": [{
"containerType": "Custom",
"containerDims": {"length": 1000, "width": 1000, "height": 1000},
"totalQuantity": 500,
"volumeUsage": 50.0
}],
"linkToResult": "https://3dpack.ing?g=example-guid"
}
Endpoints
POST /api/ai/calculate
🤖 AI-Powered Natural Language API - Describe your shipping needs in plain English
Request
{
"prompt": "Ship 24 pcs 200.3x120.2x100.2 cm (non-tiltable) using optimal mix of 40ft and 20ft containers",
"apiKey": "test",
"username": "test"
}
Example Prompts
- "Pack 50 boxes of 60x40x30 cm into a 20ft container"
- "Load 100 fragile items (80x60x40cm, max stack 3) into 40ft high cube"
- "Ship mixed pallets: 10x euro pallets, 15x US pallets using best container mix"
Response
{
"containers": [
{
"containerType": "40ft Standard",
"containerDims": { "length": 1203.2, "width": 235.0, "height": 269.24 },
"totalQuantity": 20,
"volumeUsage": 63.4
},
{
"containerType": "20ft Standard",
"containerDims": { "length": 589.28, "width": 235.0, "height": 239.0 },
"totalQuantity": 4,
"volumeUsage": 29.2
}
],
"unpackedItems": { "total": 0 },
"linkToResult": "https://3dpack.ing?g=56455ed9-5339-4f46-8c41-cb7462f7aaa1"
}
cURL Example
curl -X POST https://3dpack.ing/api/ai/calculate \
-H "Content-Type: application/json" \
-d '{
"prompt": "Pack 50 boxes of 60x40x30 cm into a 20ft container",
"apiKey": "test",
"username": "test"
}'
💡 The AI understands units (cm, m, inches), constraints (fragile, non-tiltable), and container preferences
Integration Examples
const response = await fetch('https://3dpack.ing/api/ai/calculate', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
prompt: 'Pack 50 boxes of 60x40x30 cm into a 20ft container',
apiKey: 'YOUR_API_KEY',
username: 'YOUR_USERNAME'
})
});
const result = await response.json();
console.log(`3D Visualization: ${result.linkToResult}`);
console.log(`Containers used: ${result.containers.length}`);
import requests
response = requests.post(
'https://3dpack.ing/api/ai/calculate',
headers={'Content-Type': 'application/json'},
json={
'prompt': 'Pack 50 boxes of 60x40x30 cm into a 20ft container',
'apiKey': 'YOUR_API_KEY',
'username': 'YOUR_USERNAME'
}
)
result = response.json()
print(f"3D Visualization: {result['linkToResult']}")
print(f"Containers used: {len(result['containers'])}")
var client = new HttpClient();
var data = new {
prompt = "Pack 50 boxes of 60x40x30 cm into a 20ft container",
apiKey = "YOUR_API_KEY",
username = "YOUR_USERNAME"
};
var response = await client.PostAsJsonAsync(
"https://3dpack.ing/api/ai/calculate",
data
);
var result = await response.Content.ReadFromJsonAsync();
Console.WriteLine($"3D Visualization: {result.linkToResult}");
OkHttpClient client = new OkHttpClient();
String json = "{\"prompt\":\"Pack 50 boxes of 60x40x30 cm into a 20ft container\"," +
"\"apiKey\":\"YOUR_API_KEY\",\"username\":\"YOUR_USERNAME\"}";
Request request = new Request.Builder()
.url("https://3dpack.ing/api/ai/calculate")
.post(RequestBody.create(json, MediaType.parse("application/json")))
.build();
Response response = client.newCall(request).execute();
String result = response.body().string();