Shipper Facilities
The facilities endpoint allows users to retrieve a list of facilities that match a given name, location, and search radius. The response includes detailed information about each facility, such as contact information, geographic coordinates, and operating hours.
Authentication
Include the following headers in your requests:
Access-Token: The access token obtained from the "Create Access Token" endpoint.
x-api-key: The API key provided by GenLogs. This header must be included in the request.
Permissions
Make sure that your api user is created with a role that has external-api-shipper-facilities permission
Endpoint
URL:
https://api.genlogs.io/facilitiesMethod:
GET
Query Parameters
name(string, max 500 chars, required — only optional whenaddress,website_domain, or acity+statecombination is provided) The name of the facility to search for. For example,"Acme Logistics".address(string, max 500 chars, required — only optional whenname,website_domain, or acity+statecombination is provided) The address of the facility to search for. For example,"123 Main Street South".city(string, max 150 chars, required — only optional whenname,address, orwebsite_domainis provided) The location "city" around which to search for facilities. For example,"Boston"or"Atlanta". Must be sent together withstateand must geocode successfully; unrecognized locations return empty.state(string, max 150 chars, required — only optional whenname,address, orwebsite_domainis provided) The location "state" around which to search for facilities. For example,"Massachusetts"or"Georgia". Must be sent together withcityand must geocode successfully; unrecognized locations return empty.website_domain(string, optional, max 253 chars) Returns facilities whose stored contact URL contains the given domain. Provide the bare host only — e.g.acme.com, nothttps://www.acme.com/about. The match is case-insensitive and anchored on the host substring, soacme.comwill match stored URLs likehttps://www.acme.com/contact,http://shipping.acme.com, andacme.com.au. Minimum accepted form isa.com(must contain a.and a 2+ character TLD). Shorter inputs return HTTP 400.
radius(number, optional, default20, max150) The radius in miles within which to search around the specified location. Only takes effect when paired with a successfulcity+stategeocode — sent alone, it has no effect.lot_size_category(string, optional, max 50 chars) Filter by the lot size category of the facility. Accepts one or more ofSmall,Medium,Large,X-Large. To pass multiple values, separate them with a pipe — e.g.Small | Medium. Matching is case-insensitive.
zip_code(string, optional, max 10 chars) Search for facilities by valid US zip code. Can be combined with other search parameters likenameoraddressto further narrow results.include_lanes(string, optional) Accepts only true, each facility in the response includes inbound_lanes and outbound_lanes arrays containing structured freight lane data ranked by weight. Facilities with no matching lane data are excluded from the response. Enables pagination — see cursor below.
top_n(number, optional, default 10, max 50) The number of top lanes to return per direction (inbound/outbound) per facility, ranked by weight descending. For example, top_n=5 returns the 5 highest-weighted inbound and 5 highest-weighted outbound lanes. Only takes effect wheninclude_lanes=true.min_distance(number, optional, miles) Minimum distance in miles from the facility to a lane destination. Lanes closer than this threshold are excluded. For example, min_distance=200 returns only lanes where the destination is 200+ miles away. Applied beforetop_n. Only takes effect wheninclude_lanes=true.direction(string, optional, one of: N, S, E, W, NE, NW, SE, SW) Filter lanes by compass direction from the facility. For example,direction=NE returns only lanes heading northeast. Applied beforetop_n. Only takes effect wheninclude_lanes=true.limit(number, optional) Filter lanes by compass direction from the facility. For example,direction=NE returns only lanes heading northeast. Applied beforetop_n. Only takes effect wheninclude_lanes=true.cursor(string, optional, opaque) Pagination cursor from the Link response header of a previous request. Do not construct, parse, or cache this value — follow the URL provided in the Link header. Only present in responses wheninclude_lanes=true and results exceed 20 facilities.
Response
200 OK: Successfully retrieved the list of facilities matching the search criteria.
400 Bad Request: If required parameters are missing or invalid.
401 Unauthorized: If the
Access-Tokenorx-api-keyis missing or invalid.500 Internal Server Error: If an error occurs on the server while processing the request.
Response Body
facilities (array of
Facilityobjects): List of up to 1,000 facilities matching the search criteria ordered by relative load volume.contact_phone (nullable string): Phone number of the facility's contact person.
contact_url (nullable string): URL for the facility's contact page or website.
facility_name (string): Name of the facility.
formatted_address (string): Full address of the facility.
id (string): Unique identifier for the facility.
inbound_lanes (array): Lanes inbound to a facility, ranked by weight descending.
lat (number): Latitude of the facility's location.
lon (number): Longitude of the facility's location.
operating_hours (nullable string): Operating hours of the facility.
outbound_lanes (array): Lanes outbound from a facility, ranked by weight descending.
place_category (string): Category or type of place (e.g., warehouse, distribution center).
place_desc (String): Description of the facility
equipment_pairings (List): Equipment types paired with this facility based on observed carrier activity.
Request Example:
Search by name + city and state.
Search by address
Search by zip_code
Unified facility search. Provide at least one of: non-empty name, non-empty address, zip_code, non-empty website_domain, or both city and state (then use radius around the geocoded point). You may also pass location as latitude,longitude for radius search instead of city/state. Optionally include lane data per facility with include_lanes=true. Lanes can be filtered by min_distance (miles from facility) and direction (compass direction). Filters are applied before the top_n limit.
Pagination
When results exceed 100 facilities, the response is paginated using opaque cursor-based pagination. The Link response header contains a next-page URL with a cursor parameter. Follow that URL to retrieve subsequent pages. The X-Total-Count header shows the total matching facilities across all pages. Pagination is not supported with smart_search=true. See component schema FacilitiesQueryCriteria for the full parameter model and validation shape. Historical path /find_facilities exposes the same search behavior and is documented here as /facilities for a single contract.
Facility or collection name (optional if address, both city and state, or website_domain are provided).
See FacilitiesQueryCriteria for validation rules.
Example WarehouseSubstring match on formatted address (optional if name, both city and state, or website_domain are provided).
123 Main St, Dallas, TXCity; use with state for geocoded radius search unless name, address, or website_domain alone is sufficient.
DallasState; use with city unless name, address, or website_domain supplies the search mode.
TXSubstring match against the shipper's contact_url. Must include the TLD
(e.g. acme.com). Optional path tails (acme.com/about) are accepted by
the validator but the path is stripped before matching — only the host
is searched.
Mutually exclusive with name and address. If name or address
is also supplied, website_domain is silently ignored (see
FacilitiesQueryCriteria → Filter precedence). Also ignored when
smart_search=true is used together with name.
genlogs.ioPattern: ^[A-Za-z0-9][A-Za-z0-9-]*\.[A-Za-z]{2,}([/.].*)?$Comma-separated latitude,longitude; radius applies around this point when provided instead of city/state.
32.7767,-96.7970Search radius in miles around the geocoded city/state point or location
50Lot size category filter
largeMaximum number of facilities to return
100Optional place category filter (pipe-separated values accepted by the service)
Optional intermodal drayage filter flag
falseInclude inbound and outbound lane data for each facility. Lanes are ranked by weight.
trueNumber of top lanes to return per direction (inbound/outbound) per facility.
10Example: 5Minimum distance in miles from the facility to a lane destination. Lanes closer than this distance are excluded. Applied before top_n.
200Filter lanes by compass direction from the facility. Applied before top_n.
NEPossible values: US zip code; searches facilities near the zip centroid.
75207Opaque pagination cursor from the Link header of a previous response. When results exceed 100 facilities, the server returns a Link header containing a next-page URL with this cursor embedded. Follow that URL to retrieve subsequent pages. Do not construct or parse this value — it is server-controlled and opaque.
application/json
application/jsonAccess Token for authentication
[Token]X api key for authentication
[x-api-key]List of facilities
Validation error (missing search criteria, invalid parameters, or invalid cursor)
GET /facilities HTTP/1.1
Host: api.genlogs.io
accept: application/json
Access-Token: [Token]
x-api-key: [x-api-key]
Accept: */*
[
{
"contact_phone": "text",
"contact_url": "text",
"facility_name": "text",
"formatted_address": "text",
"id": "text",
"lat": 1,
"lon": 1,
"operating_hours": "text",
"place_category": "text",
"equipment_pairings": [
"Dry Van",
"Box Truck"
],
"inbound_lanes": [
{
"city": "text",
"state": "text",
"weight": 1,
"visit_share": "text",
"hexagon_id": "text",
"distance_miles": 1,
"direction": "text"
}
],
"outbound_lanes": [
{
"city": "text",
"state": "text",
"weight": 1,
"visit_share": "text",
"hexagon_id": "text",
"distance_miles": 1,
"direction": "text"
}
]
}
]Last updated