Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.grdd.dev/llms.txt

Use this file to discover all available pages before exploring further.

Fleet Search API

The Fleet Search API lets you discover available vehicles from all GNet operators near a given location. Search by vehicle type (e.g., sedan, SUV) and specify a location using airport codes or GPS coordinates. Results include vehicle details, photos, capacity, and the operator’s GPS position.

Endpoint

GET https://core.grdd.net/api/search/fleet Authorization: Bearer <your_token>

Query Parameters

ParameterTypeDescriptionRequired
airportsstringComma-separated IATA airport codes (e.g. LAX,SNA). At least one of airports or lat+lon is required.Conditional
latnumberLatitude of the search center (e.g. 33.9425). Must be paired with lon.Conditional
lonnumberLongitude of the search center (e.g. -118.408). Must be paired with lat.Conditional
typesstringComma-separated vehicle types to filter by (e.g. sedan,suv). Case-insensitive. Omit to return all types.No
radius_kmnumberSearch radius in kilometers. Defaults to 50 when omitted.No
limitnumberMaximum number of results to return per page. Defaults to 20, max 100.No
offsetnumberNumber of results to skip (for pagination). Defaults to 0.No
Location requirement: Provide at least one of airports or lat+lon. Both can be combined — operators near any of the given locations are included.

Example Requests

Search by airport code

GET https://core.grdd.net/api/search/fleet?airports=LAX&types=sedan,suv&limit=20&offset=0
Authorization: Bearer <your_token>

Search by GPS coordinates

GET https://core.grdd.net/api/search/fleet?lat=33.9425&lon=-118.408&types=sedan
Authorization: Bearer <your_token>

Multi-airport search with custom radius

GET https://core.grdd.net/api/search/fleet?airports=LAX,SNA&radius_km=30
Authorization: Bearer <your_token>

Success Response

200 - OK

Returns a list of fleet vehicles matching the search criteria. The list is cross-operator — vehicles from all GNet operators serving the requested location(s) are included.
{
  "success": true,
  "data": {
    "items": [
      {
        "griddid": "acme-limo",
        "type": "sedan",
        "name": "Business Class Sedan",
        "description": "Mercedes-Benz E-Class or similar.",
        "imageUrl": "https://asset.grdd.dev/profile/acme-limo/business-class-sedan.png",
        "maxPassengers": 4,
        "maxLuggage": 2,
        "lat": 33.9425,
        "lon": -118.408,
        "distanceKm": 1.23,
        "score": 82
      },
      {
        "griddid": "premier-rides",
        "type": "suv",
        "name": "Luxury SUV",
        "description": "Cadillac Escalade or similar.",
        "imageUrl": "https://asset.grdd.dev/profile/premier-rides/luxury-suv.png",
        "maxPassengers": 6,
        "maxLuggage": 4,
        "lat": 33.9412,
        "lon": -118.402,
        "distanceKm": 2.07,
        "score": 65
      }
    ],
    "total": 2,
    "warnings": []
  }
}

Response Fields

data.items[]

FieldTypeDescription
griddidstringUnique GNet operator ID
typestringVehicle type (e.g. sedan, suv, bus)
namestringDisplay name of the vehicle class
descriptionstringVehicle description
imageUrlstring / nullURL of the vehicle photo, or null if unavailable
maxPassengersnumberMaximum passenger capacity
maxLuggagenumberMaximum luggage capacity
latnumberLatitude of the operator’s service location nearest the search point
lonnumberLongitude of the operator’s service location nearest the search point
distanceKmnumberGreat-circle distance in km from the nearest search point to the operator’s location (rounded to 2 decimal places)
scorenumberCompleteness score (0–100) reflecting how fully the operator has populated vehicle details (photo, description, capacity, extras)

data.warnings[]

Warnings are non-fatal notices returned alongside results.
FieldTypeDescription
codestringWarning code: UNRESOLVABLE_AIRPORT or MISSING_GPS
griddidstringOperator GNet ID (present for MISSING_GPS warnings)
detailstringHuman-readable explanation
Warning codes:
  • UNRESOLVABLE_AIRPORT — An airport code in the request could not be resolved to GPS coordinates. Valid codes in the same request are still searched.
  • MISSING_GPS — An operator has a service location record near the search point but no parseable GPS coordinates. That operator is excluded from results.

Error Responses

401 - Unauthorized

{
  "success": false,
  "message": "Unauthorized"
}

400 - Bad Request

Returned when no location is provided, or when lat and lon are not both present.
{
  "success": false,
  "message": "Provide at least one location: airports (e.g. airports=LAX) or coordinates (lat + lon)"
}

500 - Internal Server Error

{
  "success": false,
  "message": "Internal server error"
}

Notes

Sort order

Results are sorted by two criteria applied in order:
  1. Distance (ascending) — operators nearest the search point(s) appear first. Distance is grouped into 5 km buckets, so an operator 3 km away and one 4.9 km away are treated as equally close.
  2. Completeness score (descending) — within the same distance bucket, operators with richer vehicle profiles (photo, description, capacity info, extras) rank higher. Scores range from 0 to 100; the score field is included in each result for reference.
This ensures that a 0.01 km distance difference does not bury a significantly better-described operator.
  • Results are cross-operator: vehicles from every active GNet operator serving the search area are included in a single response.
  • When multiple airport codes or a mix of airports and GPS coordinates are provided, operators near any of the given points are included (union).
  • An operator appearing in multiple location results is deduplicated — they appear once, with GPS from the location closest to the first matched search point.
  • The types filter is case-insensitive (Sedan, SEDAN, and sedan all match).
  • When types is omitted, all vehicle types from matching operators are returned.
  • radius_km defaults to 50 km when not specified.
  • limit defaults to 20 and is capped at 100. Use offset to page through results (offset=20 for page 2, offset=40 for page 3, etc.).
  • total in the response always reflects the full match count before pagination, so callers can compute total pages as ceil(total / limit).