{
  "info": {
    "_postman_id": "f7c1a0e2-6b34-4c8d-9f21-3ad5be7c4410",
    "name": "FreightAtScale Rates API (v1)",
    "description": "Public rates API for FreightAtScale partners.\n\nSETUP\n1. Set the `apiKey` variable to the key issued to you (fas_live_… or fas_test_…).\n2. Set `baseUrl` — it defaults to production; switch it to https://api-uat.freightatscale.com when testing with a fas_test_ key.\n\nCollection-level auth attaches the key as a bearer token to every request, so individual requests carry no auth of their own. An X-API-Key header is accepted as an equivalent alternative if your tooling prefers it.\n\nYour key is shown once at issuance and cannot be recovered — store it somewhere safe. Full reference: https://docs.freightatscale.com",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.freightatscale.com",
      "type": "string",
      "description": "Production. Use https://api-uat.freightatscale.com with a fas_test_ key."
    },
    {
      "key": "apiKey",
      "value": "",
      "type": "string",
      "description": "The key issued to you. Shown once at issuance and not recoverable."
    },
    {
      "key": "rateId",
      "value": "",
      "type": "string",
      "description": "A rate id from a Search Rates response, for \"Get Rate by ID\"."
    }
  ],
  "item": [
    {
      "name": "Who Am I",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/public/v1/whoami",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "public",
            "v1",
            "whoami"
          ]
        },
        "description": "Confirms your key works and reports what it can do. No parameters. Start here when integrating — it distinguishes \"my key is wrong\" from \"no rates matched\"."
      },
      "response": []
    },
    {
      "name": "Search Rates",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/public/v1/rates?origin=INNSA&destination=Rotterdam",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "public",
            "v1",
            "rates"
          ],
          "query": [
            {
              "key": "origin",
              "value": "INNSA",
              "description": "Port name, UN/LOCODE or alias. Repeat the key or comma-separate for several."
            },
            {
              "key": "destination",
              "value": "Rotterdam",
              "description": "Same as origin."
            },
            {
              "key": "carrier",
              "value": "",
              "description": "Case-insensitive exact match. See \"List Carriers\".",
              "disabled": true
            },
            {
              "key": "mode",
              "value": "sea",
              "description": "air | sea",
              "disabled": true
            },
            {
              "key": "equipment",
              "value": "40HC",
              "description": "Container code, e.g. 40HC, 20GP.",
              "disabled": true
            },
            {
              "key": "rateType",
              "value": "contract",
              "description": "contract | spot",
              "disabled": true
            },
            {
              "key": "search",
              "value": "",
              "description": "Free text across origin, destination and region.",
              "disabled": true
            },
            {
              "key": "includeExpired",
              "value": "false",
              "description": "Default false.",
              "disabled": true
            },
            {
              "key": "page",
              "value": "1",
              "description": "Default 1.",
              "disabled": true
            },
            {
              "key": "limit",
              "value": "50",
              "description": "Default 50, max 200.",
              "disabled": true
            }
          ]
        },
        "description": "Searches the rate library. Every filter is AND-ed; a filter that accepts a list matches any of its values. Port terms are expanded against known names, codes and aliases, so INNSA, \"Nhava Sheva\" and \"Jawaharlal Nehru\" all match a rate recorded as \"Nhava Sheva / Mumbai\".\n\nExpired rates are excluded unless includeExpired=true; a rate with no resolvable expiry is never treated as expired.\n\nNOTE: unknown query parameters return 400 rather than being ignored — disable the params you do not want rather than renaming them."
      },
      "response": []
    },
    {
      "name": "List Carriers",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/public/v1/rates/carriers",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "public",
            "v1",
            "rates",
            "carriers"
          ]
        },
        "description": "Carriers present in the library and the rate types available for each. Use it to discover valid `carrier` filter values instead of guessing at our spelling."
      },
      "response": []
    },
    {
      "name": "Get Rate by ID",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/public/v1/rates/{{rateId}}",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "public",
            "v1",
            "rates",
            "{{rateId}}"
          ]
        },
        "description": "One rate by id. Ignores expiry, so an id you stored earlier keeps resolving rather than silently becoming a 404."
      },
      "response": []
    }
  ]
}
