REST API · v1
Integrate US, UK and European freight data directly into your TMS, ERP, or custom application. Access live loads, filter by country and vehicle type, and automate your freight operations.
This page covers the marketplaceendpoint: it lists live, real loads in the markets your account can access, with filters and pagination. To post and manage your own company’s loads, see the developer guide (company API). Typical uses:
TMS integration
Pull current loads from your markets into your Transport Management System.
Automation
Poll for new loads that fit your filters.
Custom dashboards
Show GigFreight loads in your own tools.
What is excluded
Expired loads and all contact details are never returned.
All API requests must include your API key in the Authorization header as a Bearer token. API access is part of the Elite plan: Elite subscribers (including an Elite trial) create up to 5 keys underSettings → API Keys. Keys stop working while the account has no active Elite plan.
Keep your API key secret. Never expose it in client-side JavaScript, Git repositories, or public URLs. If a key is ever exposed, revoke it in your dashboard and create a new one.
GET /api/v1/marketplace/loads HTTP/1.1
Host: gigfreight.com
Authorization: Bearer gf_your_api_key_here
Accept: application/json Get your API keyhttps://gigfreight.com/api/v1All endpoints are relative to this base URL. Use HTTPS.
/api/v1/marketplace/loadsReturns a paginated list of live loads (status available or interested, pickup date today or later) in your account's markets: EU and UK accounts see EU + UK, TR accounts EU + UK + TR, US accounts US. Elite-visibility loads are included only for Elite plans. Addresses, notes and contact details are never returned.
| Parameter | Type | Required | Description |
|---|---|---|---|
| origin_country | string | No | Origin country as shown on the load (e.g. Germany); case-insensitive exact match |
| destination_country | string | No | Destination country, same format |
| vehicle_type | string | No | Vehicle type id, e.g. curtainsider, dry_van, reefer, flatbed |
| region | string | No | One of your markets: eu, uk, tr or us |
| page | integer | No | Page number, default 1 |
| limit | integer | No | Items per page, default 20, max 100 |
{
"data": [
{
"id": "uuid",
"status": "available",
"visibility": "standard",
"region": "eu",
"pickup_city": "Warsaw",
"origin_country": "Poland",
"pickup_date": "2026-07-15",
"delivery_city": "Berlin",
"destination_country": "Germany",
"delivery_date": "2026-07-16",
"vehicle_type": "curtainsider",
"weight_kg": 18000,
"distance_km": 575,
"rate": 1250.00,
"currency": "EUR",
"commodity": "Automotive parts",
"created_at": "2026-06-30T08:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 148,
"pages": 8
}
}| HTTP status | Meaning |
|---|---|
| 200 OK | Request succeeded. |
| 401 Unauthorized | Missing, invalid or revoked API key. |
| 402 Payment Required | The account has no active subscription or valid trial. |
| 403 Forbidden | The plan does not include API access (Elite only), or the account is suspended. |
| 429 Too Many Requests | Rate limit exceeded. Retry after the number of seconds in the Retry-After header. |
| 500 Internal Server Error | The query failed. Contact partners@gigfreight.com if it persists. |
| 503 Service Unavailable | The API is temporarily unavailable. |
| Limit | Requests / minute | Requests / day |
|---|---|---|
| Per API key | 60 | 10,000 |
| Per client IP address | 120 | — |
Successful and refused responses carry X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (Unix time) for your key; a 429 response also carries Retry-After.
See Pricing for full plan comparison.
curl -X GET "https://gigfreight.com/api/v1/marketplace/loads?origin_country=PL&destination_country=DE&page=1" \
-H "Authorization: Bearer gf_your_api_key" \
-H "Accept: application/json"const response = await fetch(
'https://gigfreight.com/api/v1/marketplace/loads?origin_country=PL&vehicle_type=curtainsider',
{
headers: {
'Authorization': 'Bearer gf_your_api_key',
'Accept': 'application/json',
},
}
)
const { data, pagination } = await response.json()
console.log(`Found ${pagination.total} loads`)
data.forEach(load => {
console.log(`${load.pickup_city} → ${load.delivery_city}: €${load.rate}`)
})import requests
API_KEY = "gf_your_api_key"
BASE_URL = "https://gigfreight.com/api/v1"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Accept": "application/json",
}
params = {
"origin_country": "DE",
"destination_country": "FR",
"limit": 50,
"page": 1,
}
response = requests.get(f"{BASE_URL}/loads", headers=headers, params=params)
response.raise_for_status()
result = response.json()
print(f"Found {result['pagination']['total']} loads")
for load in result["data"]:
print(f"{load['pickup_city']} → {load['delivery_city']}: €{load['rate']}")Start the Elite plan or an Elite trial and generate your first key under Settings → API Keys.