FRAYT · Schema

MatchStopResponse

Response schema showing the stop

CompanyLast Mile DeliveryLogisticsCouriersOn-Demand DeliveryShippingFreightSupply ChainTransportationThird Party LogisticsDelivery TrackingWebhook

Properties

Name Type Description
arrived_at string Time the driver arrived at the Stop
cargo_location string Location where the cargo was left
cargo_location_required boolean Whether a cargo location is required for this stop
delivered_at string Time the Stop was delivered
delivery_notes stringnull Notes for the driver regarding delivery
destination_address object The dropoff point for this Stop
destination_photo string DEPRECATED - URL linking to POD photo, will be fully replaced by `destinaton_photos`
destination_photo_required boolean Whether a POD photo is required
destination_photos array List of URLs linking to POD photos
driver_tip number Additional tip for the driver in US dollars ($)
dropoff_by stringnull The latest the driver should arrive at this Stop
electronic_bill_of_lading_photo string URL linking to EBoL photo
has_load_fee boolean Set to `true` if the driver will be required to unload the items
id string Unique identifier for Match Stop
id_verification_required boolean Whether ID verification is required
id_verified_at string Time the id was verified
identifier stringnull Unique identifier from external system. This will be returned in all responses, including webhooks.
index integer DEPRECATED (look at route_index, instead) - The order that each Stop will be delivered in.
items array Items to be delivered at this Stop
minimum_age integer Minimum age required for delivery
needs_pallet_jack boolean Set to `true` if the driver will be required to unload pallets from a box truck with a pallet jack
po stringnull PO or Job Number for this Match Stop
recipient objectnull Contact for this stop's recipient
route_index integer The order that each Stop will be delivered in.
self_recipient boolean When set to `true`, `recipient_name`, `recipient_phone`, and `recipient_email` will be ignored
signature_instructions stringnull Required for photo signatures. Instructions for the driver to sign
signature_name string Name entered by the signee when accepting the delivery
signature_photo string URL linking to photo of signees signature
signature_required booleannull When set to `true`, Drivers will require requesting the customer's signature at delivery time.
signature_type stringnull Type of signature required
state string Current Stop state.

A successful Match Stop will transition through some or all of these states:
Pending –> En Route –> Arrived –> Signed –> Delivered –> Returned
Re Routed thi
state_transition object
timeframe object Timeframes for this Stop
tracking_url string URL to track the delivery
travel_duration integer Travel Duration to this Stop
undeliverable_at stringnull Time the Stop was marked as unable to be delivered
undeliverable_code stringnull Reason a Stop was marked as unable to be delivered
View JSON Schema on GitHub

JSON Schema

frayt-match-stop-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/frayt/main/json-schema/frayt-match-stop-response-schema.json",
  "title": "MatchStopResponse",
  "description": "Response schema showing the stop",
  "x-generated": "2026-10-20",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/frayt-matches-api-openapi.yml#/components/schemas/MatchStopResponse",
  "properties": {
    "arrived_at": {
      "description": "Time the driver arrived at the Stop",
      "format": "date-time",
      "type": "string"
    },
    "cargo_location": {
      "description": "Location where the cargo was left",
      "enum": [
        "left_at_front_door",
        "left_at_mailroom_concierge",
        "left_at_side_rear_door",
        "left_with_neighbour",
        "left_behind_gate_fence",
        "left_at_lobby_entry_way",
        "handed_to_customer"
      ],
      "type": "string"
    },
    "cargo_location_required": {
      "description": "Whether a cargo location is required for this stop",
      "type": "boolean"
    },
    "delivered_at": {
      "description": "Time the Stop was delivered",
      "format": "date-time",
      "type": "string"
    },
    "delivery_notes": {
      "description": "Notes for the driver regarding delivery",
      "type": [
        "string",
        "null"
      ]
    },
    "destination_address": {
      "description": "The dropoff point for this Stop",
      "oneOf": [
        {
          "$ref": "#/$defs/Address"
        }
      ],
      "type": "object"
    },
    "destination_photo": {
      "description": "DEPRECATED - URL linking to POD photo, will be fully replaced by `destinaton_photos`",
      "format": "uri",
      "type": "string"
    },
    "destination_photo_required": {
      "description": "Whether a POD photo is required",
      "type": "boolean"
    },
    "destination_photos": {
      "description": "List of URLs linking to POD photos",
      "type": "array"
    },
    "driver_tip": {
      "description": "Additional tip for the driver in US dollars ($)",
      "format": "double",
      "type": "number"
    },
    "dropoff_by": {
      "description": "The latest the driver should arrive at this Stop",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "electronic_bill_of_lading_photo": {
      "description": "URL linking to EBoL photo",
      "format": "uri",
      "type": "string"
    },
    "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",
      "type": "string"
    },
    "id_verification_required": {
      "description": "Whether ID verification is required",
      "type": "boolean"
    },
    "id_verified_at": {
      "description": "Time the id was verified",
      "format": "date-time",
      "type": "string"
    },
    "identifier": {
      "description": "Unique identifier from external system. This will be returned in all responses, including webhooks.",
      "type": [
        "string",
        "null"
      ]
    },
    "index": {
      "description": "DEPRECATED (look at route_index, instead) - The order that each Stop will be delivered in.",
      "type": "integer"
    },
    "items": {
      "description": "Items to be delivered at this Stop",
      "items": {
        "$ref": "#/$defs/MatchStopItem"
      },
      "minItems": 1,
      "type": "array"
    },
    "minimum_age": {
      "description": "Minimum age required for delivery",
      "type": "integer"
    },
    "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"
      ]
    },
    "route_index": {
      "description": "The order that each Stop will be delivered in.",
      "type": "integer"
    },
    "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_name": {
      "description": "Name entered by the signee when accepting the delivery",
      "type": "string"
    },
    "signature_photo": {
      "description": "URL linking to photo of signees signature",
      "format": "uri",
      "type": "string"
    },
    "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"
      ]
    },
    "state": {
      "description": "Current Stop state.<br/>\n<br/>A successful Match Stop will transition through some or all of these states:<br/>\nPending –> En Route –> Arrived –> Signed –> Delivered –> Returned\n<hr/>\nRe Routed <i>this is a dummy stop for recordkeeping purposes. The original stop has been modified.</i><br/>Unserved <i>this stop was unable to be served in a Match. This state is only possible for Batches. A reason will be provided.</i><br/>Undeliverable <i>the driver was unable to deliver this stop. A reason will be provided.</i><br/>Pending <i>the driver is not yet en route. This is the starting state.</i><br/>En Route <i>the driver is en route to the stop</i><br/>Arrived <i>the driver has arrived at the stop</i><br/>Signed <i>the recipient has signed for the delivery of the items</i><br/>Delivered <i>the driver has completed the delivery of all items</i><br/>Returned <i>the driver has returned the package.</i>\n",
      "enum": [
        "arrived",
        "delivered",
        "en_route",
        "pending",
        "re_routed",
        "returned",
        "signed",
        "undeliverable",
        "unserved"
      ],
      "type": "string"
    },
    "state_transition": {
      "oneOf": [
        {
          "$ref": "#/$defs/StateTransition"
        }
      ],
      "type": "object"
    },
    "timeframe": {
      "description": "Timeframes for this Stop",
      "oneOf": [
        {
          "$ref": "#/$defs/Stop_Timeframe"
        }
      ],
      "type": "object"
    },
    "tracking_url": {
      "description": "URL to track the delivery",
      "format": "uri",
      "type": "string"
    },
    "travel_duration": {
      "description": "Travel Duration to this Stop",
      "type": "integer"
    },
    "undeliverable_at": {
      "description": "Time the Stop was marked as unable to be delivered",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "undeliverable_code": {
      "description": "Reason a Stop was marked as unable to be delivered",
      "enum": [
        "unable_to_locate_address",
        "incorrect_address",
        "recipient_refused_delivery",
        "unable_to_access_location",
        "unable_to_verify_id",
        "business_closed",
        "missing_item",
        "damaged_item",
        "out_of_time_returned"
      ],
      "type": [
        "string",
        "null"
      ]
    }
  },
  "type": "object",
  "$defs": {
    "Address": {
      "description": "A Goecoded address",
      "properties": {
        "address": {
          "description": "Address line 1",
          "type": "string"
        },
        "address2": {
          "description": "Address line 2",
          "type": "string"
        },
        "city": {
          "description": "City",
          "type": "string"
        },
        "country_code": {
          "description": "Country",
          "type": "string"
        },
        "formatted_address": {
          "description": "Combined address components in a human readable string",
          "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"
        },
        "neighborhood": {
          "description": "The general neighborhood the address is located in",
          "type": "string"
        },
        "state": {
          "description": "Full state name",
          "type": "string"
        },
        "state_code": {
          "description": "State code (e.g. OH)",
          "type": "string"
        },
        "zip": {
          "description": "Zipcode",
          "type": "string"
        }
      },
      "title": "Address",
      "type": "object"
    },
    "Barcode_Reading": {
      "description": "",
      "properties": {
        "barcode": {
          "description": "Barcode for Match Stop Item",
          "type": "string"
        },
        "inserted_at": {
          "description": "The date & time this reading was created",
          "format": "date-time",
          "type": "string"
        },
        "photo": {
          "description": "Item photo. A photo should be taken when a barcode can't be read",
          "type": "string"
        },
        "state": {
          "description": "State of reading it could be captured, missing or verified",
          "enum": [
            "captured",
            "missing",
            "verified"
          ],
          "type": "string"
        },
        "type": {
          "description": "Reading type it could be pickup or delivery",
          "enum": [
            "pickup",
            "delivery"
          ],
          "type": "string"
        }
      },
      "title": "Barcode Reading",
      "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"
    },
    "MatchStopItem": {
      "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"
        },
        "barcode_readings": {
          "description": "",
          "items": {
            "$ref": "#/$defs/Barcode_Reading"
          },
          "type": "array"
        },
        "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",
          "type": "string"
        },
        "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": "MatchStopItem",
      "type": "object"
    },
    "StateTransition": {
      "description": "Details regarding a record's transition from one state to another",
      "properties": {
        "from": {
          "description": "State that the record transitioned from",
          "type": "string"
        },
        "match_id": {
          "description": "ID of the match if this is a match-level transition",
          "type": [
            "string",
            "null"
          ]
        },
        "notes": {
          "description": "Notes contain additional information regarding the state transition.",
          "type": "string"
        },
        "stop_id": {
          "description": "ID of the stop if this is a stop-level transition",
          "type": [
            "string",
            "null"
          ]
        },
        "to": {
          "description": "State that the record transitioned to",
          "type": "string"
        },
        "updated_at": {
          "description": "Date & time of state transition",
          "format": "date-time",
          "type": "string"
        }
      },
      "title": "StateTransition",
      "type": "object"
    },
    "Stop_Timeframe": {
      "description": "Timeframes for a stop",
      "properties": {
        "planned": {
          "description": "Planned timeframe for the stop, calculated at the driver's accepted time",
          "oneOf": [
            {
              "$ref": "#/$defs/Timeframe"
            }
          ],
          "type": "object"
        },
        "scheduled": {
          "description": "Scheduled timeframe for the stop, calculated at the shipper's scheduled time",
          "oneOf": [
            {
              "$ref": "#/$defs/Timeframe"
            }
          ],
          "type": "object"
        }
      },
      "title": "Stop Timeframe",
      "type": "object"
    },
    "Timeframe": {
      "description": "Timeframe for a stop",
      "properties": {
        "earliest_arrival": {
          "description": "Earliest expected arrival time at the stop",
          "format": "date-time",
          "type": "string"
        },
        "end_time": {
          "deprecated": true,
          "description": "Deprecated: use latest_arrival instead",
          "format": "date-time",
          "type": "string"
        },
        "latest_arrival": {
          "description": "Latest expected arrival time at the stop",
          "format": "date-time",
          "type": "string"
        },
        "latest_completion": {
          "description": "Latest expected completion time at the stop (latest_arrival + handling)",
          "format": "date-time",
          "type": "string"
        },
        "start_time": {
          "deprecated": true,
          "description": "Deprecated: use earliest_arrival instead",
          "format": "date-time",
          "type": "string"
        },
        "updated_at": {
          "description": "Timestamp of the last update to the timeframe",
          "format": "date-time",
          "type": "string"
        }
      },
      "title": "Timeframe",
      "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-match-stop-response"
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.