Skip to content

MVMNT API (1.0.0)

The MVMNT API enables you to automate freight brokerage workflows by integrating directly with our Transportation Management System.

Postman setup guide: API Clients.

Authentication

OAuth 2.0 client credentials flow. See Authentication Guide for details.

Token Endpoint

POST https://api.mvmnt.io/oauth2/token

Request

Headers:

Content-Type: application/x-www-form-urlencoded

Body Parameters:

grant_type=client_credentials
client_id=YOUR_CLIENT_ID
client_secret=YOUR_CLIENT_SECRET

Example Request

curl -X POST https://api.mvmnt.io/oauth2/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET"

Success Response

Status: 200 OK

{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 3600
}

Response Fields:

  • access_token: JWT Bearer token to use for API requests
  • token_type: Always Bearer
  • expires_in: Token lifetime in seconds (3600 = 1 hour)

Idempotency

Mutating requests (POST, PATCH, DELETE) accept an optional Idempotency-Key header (up to 255 characters). Retrying a request with the same key and the same body returns the original result instead of repeating the operation; reusing a key with a different body fails. Keys are scoped to your organization — keys chosen by other tenants can never collide with yours. Use a stable identifier from your system (for example your own record id plus the action) rather than a random value per attempt.

Overview
Languages
Servers
Production
https://api.mvmnt.io/v1
Demo (non-production)
https://api.demo.mvmnt.io/v1

Carriers

Carrier management operations

Operations

Carrier Contacts

Carrier contact management operations

Operations

Carrier Factors

Carrier factor (factoring company) management operations

Operations

Carrier Payment Methods

Carrier payment method management operations

Operations

Companies

Company management operations

Operations

Credit Memos

AR credit memo management operations. Credit memos represent customer credits that can be applied to invoices.

Operations

Bills

AP bill management operations. Bills represent carrier and vendor invoices to be paid.

Operations

Bill Payments

AP bill payment management operations. Bill payments record payments made to carriers and vendors.

Operations

Customers

Customer management operations

Operations

Customer Contacts

Customer contact management operations

Operations

Documents

Document management operations. Documents are files (PDFs, images) that can be attached to orders, loads, or services.

Operations

Invoices

AR invoice management operations. Invoices represent customer billing for shipment services.

Operations

Loads

Load management operations. Loads represent carrier execution - which carrier is moving the freight.

Operations

Locations

Location management operations

Operations

Filter locations

Request

Query locations using flexible filter criteria with AND/OR logic.

By default, only non-deleted locations are returned (deletedAt: { isNull: true }). Override this by explicitly setting deletedAt filter criteria.

Security
BearerAuth
Bodyapplication/jsonrequired
filterobject(LocationFilter)

Filter criteria (optional - omit to return all locations).

Note: deletedAt automatically defaults to { isNull: true } unless explicitly overridden.

Example: {"and":[{"customerId":{"equalTo":"550e8400-e29b-41d4-a716-446655440000"}},{"type":{"equalTo":"SHIPPER"}}]}
pageSizeinteger[ 1 .. 250 ]

Number of results per page

Default 50
Example: 50
cursorstring

Pagination cursor for next page

curl -i -X POST \
  https://api.mvmnt.io/v1/locations/filter \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "filter": {
      "and": [
        {
          "customerId": {
            "equalTo": "550e8400-e29b-41d4-a716-446655440000"
          }
        },
        {
          "type": {
            "equalTo": "SHIPPER"
          }
        }
      ]
    },
    "pageSize": 50
  }'

Responses

Filtered locations with pagination

Bodyapplication/json
dataArray of objects(Location)required
objectstringread-only

Object type identifier

Value"LOCATION"
Example: "LOCATION"
idstring(uuid)read-onlyrequired

Unique location identifier

Example: "770e8400-e29b-41d4-a716-446655440000"
customerIdstring(uuid)required

Customer (shipper profile) this location belongs to

Example: "550e8400-e29b-41d4-a716-446655440000"
customerobject(Customer)read-only

The customer this location belongs to

addressobject(Address)read-only

Physical address of this location

namestringrequired

Location name

Example: "ABC Warehouse - Dallas"
keystring or null<= 512 characters

Client-defined reference identifier for this location

Example: "ERP-LOC-DALLAS-01"
typestring(LocationType)

The type of location:

  • SHIPPER: Pickup location only
  • RECEIVER: Delivery location only
  • BOTH: Can be used for both pickup and delivery
Enum"SHIPPER""RECEIVER""BOTH"
Example: "SHIPPER"
isAppointmentRequiredbooleanrequired

Whether appointments are required for this location

Example: true
notesstring or null

External notes visible to carriers

Example: "Call 24 hours ahead for appointment"
internalNotesstring or null

Internal notes (not visible to carriers)

Example: "Use dock door 5 for expedited shipments"
contactsArray of objects(LocationContactReference)

Contacts for this location

createdAtstring(date-time)read-onlyrequired

Timestamp when location was created

Example: "2025-01-15T10:00:00Z"
updatedAtstring(date-time)read-onlyrequired

Timestamp when location was last updated

Example: "2025-01-15T14:30:00Z"
deletedAtstring or null(date-time)read-only

Timestamp when location was soft-deleted (null if active)

Example: null
pageInfoobject(PaginationInfo)required
pageSizeintegerrequired

Number of items per page

Example: 50
hasNextPagebooleanrequired

Whether there are more pages

Example: true
hasPreviousPageboolean

Whether there are previous pages

Example: false
endCursorstring or null

Cursor for the next page (null if no next page)

Example: "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9"
Response
application/json
{ "data": [ {} ], "pageInfo": { "pageSize": 50, "hasNextPage": true, "hasPreviousPage": false, "endCursor": "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" } }

Create a new location

Request

Create a new location for a customer.

Locations represent pickup or delivery points (warehouses, distribution centers, etc.).

Security
BearerAuth
Bodyapplication/jsonrequired
customerIdstring(uuid)required

Customer (shipper profile) this location belongs to (required)

Example: "550e8400-e29b-41d4-a716-446655440000"
addressobject(LocationAddressInput)required

Physical address for this location (required). The backing address record is created and linked automatically — no separate address or location id is needed. country accepts US, CA, or MX.

line1stringrequired

Primary street address line

Example: "123 Main St"
line2string

Secondary address line (suite, floor, etc.)

Example: "Suite 400"
citystringrequired

City name

Example: "Chicago"
statestringrequired

State or province code

Example: "IL"
zipCodestringrequired

Postal / ZIP code

Example: "60601"
countrystringrequired

Country name or code

Example: "USA"
marketstring

Market or region identifier

Example: "CHI"
latitudestring

Latitude coordinate

Example: "41.8781"
longitudestring

Longitude coordinate

Example: "-87.6298"
isAirportOrAirbaseboolean

Whether this location is an airport or airbase

Default false
Example: false
isConstructionOrUtilitySiteboolean

Whether this location is a construction or utility site

Default false
Example: false
isSmartyValidatedboolean

Whether address has been validated by SmartyStreets

Default false
Example: true
obeysDstboolean

Whether this location observes daylight saving time

Default true
Example: true
cityIdstring(uuid)

Reference to standardized city record (internal use)

namestringrequired

Location name (required)

Example: "ABC Warehouse - Dallas"
keystring<= 512 characters

Client-defined reference identifier

Example: "ERP-LOC-DALLAS-01"
typestring(LocationType)

The type of location:

  • SHIPPER: Pickup location only
  • RECEIVER: Delivery location only
  • BOTH: Can be used for both pickup and delivery
Enum"SHIPPER""RECEIVER""BOTH"
Example: "SHIPPER"
isAppointmentRequiredbooleanrequired

Whether appointments are required for this location (required)

Example: true
notesstring

External notes visible to carriers

Example: "Call 24 hours ahead for appointment"
internalNotesstring

Internal notes (not visible to carriers)

Example: "Use dock door 5 for expedited shipments"
curl -i -X POST \
  https://api.mvmnt.io/v1/locations \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "customerId": "550e8400-e29b-41d4-a716-446655440000",
    "address": {
      "line1": "2100 Ross Ave",
      "city": "Dallas",
      "state": "TX",
      "zipCode": "75201",
      "country": "US"
    },
    "name": "ABC Warehouse - Dallas",
    "key": "ERP-LOC-DALLAS-01",
    "type": "SHIPPER",
    "isAppointmentRequired": true,
    "notes": "Call 24 hours ahead for appointment"
  }'

Responses

Location created successfully

Bodyapplication/json
objectstringread-only

Object type identifier

Value"LOCATION"
Example: "LOCATION"
idstring(uuid)read-onlyrequired

Unique location identifier

Example: "770e8400-e29b-41d4-a716-446655440000"
customerIdstring(uuid)required

Customer (shipper profile) this location belongs to

Example: "550e8400-e29b-41d4-a716-446655440000"
customerobject(Customer)read-only

The customer this location belongs to

addressobject(Address)read-only

Physical address of this location

namestringrequired

Location name

Example: "ABC Warehouse - Dallas"
keystring or null<= 512 characters

Client-defined reference identifier for this location

Example: "ERP-LOC-DALLAS-01"
typestring(LocationType)

The type of location:

  • SHIPPER: Pickup location only
  • RECEIVER: Delivery location only
  • BOTH: Can be used for both pickup and delivery
Enum"SHIPPER""RECEIVER""BOTH"
Example: "SHIPPER"
isAppointmentRequiredbooleanrequired

Whether appointments are required for this location

Example: true
notesstring or null

External notes visible to carriers

Example: "Call 24 hours ahead for appointment"
internalNotesstring or null

Internal notes (not visible to carriers)

Example: "Use dock door 5 for expedited shipments"
contactsArray of objects(LocationContactReference)

Contacts for this location

createdAtstring(date-time)read-onlyrequired

Timestamp when location was created

Example: "2025-01-15T10:00:00Z"
updatedAtstring(date-time)read-onlyrequired

Timestamp when location was last updated

Example: "2025-01-15T14:30:00Z"
deletedAtstring or null(date-time)read-only

Timestamp when location was soft-deleted (null if active)

Example: null
Response
application/json
{ "object": "LOCATION", "id": "770e8400-e29b-41d4-a716-446655440000", "customerId": "550e8400-e29b-41d4-a716-446655440000", "customer": { "object": "CUSTOMER", "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "NEW", "serviceTier": "TIER_1", "website": "https://acme-manufacturing.com", "phoneNumber": "+1-555-123-4567", "industry": "AGRICULTURE_FORESTRY", "annualRevenue": "_0_TO_500K", "annualSpend": "_0_TO_25K", "spendType": "CONTRACT", "naics": "336411", "ein": "12-3456789", "duns": "123456789", "leadSource": "Referral", "dbaName": "Acme Corp DBA", "numberOfEmployees": "_0_TO_1", "externalId": "EXT-12345", "currency": "USD", "creditLimit": 50000, "creditUsageWarning": 40000, "freeCreditReq": 5000, "defaultMode": "FTL", "defaultMargin": 0.15, "minMargin": 0.1, "maxMargin": 0.25, "defaultInternalNotes": "Contact via email only", "defaultCarrierNotes": "Call pickup contact before arrival", "defaultExternalNotes": "Please call 1 hour before delivery", "defaultShowNotes": "ALL", "autoAcceptTender": false, "group": {}, "paymentTerm": {}, "notes": "Prefers email communication", "deactivationReason": "NOT_PAYING_INVOICE", "deactivationNotes": "string", "deactivationDate": null, "closedAt": null, "closedBy": {}, "closedNotes": "string", "corporateAddress": {}, "billingAddress": {}, "qboCustomerId": null, "key": "ERP-CUSTOMER-12345", "contacts": [], "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null, "deletedBy": {} }, "address": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "state": "IL", "zipCode": "60601", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "name": "ABC Warehouse - Dallas", "key": "ERP-LOC-DALLAS-01", "type": "SHIPPER", "isAppointmentRequired": true, "notes": "Call 24 hours ahead for appointment", "internalNotes": "Use dock door 5 for expedited shipments", "contacts": [ {} ], "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }

Get a location by ID

Request

Retrieve a single location by its unique identifier.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X GET \
  https://api.mvmnt.io/v1/locations/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Location found

Bodyapplication/json
objectstringread-only

Object type identifier

Value"LOCATION"
Example: "LOCATION"
idstring(uuid)read-onlyrequired

Unique location identifier

Example: "770e8400-e29b-41d4-a716-446655440000"
customerIdstring(uuid)required

Customer (shipper profile) this location belongs to

Example: "550e8400-e29b-41d4-a716-446655440000"
customerobject(Customer)read-only

The customer this location belongs to

addressobject(Address)read-only

Physical address of this location

namestringrequired

Location name

Example: "ABC Warehouse - Dallas"
keystring or null<= 512 characters

Client-defined reference identifier for this location

Example: "ERP-LOC-DALLAS-01"
typestring(LocationType)

The type of location:

  • SHIPPER: Pickup location only
  • RECEIVER: Delivery location only
  • BOTH: Can be used for both pickup and delivery
Enum"SHIPPER""RECEIVER""BOTH"
Example: "SHIPPER"
isAppointmentRequiredbooleanrequired

Whether appointments are required for this location

Example: true
notesstring or null

External notes visible to carriers

Example: "Call 24 hours ahead for appointment"
internalNotesstring or null

Internal notes (not visible to carriers)

Example: "Use dock door 5 for expedited shipments"
contactsArray of objects(LocationContactReference)

Contacts for this location

createdAtstring(date-time)read-onlyrequired

Timestamp when location was created

Example: "2025-01-15T10:00:00Z"
updatedAtstring(date-time)read-onlyrequired

Timestamp when location was last updated

Example: "2025-01-15T14:30:00Z"
deletedAtstring or null(date-time)read-only

Timestamp when location was soft-deleted (null if active)

Example: null
Response
application/json
{ "object": "LOCATION", "id": "770e8400-e29b-41d4-a716-446655440000", "customerId": "550e8400-e29b-41d4-a716-446655440000", "customer": { "object": "CUSTOMER", "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "NEW", "serviceTier": "TIER_1", "website": "https://acme-manufacturing.com", "phoneNumber": "+1-555-123-4567", "industry": "AGRICULTURE_FORESTRY", "annualRevenue": "_0_TO_500K", "annualSpend": "_0_TO_25K", "spendType": "CONTRACT", "naics": "336411", "ein": "12-3456789", "duns": "123456789", "leadSource": "Referral", "dbaName": "Acme Corp DBA", "numberOfEmployees": "_0_TO_1", "externalId": "EXT-12345", "currency": "USD", "creditLimit": 50000, "creditUsageWarning": 40000, "freeCreditReq": 5000, "defaultMode": "FTL", "defaultMargin": 0.15, "minMargin": 0.1, "maxMargin": 0.25, "defaultInternalNotes": "Contact via email only", "defaultCarrierNotes": "Call pickup contact before arrival", "defaultExternalNotes": "Please call 1 hour before delivery", "defaultShowNotes": "ALL", "autoAcceptTender": false, "group": {}, "paymentTerm": {}, "notes": "Prefers email communication", "deactivationReason": "NOT_PAYING_INVOICE", "deactivationNotes": "string", "deactivationDate": null, "closedAt": null, "closedBy": {}, "closedNotes": "string", "corporateAddress": {}, "billingAddress": {}, "qboCustomerId": null, "key": "ERP-CUSTOMER-12345", "contacts": [], "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null, "deletedBy": {} }, "address": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "state": "IL", "zipCode": "60601", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "name": "ABC Warehouse - Dallas", "key": "ERP-LOC-DALLAS-01", "type": "SHIPPER", "isAppointmentRequired": true, "notes": "Call 24 hours ahead for appointment", "internalNotes": "Use dock door 5 for expedited shipments", "contacts": [ {} ], "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }

Update a location

Request

Partially update a location. Only provided fields will be updated.

  • Omitted fields: Not modified (current value preserved)
  • Provided fields: Updated to the new value
  • Null values: Clear the field (set to null) where applicable
Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyapplication/jsonrequired
customerIdstring(uuid)

Customer (shipper profile) this location belongs to

Example: "550e8400-e29b-41d4-a716-446655440000"
addressobject(AddressPatch)

Partial address update. All fields are optional.

  • Omitted fields: Not modified (current value preserved)
  • Provided fields: Updated to the new value
  • Null values: Treated as omitted (null-clears are not yet supported for address fields)
namestring

Location name

Example: "ABC Warehouse - Dallas"
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-LOC-DALLAS-01"
typestring(LocationType)

The type of location:

  • SHIPPER: Pickup location only
  • RECEIVER: Delivery location only
  • BOTH: Can be used for both pickup and delivery
Enum"SHIPPER""RECEIVER""BOTH"
Example: "SHIPPER"
isAppointmentRequiredboolean

Whether appointments are required for this location

Example: true
notesstring or null

External notes visible to carriers

Example: "Call 24 hours ahead for appointment"
internalNotesstring or null

Internal notes (not visible to carriers)

Example: "Use dock door 5 for expedited shipments"
curl -i -X PATCH \
  https://api.mvmnt.io/v1/locations/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "notes": "Updated appointment requirements"
  }'

Responses

Location updated successfully

Bodyapplication/json
objectstringread-only

Object type identifier

Value"LOCATION"
Example: "LOCATION"
idstring(uuid)read-onlyrequired

Unique location identifier

Example: "770e8400-e29b-41d4-a716-446655440000"
customerIdstring(uuid)required

Customer (shipper profile) this location belongs to

Example: "550e8400-e29b-41d4-a716-446655440000"
customerobject(Customer)read-only

The customer this location belongs to

addressobject(Address)read-only

Physical address of this location

namestringrequired

Location name

Example: "ABC Warehouse - Dallas"
keystring or null<= 512 characters

Client-defined reference identifier for this location

Example: "ERP-LOC-DALLAS-01"
typestring(LocationType)

The type of location:

  • SHIPPER: Pickup location only
  • RECEIVER: Delivery location only
  • BOTH: Can be used for both pickup and delivery
Enum"SHIPPER""RECEIVER""BOTH"
Example: "SHIPPER"
isAppointmentRequiredbooleanrequired

Whether appointments are required for this location

Example: true
notesstring or null

External notes visible to carriers

Example: "Call 24 hours ahead for appointment"
internalNotesstring or null

Internal notes (not visible to carriers)

Example: "Use dock door 5 for expedited shipments"
contactsArray of objects(LocationContactReference)

Contacts for this location

createdAtstring(date-time)read-onlyrequired

Timestamp when location was created

Example: "2025-01-15T10:00:00Z"
updatedAtstring(date-time)read-onlyrequired

Timestamp when location was last updated

Example: "2025-01-15T14:30:00Z"
deletedAtstring or null(date-time)read-only

Timestamp when location was soft-deleted (null if active)

Example: null
Response
application/json
{ "object": "LOCATION", "id": "770e8400-e29b-41d4-a716-446655440000", "customerId": "550e8400-e29b-41d4-a716-446655440000", "customer": { "object": "CUSTOMER", "id": "550e8400-e29b-41d4-a716-446655440000", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "NEW", "serviceTier": "TIER_1", "website": "https://acme-manufacturing.com", "phoneNumber": "+1-555-123-4567", "industry": "AGRICULTURE_FORESTRY", "annualRevenue": "_0_TO_500K", "annualSpend": "_0_TO_25K", "spendType": "CONTRACT", "naics": "336411", "ein": "12-3456789", "duns": "123456789", "leadSource": "Referral", "dbaName": "Acme Corp DBA", "numberOfEmployees": "_0_TO_1", "externalId": "EXT-12345", "currency": "USD", "creditLimit": 50000, "creditUsageWarning": 40000, "freeCreditReq": 5000, "defaultMode": "FTL", "defaultMargin": 0.15, "minMargin": 0.1, "maxMargin": 0.25, "defaultInternalNotes": "Contact via email only", "defaultCarrierNotes": "Call pickup contact before arrival", "defaultExternalNotes": "Please call 1 hour before delivery", "defaultShowNotes": "ALL", "autoAcceptTender": false, "group": {}, "paymentTerm": {}, "notes": "Prefers email communication", "deactivationReason": "NOT_PAYING_INVOICE", "deactivationNotes": "string", "deactivationDate": null, "closedAt": null, "closedBy": {}, "closedNotes": "string", "corporateAddress": {}, "billingAddress": {}, "qboCustomerId": null, "key": "ERP-CUSTOMER-12345", "contacts": [], "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null, "deletedBy": {} }, "address": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "state": "IL", "zipCode": "60601", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "name": "ABC Warehouse - Dallas", "key": "ERP-LOC-DALLAS-01", "type": "SHIPPER", "isAppointmentRequired": true, "notes": "Call 24 hours ahead for appointment", "internalNotes": "Use dock door 5 for expedited shipments", "contacts": [ {} ], "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }

Delete a location

Request

Soft delete a location (sets deletedAt timestamp).

The location will no longer appear in default queries but can be retrieved by explicitly filtering for deleted records.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X DELETE \
  https://api.mvmnt.io/v1/locations/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Location deleted successfully

Response
No content

Search locations

Request

Search locations using OpenSearch-powered full-text and field-specific search.

This endpoint provides fast, indexed search across location data with support for:

  • Full-text search across multiple fields
  • Field-specific filtering with various operators
  • Geographic search capabilities
  • Sorting and pagination
  • Saved search preferences

Note: Only active (non-deleted) locations are searchable. Soft-deleted records are automatically excluded from all search results.

Response Formats:

  • flat (default): Returns indexed fields only for faster performance
  • full: Returns complete location objects with all relationships
Security
BearerAuth
Bodyapplication/jsonrequired
criteriaobject(LocationSearchCriteria)

Search criteria to filter locations

paginationobject(SearchPaginationInput)

Pagination options for search requests

sortArray of objects(SearchSortOption)<= 3 items

Sort options for the search results

Example: [{"field":"createdAt","order":"desc"}]
savedSearchobject(SavedSearchLookup)

Optional saved search to load preferences from. When provided, the saved search criteria will be loaded and merged with any explicit criteria.

formatstring

Response format:

  • flat: Returns only indexed fields (default, faster)
  • full: Returns complete location objects
Default "flat"
Enum"flat""full"
curl -i -X POST \
  https://api.mvmnt.io/v1/locations/search \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "criteria": {
      "id": {
        "operator": "EQUALS",
        "values": [
          "550e8400-e29b-41d4-a716-446655440000"
        ]
      },
      "customerId": {
        "operator": "EQUALS",
        "values": [
          "550e8400-e29b-41d4-a716-446655440000"
        ]
      },
      "customerName": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "customerFriendlyId": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "type": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "name": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "externalId": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "line1": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "line2": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "city": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "state": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "postalCode": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "country": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "market": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "zone": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "phoneNumber": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "appointmentRequired": {
        "operator": "TRUE"
      },
      "stopsCount": {
        "operator": "BETWEEN",
        "min": 10,
        "max": 100
      },
      "createdAt": {
        "operator": "AFTER",
        "value": "2025-01-01T00:00:00Z"
      }
    },
    "pagination": {
      "pageNumber": 1,
      "pageSize": 50
    },
    "sort": [
      {
        "field": "createdAt",
        "order": "desc"
      }
    ],
    "savedSearch": {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    },
    "format": "flat"
  }'

Responses

Successful search results

Bodyapplication/json
dataArray of objectsrequired

Search results - either flat rows or full location objects based on format parameter

objectstringrequired

Object type identifier for discriminating between flat and full response formats

Value"LOCATION_SEARCH_ROW"
Discriminator
idstring(uuid)required
customerIdstring(uuid)required

Customer ID (maps from shipperProfileId)

customerNamestringrequired

Customer name (maps from shipperProfileName)

customerFriendlyIdstring

Customer company ID (maps from shipperProfileFriendlyId)

typestring

Location type

Enum"SHIPPER""RECEIVER""BOTH"
namestringrequired

Location name

externalIdstring or null

External reference ID

line1string or null
line2string or null
citystring or null
statestring or null
postalCodestring or null
countrystring or null
marketstring or null

DAT market

zonestring or null

DAT zone

pointobject or null

Geographic coordinates

phoneNumberstring or null

Primary contact phone

appointmentRequiredboolean or null

Whether appointments are required (maps from apptReq)

stopsCountinteger or null

Number of stops

createdAtstring(date-time)required
paginationobject(SearchPaginationInfo)required

Pagination information for search results

pageNumberintegerrequired

Current page number

Example: 1
pageSizeintegerrequired

Number of results returned on this page

Example: 50
totalPagesintegerrequired

Total number of pages available

Example: 25
totalResultsinteger>= 0required

Total number of matching results (excluding soft-deleted records)

Response
application/json
{ "data": [ {} ], "pagination": { "pageNumber": 1, "pageSize": 50, "totalPages": 25 }, "totalResults": 0 }

Location Contacts

Location contact management operations

Operations

Payment Terms

Payment term management operations

Operations

Reference Data

Read-only catalogs (equipment, charge codes, special requirements) referenced by id from other resources.

Every catalog also answers on its short top-level path, so GET /v1/charge-codes and GET /v1/reference-data/charge-codes are the same endpoint. The documented /reference-data/* form is canonical — it keeps the catalogs grouped here as more are added (port codes, cities, zip codes) — and the short form is a convenience alias.

Operations

Payments

AR payment management operations. Payments represent received customer payments applied to invoices.

Operations

Quotes

Quote management operations. Quotes are pricing requests/responses that can be converted to shipments.

Operations

Saved Searches

Saved search management operations

Operations

Services

Service (vended service) management operations. Services represent non-carrier vendor work (drayage, customs, warehousing).

Operations

Shipments

Shipment tracking and management operations. Shipments contain orders, loads, and services.

Operations

Teams

Team management operations

Operations

Users

User management operations

Operations

Vendors

Vendor management operations

Operations

Vendor Contacts

Vendor contact management operations

Operations

Vendor Payment Methods

Vendor payment method management operations

Operations

Event Notifications

Webhooks