# Carrier Profile

### Carrier Profile Endpoint

Retrieve **FMCSA** details, **Equipment Pairings**, and **USDOT Sightings** for one or more carriers, with optional date filters for sightings.

### **Authentication**

* Include your **`Access-Token`** in the header of your requests.
* Include your **`x-api-key`** The API key provided by GenLogs. This header must be included in the request.

### Permissions

The `external-api-carrier-profile` permission is required to access this endpoint.

### **Endpoint**

* **URL:** `https://api.genlogs.io/carrier/profile`
* **Method:** `GET`

### **Headers**

* **Access-Token**:  (string, required): Access token obtained from the "Create Access Token" endpoint.
* **x-api-key** (string, required): The API key provided by GenLogs.

### **Query Parameters:**

* **usdot_numbers** (*string, required, max = 50*): One or more USDOT numbers, separated by commas; *e.g. "123456,987654".*
* **start_date** (*string, optional*): Start date for filtering USDOT sightings (up to 3 years ago); *e.g. "2026-02-20".*
* **end_date** (*string, optional*): End date for filtering USDOT sightings (cannot exceed the current date); *e.g. "2026-02-21".*

### Understanding carrier profile information

Responses are always grouped by **USDOT**, and within each USDOT you may find:

* **FMCSA Detail** – always present.
* **Equipment Pairings** – may be empty depending on the available information.
* **USDOT Sightings** – may be empty depending on the filters applied.

This means that while **FMCSA Detail** is guaranteed for every USDOT, the **Pairing Data** and **Sightings** sections may not return results if they do not match the requested filters.

**Carrier Profile returns three arrays per USDOT.**

* **FMCSA Detail**: FMCSA details with equipment pairings and USDOT sightings for specified carriers
  * **usdot_number**: (string) The USDOT number for the carrier.
  * **docket_number**: (string) The Motor Carrier number for carriers involved in interstate.
  * **legal_name**: (string) The official registered name of the carrier.
  * **dba_name**: (string)  The "Doing Business As" name, if applicable.
  * **carrier_status**: (string) Indicates whether the carrier is active, inactive, or has a pending status.
  * **entity_status**: (string) Refers to the legal standing of the carrier's business entity.
  * **carrier_ein**: (string) It is a unique nine-digit number assigned by the IRS to identify the carrier for tax purposes.
  * **dun_bradstreet_no**: (string) It is a unique identifier assigned by Dun & Bradstreet to businesses.
  * **mcs150_date**: (string) The date when the carrier last updated their MCS-150 form (Motor Carrier Identification Report).
  * **mcs150_mileage**: (string) The total mileage reported by the carrier on their MCS-150 form, typically for the previous year.
  * **insurer_company_name**: (string)  The name of the insurance company providing coverage for the carrier.
  * **insurance_docket_number**: (string) A unique identifier for the insurance filing associated with the carrier.
  * **insurance_policy_number**: (string) The policy number assigned by the insurer to the carrier's insurance policy.
  * **insurance_policy_type**: (string) Specifies the type of insurance policy (e.g., liability, cargo, etc.).
  * **insurance_form_code**: (string) A code representing the type of insurance form filed (e.g., BMC-91 for liability insurance).
  * **insurance_max_coverage_amount**: (string) The maximum coverage amount provided by the insurance policy.
  * **insurance_underlying_limit_amount**: (string) The underlying limit amount, which is the base coverage before additional layers of insurance apply.
  * **insurance_transaction_date**: (string) The date when the insurance transaction (e.g., filing or update) was processed.
  * **insurance_effective_date**: (string) The start date of the insurance policy.
  * **insurance_expiration_date**: (string) The end date of the insurance policy.
  * **phy_street**: (string) The street address of the carrier's physical location.
  * **phy_city**: (string) The city where the carrier's physical address is located.
  * **phy_state**: (string) The state where the carrier's physical address is located.
  * **phy_zip**: (string) The ZIP code for the carrier's physical address.
  * **telephone**: (string) The carrier's primary contact phone number.
  * **email_address**: (string) The carrier's email address for communication.
  * **mailing_street**: (string) The street address of the carrier's mailing location.
  * **mailing_city**: (string) The city where the carrier's mailing address is located.
  * **mailing_state**: (string) The state where the carrier's mailing address is located.
  * **mailing_zip**: (string) The ZIP code for the carrier's mailing address.
  * **mailing_country**: (string) The country of the carrier's mailing address.
  * **carrier_operation**: (string) Describes the type of operations the carrier is authorized to perform (e.g., interstate, intrastate, hazardous materials).
  * **operation_classification**: (string) Specifies the classification of the carrier's operations, such as for-hire, private, exempt, or passenger.
  * **authority_date**: (string) The date when the carrier's operating authority was granted.
  * **authorized_for_common_date**: (string) The date when the carrier was authorized for common carrier operations.
  * **authorized_for_contract_date**: (string) The date when the carrier was authorized for contract carrier operations.
  * **carrier_total_drivers**: (string) The total number of drivers employed by the carrier.
  * **carrier_total_power_units**: (string) The total number of power units (e.g., trucks, tractors) operated by the carrier.
  * **carried_cargo**: (string) The types of cargo the carrier is authorized to transport (e.g., general freight, hazardous materials).
  * **carrier_driver_insp**: (string) The total number of driver inspections conducted for the carrier.
  * **carrier_driver_oos_insp**: (string) The number of driver inspections that resulted in an out-of-service (OOS) order.
  * **carrier_driver_oos_rate**: (number) The percentage of driver inspections that resulted in an OOS order.
  * **carrier_driver_oos_rate_national_avg**: (number) The national average OOS rate for drivers, used for comparison.
  * **carrier_vehicle_insp**: (string) The total number of vehicle inspections conducted for the carrier.
  * **carrier_vehicle_oos_insp**: (string) The number of vehicle inspections that resulted in an OOS order.
  * **carrier_vehicle_oos_rate**: (number) The percentage of vehicle inspections that resulted in an OOS order.
  * **carrier_vehicle_oos_rate_national_avg**: (number) The national average OOS rate for vehicles, used for comparison.
  * **carrier_hazmat_insp**: (string) The total number of hazardous materials inspections conducted for the carrier.
  * **carrier_hazmat_oos_insp**: (string) The number of hazardous materials inspections that resulted in an OOS order.
  * **carrier_hazmat_oos_rate**: (number) The percentage of hazardous materials inspections that resulted in an OOS order.
  * **carrier_hazmat_oos_rate_national_avg**: (number) The national average OOS rate for hazardous materials, used for comparison.
  * **carrier_fatal_crash**: (string) The total number of fatal crashes involving the carrier.
  * **carrier_inj_crash**: (string) The total number of crashes involving injuries for the carrier.
  * **carrier_towaway_crash**: (string)  The total number of crashes involving towaways for the carrier.
  * **carrier_crash_total**: (string) The total number of crashes involving the carrier, including all types of crashes (fatal, injury, and towaway).
  * **recordable_crash_rate**: (number) The rate of recordable crashes per million vehicle miles traveled (VMT). This metric helps assess the carrier's safety performance.
  * **basic_unsafe_driving_total_violation**: (string) The total number of violations related to unsafe driving (e.g., speeding, reckless driving) recorded for the carrier.
  * **basic_driver_fitness_total_violation**: (string) The total number of violations related to driver fitness (e.g., invalid licenses, medical qualifications).
  * **basic_hos_total_violation**: (string) The total number of violations related to Hours of Service (HOS) compliance (e.g., exceeding driving time limits, falsifying logs).
  * **basic_drugs_alcohol_total_violation**: (string) The total number of violations related to drug and alcohol use by drivers.
  * **basic_vehicle_maint_total_violation**: (string) The total number of violations related to vehicle maintenance (e.g., brake issues, lighting problems).
  * **carrier_safety_rating_date**: (string) The date when the carrier's most recent safety rating was issued.
  * **carrier_safety_rating**: (string)

The carrier's safety rating, which can be one of the following:

* **Satisfactory**: Meets safety standards.
    * **Conditional**: Does not meet all safety standards but is allowed to operate.
    * **Unsatisfactory**: Fails to meet safety standards and is not allowed to operate.
  * **carrier_safety_review_date**: (string)  The date when the carrier's most recent safety review was conducted.
  * **carrier_safety_review_type**: (string) The type of safety review conducted (e.g., compliance review, safety audit).
* **Equipment Pairings**: equipment pairings for specified carriers, as observed by GenLogs:
  * name: equipment type name
  * value_percent: percentage score
* **USDOT Sightings**: Retrieves USDOT sightings for specified carriers within a date range.
  * sighting_date: Date when the sighting occurred.
  * state_seen: U.S. state where the sighting was recorded.
  * location_zip: 3-digit ZIP code prefix representing the location of the sighting.
  * sightings: amount of registered GenLogs sightings.
  * source: the source of the sighting (e.g. "detections")

### **Response:**

* **200 OK:** A JSON object containing 3 sets of carrier details.
* **400 Bad Request:** If required parameters are missing or invalid.
* **401 Unauthorized:** If the authentication credentials (Access-Token) is missing or incorrect.
* **403 Forbidden**: If the permission has not been added to your user.
* **500 Internal Server Error:** If there is an issue on the server that prevents processing the request.

### **Response Body:**

* Data (object of `CarrierProfile` objects): Set of carrier profiles grouped by `usdot_number`.

### Request Example:

```bash
curl --location 'https://api.genlogs.io/carrier/profile?usdot_number=2350084%2C10553&start_date=2025-09-01&end_date=2025-09-12' \
--header 'Access-Token: {your-user-token}' \
--header 'x-api-key: {your-x-api-key}'
```

## Get carrier profile details

Retrieve a comprehensive carrier profile details including FMCSA details, equipment pairings, and sightings data for specified USDOT numbers.
