Features Entity
The honda_auto_api_features and acura_auto_api_features transformed assets merge
feature records from one or two source endpoints. Honda features come from a single
source; Acura features merge two.
Sources
| Brand | Source | Endpoint | Notes |
|---|---|---|---|
| Honda | vehicles_details | GET /platform/api/v1/vehicles/details/{year}/{series} | Only source for Honda features |
| Acura | vehicles_details | GET /platform/api/v1/vehicles/details/{year}/{series} | Shared extractor with Honda |
| Acura | configurator | GET /platform/api/v1/vehicles/{year}/{SERIES}/configurator | Acura-only; per-trim endpoint |
See Vehicle Details and Configurator for endpoint documentation.
The entity key is (feature_code, model_code, model_year). A given key can be produced
by both Acura sources when the same accessory or package appears in both the
vehicles/details option list and the configurator response for the same trim.
Field differences (Acura only)
The following fields differ between vehicles_details and configurator for Acura.
Honda is unaffected — it has a single source.
feature_name
| Source | Origin | Example |
|---|---|---|
vehicles_details | OptionName (URL-decoded) or ACCNAME_en from OptionTextList | "All-Season Floor Mats" |
configurator | Not always present; configurator accessories may lack a name field | null |
vehicles/details name is preferred when both are present; configurator fills gaps where vehicles/details has no entry.
feature_description
| Source | Origin |
|---|---|
vehicles_details | ACCDESC_en from OptionTextList on ModelOptionList entries |
configurator | Not present — configurator accessories carry no description field |
Configurator always contributes null — there is never a genuine conflict.
dealer_price
| Source | Origin |
|---|---|
vehicles_details | OptionDealerPrice on ModelOptionList entries |
configurator | Not present — no dealer price field in the configurator response |
model_series
| Source | Origin |
|---|---|
vehicles_details | ModelSeriesItemName injected as a constant per (year, series) response |
configurator | Not present — configurator requests are scoped per trim (modelId), not per series |
Same root cause as Honda — the same feature_code can appear under multiple series
responses, each injecting a different model_series constant.
includes / excludes / requires / required_by
Accessory compatibility rules populated by both sources but from different fields:
| Field | vehicles_details origin | configurator origin |
|---|---|---|
includes | IncludeList on ModelOptionList | accessories[].rules.includes |
excludes | ExcludeList on ModelOptionList | accessories[].rules.excludes |
requires | RequiredList on ModelOptionList | accessories[].rules.requires (if present) |
required_by | RequiredByList on ModelOptionList | Not present in configurator |
Op codes from both sources are unioned; the two sources may not enumerate identical sets for the same accessory.
included_by
| Source | Origin |
|---|---|
vehicles_details | IncludedByList on ModelOptionList — lists op codes of packages that bundle this item |
configurator | No equivalent field |
Configurator has no equivalent field and always contributes null — there is never
a genuine conflict.
is_package
| Source | Semantics |
|---|---|
vehicles_details | True for entries in ModelOptionPackageList; False for ModelOptionList |
configurator | Classification is structural — an accessory with includes populated is treated as a package |
The two sources may classify the same op code differently if vehicles/details lists
it in ModelOptionList (accessory) while configurator treats it as a package due
to its includes rules. Package rows are extracted from ModelOptionPackageList
and carry includes populated with bundled op codes, making them the richer
candidate when a conflict exists.
is_standard
| Source | Semantics |
|---|---|
vehicles_details | Derived from BuildAndPriceOptions.Standard[] — op codes in that bucket are marked True |
configurator | No equivalent field; cannot determine whether an item is standard from the configurator response alone |
Configurator has no is_standard concept and always contributes null — there
is never a genuine conflict between two non-null values.
trim_group
| Source | Semantics |
|---|---|
vehicles_details | TrimGroups[].Name for accessories/packages/colors; eFeatureSet.Subsets[].SetId for standard features; _series sentinel for cross-trim features |
configurator | packageName (trim marketing name) from the per-trim request |
The same (feature_code, model_code, model_year) key can appear under different
trim_group values when the two sources associate the feature with different trims,
or when vehicles/details produces it under both a specific trim name and _series.
See also Vehicle Details — Known data quality issues for the within-source variant of this issue on Honda.