FRAYT · Schema

RestrictedUpdateMatchRequest

PATCH body for updating a Match that has not been picked up yet. To update the following fields, you must cancel the match and create a new one: `vehicle_class`, `service_level`, `unload_method`, `has_load_fee`

CompanyLast Mile DeliveryLogisticsCouriersOn-Demand DeliveryShippingFreightSupply ChainTransportationThird Party LogisticsDelivery TrackingWebhook

Properties

Name Type Description
accessorials array List of unique keys for required accessorials services
bill_of_lading_required boolean DEPRECATED: For a pickup and dropoff photo of the bill of lading, set `signature_required` to `true` and `signature_type` to `photo` on the stop level. You will receive the pickup photo of the bill
contract stringnull If you have customized agreed-upon pricing with FRAYT, you will need to setup a corresponding contract identifier provided to you by the FRAYT team. Pricing defaults to our standard rates with the ide
dropoff_at stringnull Scheduled date & time the final stop is to be delivered by
identifier stringnull Unique identifier from external system. This will be returned in all responses, including webhooks.
label objectnull Label for this Match
optimize boolean Set to true if you want stops to be reordered in the most optimal route
origin_address object The pickup point for this Match
origin_photo_required boolean Whether this Match requires a photo of the origin address
parking_spot_required boolean Whether the driver should provide their parking spot ID
pickup_at stringnull Scheduled pick up date & time
pickup_notes stringnull Instructions for Driver when picking up
platform stringnull The platform on which this match is being created
po stringnull PO or Job Number for this Match
preferred_driver_email stringnull The email of your preferred driver. The email of your preferred driver. Setting either the preferred_driver_email or preferred_driver_id fields will cause the match to be created as a preferred driver
preferred_driver_id stringnull The id of your preferred driver. The email of your preferred driver. Setting either the preferred_driver_email or preferred_driver_id fields will cause the match to be created as a preferred driver ma
route_identifier stringnull If this is a recurring route please provide your identifier to this field.
schedule_id stringnull Unique identifier for the schedule this recurring Match belongs to
scheduled boolean If this Match is scheduled
self_sender boolean When set to `true`, `sender` will be ignored
sender objectnull The senders contact information, if different than the shippers
stops array Stops
View JSON Schema on GitHub

JSON Schema

frayt-restricted-update-match-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/frayt/main/json-schema/frayt-restricted-update-match-request-schema.json",
  "title": "RestrictedUpdateMatchRequest",
  "description": "PATCH body for updating a Match that has not been picked up yet.\n\nTo update the following fields, you must cancel the match and create a new one: `vehicle_class`, `service_level`, `unload_method`, `has_load_fee`\n",
  "x-generated": "2026-10-20",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/frayt-matches-api-openapi.yml#/components/schemas/RestrictedUpdateMatchRequest",
  "properties": {
    "accessorials": {
      "description": "List of unique keys for required accessorials services",
      "items": {
        "$ref": "#/$defs/Accessorial"
      },
      "type": "array"
    },
    "bill_of_lading_required": {
      "default": false,
      "description": "<i>DEPRECATED: For a pickup and dropoff photo of the bill of lading, set `signature_required` to `true` and `signature_type` to `photo` on the stop level. You will receive the pickup photo of the bill of lading at `match.signature_photo` and the delivery photo of the bill of lading at `match.stops[].signature_photo`.</i> <br/><br/>Whether this Match requires a bill of lading photo on pickup",
      "type": "boolean"
    },
    "contract": {
      "description": "If you have customized agreed-upon pricing with FRAYT, you will need to setup a corresponding contract identifier provided to you by the FRAYT team. Pricing defaults to our standard rates with the identifier in place.",
      "type": [
        "string",
        "null"
      ]
    },
    "dropoff_at": {
      "description": "Scheduled date & time the final stop is to be delivered by",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "identifier": {
      "description": "Unique identifier from external system. This will be returned in all responses, including webhooks.",
      "type": [
        "string",
        "null"
      ]
    },
    "label": {
      "description": "Label for this Match",
      "oneOf": [
        {
          "$ref": "#/$defs/Label"
        }
      ],
      "type": [
        "object",
        "null"
      ]
    },
    "optimize": {
      "description": "Set to true if you want stops to be reordered in the most optimal route",
      "type": "boolean"
    },
    "origin_address": {
      "description": "The pickup point for this Match",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "#/$defs/AddressRequest"
        }
      ],
      "type": "object"
    },
    "origin_photo_required": {
      "description": "Whether this Match requires a photo of the origin address",
      "type": "boolean"
    },
    "parking_spot_required": {
      "description": "Whether the driver should provide their parking spot ID",
      "type": "boolean"
    },
    "pickup_at": {
      "description": "Scheduled pick up date & time",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "pickup_notes": {
      "description": "Instructions for Driver when picking up",
      "type": [
        "string",
        "null"
      ]
    },
    "platform": {
      "default": "marketplace",
      "description": "The platform on which this match is being created",
      "type": [
        "string",
        "null"
      ]
    },
    "po": {
      "description": "PO or Job Number for this Match",
      "type": [
        "string",
        "null"
      ]
    },
    "preferred_driver_email": {
      "description": "The email of your preferred driver. The email of your preferred driver. Setting either the preferred_driver_email or preferred_driver_id fields will cause the match to be created as a preferred driver match. If a matching driver is not found then the preferred driver match will be created but without a preferred driver and a match update request will need to be made to attach a preferred driver.",
      "type": [
        "string",
        "null"
      ]
    },
    "preferred_driver_id": {
      "description": "The id of your preferred driver. The email of your preferred driver. Setting either the preferred_driver_email or preferred_driver_id fields will cause the match to be created as a preferred driver match. If a matching driver is not found then the preferred driver match will be created but without a preferred driver and a match update request will need to be made to attach a preferred driver.",
      "type": [
        "string",
        "null"
      ]
    },
    "route_identifier": {
      "description": "If this is a recurring route please provide your identifier to this field.",
      "type": [
        "string",
        "null"
      ]
    },
    "schedule_id": {
      "description": "Unique identifier for the schedule this recurring Match belongs to",
      "type": [
        "string",
        "null"
      ]
    },
    "scheduled": {
      "description": "If this Match is scheduled",
      "type": "boolean"
    },
    "self_sender": {
      "default": true,
      "description": "When set to `true`, `sender` will be ignored",
      "type": "boolean"
    },
    "sender": {
      "description": "The senders contact information, if different than the shippers",
      "oneOf": [
        {
          "$ref": "#/$defs/Contact"
        }
      ],
      "type": [
        "object",
        "null"
      ]
    },
    "stops": {
      "description": "Stops",
      "items": {
        "$ref": "#/$defs/Update_MatchStop"
      },
      "minItems": 1,
      "type": "array"
    }
  },
  "type": "object",
  "$defs": {
    "Accessorial": {
      "description": "An add-on service for a shipment",
      "properties": {
        "key": {
          "description": "Unique key for Accessorial",
          "type": "string"
        }
      },
      "title": "Accessorial",
      "type": "object"
    },
    "AddressRequest": {
      "description": "A Goecoded address",
      "properties": {
        "address": {
          "description": "Address line 1",
          "type": "string"
        },
        "address2": {
          "description": "Address line 2",
          "type": [
            "string",
            "null"
          ]
        },
        "city": {
          "description": "City",
          "type": "string"
        },
        "country_code": {
          "description": "Country",
          "type": "string"
        },
        "lat": {
          "description": "Latitude point of address",
          "format": "float",
          "type": "number"
        },
        "lng": {
          "description": "Longitude point of address",
          "format": "float",
          "type": "number"
        },
        "name": {
          "description": "The name of this address. This could be a store name, a park, or any other name",
          "type": [
            "string",
            "null"
          ]
        },
        "neighborhood": {
          "description": "The general neighborhood the address is located in",
          "type": [
            "string",
            "null"
          ]
        },
        "state_code": {
          "description": "State code (e.g. OH)",
          "type": "string"
        },
        "zip": {
          "description": "Zipcode",
          "type": "string"
        }
      },
      "required": [
        "address",
        "city",
        "state_code",
        "zip",
        "country_code",
        "lat",
        "lng"
      ],
      "title": "AddressRequest",
      "type": "object"
    },
    "Contact": {
      "description": "A contact",
      "properties": {
        "email": {
          "description": "Contact's email address",
          "format": "email",
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "description": "Contact's first name and last name",
          "type": "string"
        },
        "notify": {
          "description": "Set to `false` if the contact should not receive SMS and email notifications regarding the status of this shipment",
          "type": "boolean"
        },
        "phone_number": {
          "description": "Contact's phone number in the general international format for telephone numbers (E.164)",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "name"
      ],
      "title": "Contact",
      "type": "object"
    },
    "Label": {
      "description": "A label containing a format and a value used for generating a barcode or QR code.",
      "properties": {
        "format": {
          "description": "The format of the label",
          "enum": [
            "code_128",
            "qr_code",
            "code_39"
          ],
          "type": "string"
        },
        "value": {
          "description": "The value of the label",
          "type": "string"
        }
      },
      "title": "Label",
      "type": "object"
    },
    "UpdateMatchStopItem": {
      "description": "An Item to be delivered to a stop",
      "properties": {
        "barcode": {
          "description": "Value of barcode to be scanned for this item",
          "type": [
            "string",
            "null"
          ]
        },
        "barcode_delivery_required": {
          "description": "Barcode reading is required for this item on delivery",
          "type": "boolean"
        },
        "barcode_pickup_required": {
          "description": "Barcode reading is required for this item on pickup",
          "type": "boolean"
        },
        "container_barcode": {
          "description": "Value of barcode for the container this item is in",
          "type": [
            "string",
            "null"
          ]
        },
        "declared_value": {
          "description": "Declared value of the item being shipped in US cents (¢)",
          "type": "integer"
        },
        "description": {
          "type": "string"
        },
        "height": {
          "description": "Individual height of each piece in inches",
          "type": [
            "number",
            "null"
          ]
        },
        "id": {
          "description": "Unique identifier for Match Stop Item. Ensure this is present to update an existing item instead of replacing it.",
          "type": [
            "string",
            "null"
          ]
        },
        "length": {
          "description": "Individual length of each piece in inches",
          "type": [
            "number",
            "null"
          ]
        },
        "pieces": {
          "description": "Number of items that match these dimensions",
          "type": "integer"
        },
        "stop_id": {
          "description": "Unique identifier for Match Stop",
          "type": "string"
        },
        "type": {
          "default": "item",
          "description": "Type of item. When at least one item is a pallet, `needs_pallet_jack` will be an avaialable add-on.",
          "enum": [
            "item",
            "pallet",
            "lumber",
            "sheet_rock",
            "tv"
          ],
          "type": "string"
        },
        "volume": {
          "description": "Individual volume of each piece in cubic inches (in³). If left empty, it will be calculated automatically based off of other dimensions",
          "type": [
            "integer",
            "null"
          ]
        },
        "weight": {
          "description": "Individual weight of each piece in pounds",
          "type": "number"
        },
        "width": {
          "description": "Individual width of each piece in inches",
          "type": [
            "number",
            "null"
          ]
        }
      },
      "title": "UpdateMatchStopItem",
      "type": "object"
    },
    "Update_MatchStop": {
      "description": "Body for updating a Match Stop.",
      "properties": {
        "cargo_location_required": {
          "description": "Whether a cargo location is required for this stop",
          "type": "boolean"
        },
        "delivery_notes": {
          "description": "Notes for the driver regarding delivery",
          "type": [
            "string",
            "null"
          ]
        },
        "destination_address": {
          "description": "The dropoff point for this Stop",
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "#/$defs/AddressRequest"
            }
          ],
          "type": "object"
        },
        "destination_photo_required": {
          "description": "Whether a POD photo is required",
          "type": "boolean"
        },
        "dropoff_by": {
          "description": "The latest the driver should arrive at this Stop",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "has_load_fee": {
          "default": true,
          "description": "Set to `true` if the driver will be required to unload the items",
          "type": "boolean"
        },
        "id": {
          "description": "Unique identifier for Match Stop. Ensure this is present to update an existing stop instead of replacing it.",
          "type": "string"
        },
        "id_verification_required": {
          "default": false,
          "description": "Whether ID verification is required",
          "type": "boolean"
        },
        "id_verified_at": {
          "description": "Time the recipient's ID was verified",
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "identifier": {
          "description": "Unique identifier from external system. This will be returned in all responses, including webhooks.",
          "type": [
            "string",
            "null"
          ]
        },
        "items": {
          "description": "Items to be delivered at this Stop",
          "items": {
            "$ref": "#/$defs/UpdateMatchStopItem"
          },
          "minItems": 1,
          "type": "array"
        },
        "minimum_age": {
          "description": "Minimum age required for delivery",
          "type": [
            "integer",
            "null"
          ]
        },
        "needs_pallet_jack": {
          "default": false,
          "description": "Set to `true` if the driver will be required to unload pallets from a box truck with a pallet jack",
          "type": "boolean"
        },
        "po": {
          "description": "PO or Job Number for this Match Stop",
          "type": [
            "string",
            "null"
          ]
        },
        "recipient": {
          "description": "Contact for this stop's recipient",
          "oneOf": [
            {
              "$ref": "#/$defs/Contact"
            }
          ],
          "type": [
            "object",
            "null"
          ]
        },
        "self_recipient": {
          "default": true,
          "description": "When set to `true`, `recipient_name`, `recipient_phone`, and `recipient_email` will be ignored",
          "type": "boolean"
        },
        "signature_instructions": {
          "description": "Required for photo signatures. Instructions for the driver to sign",
          "type": [
            "string",
            "null"
          ]
        },
        "signature_required": {
          "description": "When set to `true`, Drivers will require requesting the customer's signature at delivery time.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "signature_type": {
          "default": "electronic",
          "description": "Type of signature required",
          "enum": [
            "photo",
            "electronic",
            "electronic_bill_of_lading"
          ],
          "type": [
            "string",
            "null"
          ]
        },
        "tip_price": {
          "default": 0,
          "description": "Additional tip for the driver in US cents (¢)",
          "type": "integer"
        }
      },
      "title": "Update MatchStop",
      "type": "object"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/frayt-restricted-update-match-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.