REST API · v1

GigFreight API

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.

Current version
v1
API style
REST
Response format
JSON
Plan required
Elite

Overview

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.

Authentication

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 key

Base URL

https://gigfreight.com/api/v1

All endpoints are relative to this base URL. Use HTTPS.

Endpoints

GET/api/v1/marketplace/loads

Returns 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.

Query parameters

ParameterTypeRequiredDescription
origin_countrystringNoOrigin country as shown on the load (e.g. Germany); case-insensitive exact match
destination_countrystringNoDestination country, same format
vehicle_typestringNoVehicle type id, e.g. curtainsider, dry_van, reefer, flatbed
regionstringNoOne of your markets: eu, uk, tr or us
pageintegerNoPage number, default 1
limitintegerNoItems per page, default 20, max 100

Response format

{
  "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
  }
}

Error codes

HTTP statusMeaning
200 OKRequest succeeded.
401 UnauthorizedMissing, invalid or revoked API key.
402 Payment RequiredThe account has no active subscription or valid trial.
403 ForbiddenThe plan does not include API access (Elite only), or the account is suspended.
429 Too Many RequestsRate limit exceeded. Retry after the number of seconds in the Retry-After header.
500 Internal Server ErrorThe query failed. Contact partners@gigfreight.com if it persists.
503 Service UnavailableThe API is temporarily unavailable.

Rate limits

LimitRequests / minuteRequests / day
Per API key6010,000
Per client IP address120—

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.

Plan requirements

Standard
  • No API access
  • Full use of the platform in the browser
  • Upgrade to Elite for API keys
Elite
  • Read access to GET /loads (standard and Elite loads in your markets)
  • Up to 5 API keys
  • Also during an Elite trial
  • 60 requests/min, 10,000/day per key

See Pricing for full plan comparison.

Code examples

cURL

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"

JavaScript / fetch

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}`)
})

Python

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']}")

Changelog

v1.1October 2026
  • Rate limits per key and per client IP, with X-RateLimit-* and Retry-After headers
  • Revoked keys can no longer be re-activated
  • API access enforced as an Elite-plan feature (as in the Terms); 402 / 403 meanings documented
v1.0June 2026
  • GET /loads with pagination and filtering
  • API key management in the dashboard (up to 5 keys)

Ready to integrate?

Start the Elite plan or an Elite trial and generate your first key under Settings → API Keys.