cap hpi

  • documentation
  • cap API
  • WLTP API
  • web services
  • data files
  • contact us
  • Overview
  • Data Relations
  • Data Files
    • NVDColourHoodLinks
    • NVDColourTrimLinks
    • NVDCTHPeriods
    • NVDDictionaryCategory
    • NVDDictionaryGeneric
    • NVDDictionaryGenericColour
    • NVDDictionaryOption
    • NVDDictionaryOptionFeaturesandBenefits
    • NVDDictionaryOptionGenericCatLink
    • NVDDictionaryOptionGenericColourLink
    • NVDDictionaryOptionGenericLink
    • NVDDictionaryTechnical
    • NVDDictionaryTechnicalDataType
    • NVDDictionaryTechnicalLookup
    • NVDEditions
    • NVDGenericStatus
    • NVDModelYear
    • NVDOptions
    • NVDPackContents
    • NVDPackPeriods
    • NVDPrices
    • NVDRelationshipItems
    • NVDRelationshipPeriods
    • NVDRelationshipRules
    • NVDStandardEquipment
    • NVDTechnical

cap Data Files

Overview

cap API allows subscribers to download cap data in files of either ASCII (fixed width), CSV or JSON format. These files can be downloaded via SOAP Web Services or through the Subscriber Website. A subscriber needs to use their subscriber id and password to gain access.

Data Relations

Whether you access our data in ASCII, CSV, JSON or through SQL Data Transfer, the data is structured and related identically. These relationships are defined in the diagram below.

Data Files

Descriptions of the different data files / tables that are available.

NVDColourHoodLinks

Column Name Data Type
CHL_PeriodCodeint
CHL_ColorCodeint
CHL_HoodCodeint

NVDColourTrimLinks

Column Name Data Type
CTL_PeriodCodeint
CTL_ColorCodeint
CTL_TrimCodeint

NVDCTHPeriods

The Color Trim and Hood Links dataset is used to define the possible combinations of Colors and Trims, and Colors and Hoods available on a vehicle.

For example, a vehicle might have optional metallic paint in various colors, and a range of leather upholstery options, but a buyer is unable to choose blue leather with red metallic paint.

The color, hood and trim codes are all option codes, and therefore link directly to NVDDictionaryOption. In addition, when these dictionary items are linked to NVDDictionaryCategory, the Field NVDDictionaryCategory.DC_CTH_Type can be used.

Column Name Data Type
CTHP_PeriodCodeint
CTHP_Idint
CTHP_EffectiveFromdatetime
CTHP_EffectiveTodatetime

NVDDictionaryCategory

Column Name Data Type
DC_CatCodeint
DC_Descriptionvarchar
DC_Typechar
DC_Cth_Typechar
DC_GenericASCII_Typechar

NVDDictionaryGeneric

Generic Descriptions are also categorised in a similar way to Option descriptions. The table below is the interim table which allows this link from:-
NVDDictionaryGeneric.DG_CatCode <-->
NVDDictionaryCategory.DC_CatCode

Column Name Data Type
DG_GenericCodeint
DG_ManLevelint
DG_CatCodeint
DG_Descriptionvarchar
DG_LongDescriptionvarchar

NVDDictionaryGenericColour

Column Name Data Type
DGC_ColourCodeint
DGC_Descriptionvarchar

NVDDictionaryOption

Column Name Data Type
DO_OptionCodeint
DO_ManLevelint
DO_CatCodeint
DO_Descriptionvarchar
DO_LongDescriptionvarchar
DO_NonSpecificCostOptionbit

NVDDictionaryOptionFeaturesandBenefits

Column Name Data Type
FB_OptionCodeint
FB_ManCodeint
FB_Featurestext
FB_Benefitstext

NVDDictionaryOptionGenericCatLink

Column Name Data Type
OGCL_OptionCatCodeint
OGCL_GenericCatCodeint

NVDDictionaryOptionGenericColourLink

Column Name Data Type
OGCL_OptionCodeint
OGCL_GenericColourCodeint

NVDDictionaryOptionGenericLink

The CAP Option Dictionaries are designed to allow many different approaches to querying, depending on your specific requirements.

NVDDictionaryOption holds the descriptions for Selectable Options and Standard Equipment. Items which are Manufacturer specific use DO_ManLevel to contain the Manufacturer ID, if this is 0, the option is referred to as 'Common', or can be attached to many different manufacturers vehicles.

Options are grouped into Categories, using DO_CatCode, which refers to NVDDictionaryCategory. Examples of Option Categories are Paintwork, Interior Features etc.

Additionally, Options are associated with Generic descriptions (for example, many manufacturers might refer to various features using their own terminology. By referring to the Generic Description, you can normalise all of these, and this also allows you to do a like-for-like option comparison.

Column Name Data Type
OGL_OptionCodeint
OGL_GenericCodeint

NVDDictionaryTechnical

Column Name Data Type
DT_TechCodeint
DT_ManLevelint
DT_CatCodeint
DT_Descriptionvarchar
DT_LongDescriptionvarchar
DT_DataTypechar
DT_MinValuefloat
DT_MaxValuefloat

NVDDictionaryTechnicalDataType

Column Name Data Type
TDT_datatypechar
TDT_Namechar
TDT_IsNumericbit
TDT_Precisionint

NVDDictionaryTechnicalLookup

Column Name Data Type
DTL_LookupCodeint
DTL_TechCodeint
DTL_Descriptionvarchar
DTL_Valuevarchar

NVDEditions

CAPs NVD Dataset is as up to date as possible, according to information released direct from the manufacturers.

Occasionally certain datasets for a given vehicle may be more recent than others, for example the set of options available on a vehicle may have been last updated 2 days ago, but the Technical data was last known to be correct 5 days ago.

NVDEditions table allows the user to identify when each dataset was last known to be correct and applicable. Note however that a historic date in NVDEditions does not imply the dataset is no longer correct, merely that it was last verified on that date.

Column Name Data Type
ED_IDint
ED_CapCode_LastDeadlinedatetime
ED_Price_LastDeadlinedatetime
ED_Options_LastDeadlinedatetime
ED_Standard_LastDeadlinedatetime
ED_Technical_LastDeadlinedatetime
ED_Relationships_LastDeadlinedatetime
ED_CTHL_LastDeadlinedatetime

NVDGenericStatus

Column Name Data Type
GS_Idint
GS_GenericCodeint
GS_EffectiveFromdatetime
GS_EffectiveTodatetime
GS_Statuschar

NVDModelYear

This table holds the introduction and discontinuation dates for each vehicle and model year. Consistent with the rest of the system, if an EffectiveTo date is NULL in the database, it indicates that the data (in this case the model year) has not been discontinued and is therefore still current.

You must crossreference with NVDModelYear whenever you want to distinguish between current and discontinued vehicles.

Column Name Data Type
MY_Idint
MY_EffectiveFromdatetime
MY_EffectiveTodatetime
MY_Refchar
MY_ImageIDint
MY_ImageNotExactMatchbit

NVDOptions

Vehicle options are split into two tables in the CAP Publish database. NVDOptions contains options which are selectable, and may or may not have a cost assosciated with them.

NVDStandardEquipment obviously holds standard equipment. These are never costed, and are never selectable.

To use an example, if a vehicle comes with a set of 16" alloys as standard, but has the option of upgrading to 17" alloys: Both sets of alloys would be defined in NVDOptions, because they are selectable. To indicate the 16" alloys come as default, the OPT_Default would be non zero.

The actual logic indicating that only one of those sets of alloys can be selected at any one time, would be defined in the Option Relationships dataset.

Column Name Data Type
OPT_Idint
OPT_OptionCodeint
OPT_EffectiveFromdatetime
OPT_EffectiveTodatetime
OPT_ModifiedDatedatetime
OPT_Basicmoney
OPT_Vatmoney
OPT_Poabit
OPT_Defaultbit

NVDPackContents

When an option defined in the Option dictionary represents more than one option it is referred to as a pack.

Pack definitions are defined as a period of time, during which a set of options are included in the pack.

The pack is an option item defined in NVDDictionaryOption, as specified by PP_PackCode, and contains all options defined in NVDPackContents for that period, where PC_OptionCode also refers to options in NVDDictionaryOption.

Column Name Data Type
PC_PeriodCodeint
PC_OptionCodeint

NVDPackPeriods

Column Name Data Type
PP_PeriodCodeint
PP_PackCodeint
PP_EffectiveFromdatetime
PP_EffectiveTodatetime

NVDPrices

As a vehicles New Price is liable to change over time, the NVDPrices table records every one of these prices during a vehicles lifetime.

If a new price is still applicable for a vehicle, its EffectiveTo date will be NULL in the database. Obviously each vehicle can only have a maximum of one record where this is the case.

Throughout the CAP Publish database, any data relating to a vehicle will be keyed on the CAP ID, and the field name (for example PR_ID in the case of NVDPrices) will be used to store this.

Column Name Data Type
PR_Idint
PR_EffectiveFromdatetime
PR_EffectiveTodatetime
PR_Basicmoney
PR_Vatmoney
PR_Deliverymoney
PR_ModifiedDatedatetime

NVDRelationshipItems

Column Name Data Type
RI_RuleCodeint
RI_OptionCodeint
RI_IsPrimarytinyint

NVDRelationshipPeriods

Option Relationships define any dependencies between possible option combinations on a vehicle. For example, clearly you can only choose one set of alloy wheels, but this dataset caters for more complex dependencies, as the examples below demonstrate. A set of relationships is defined as a period of time, for a given vehicle (specified by RP_ID). During this period, one or more rules are defined. The NVDRelationshipItems table indicates which options are affected by a given rule. Possible rule types (indicated in RR_RuleType):

'OO' - One Of
From the marked options, a maximum of one may be selected.
Example: You can only have one type of paintwork.

'RO' - Requires One Of
If the primary option is chosen, it must be accompanied by at least one of the non primary options in that rule.
Example: If sports suspension is chosen, one set of 17 inch alloys must also be chosen.

'RA - Requires All
If the primary option is chosen, it is accompanied by all the non primary options in that rule.
Example: If TV and Teletext reception is chosen, it must be accompanied by 'Sat nav + Monitor + Driver Info System'.

'NW' - Not With
If the primary option is chosen, none of the other marked options may be chosen.
Example: If Wood inlay is chosen, it cannot be accompanied by any cloth trim.

'IN' - Included In
The marked options are included in the price of the primary option, which is a pack.
Example: If 'Sat nav + Monitor + Driver Info System' is chosen, the seperate option of 'Drivers information system' is included in this option and price.

'IO' - Include One Of
If the primary option is chosen, it must be accompanied by one none primary options. The selected none primary option will be included
at 0 cost. Example : If Convenience Pack is selected One Metallic Paint can also be selected at 0 cost.

Column Name Data Type
RP_PeriodCodeint
RP_Idint
RP_EffectiveFromsmalldatetime
RP_EffectiveTosmalldatetime

NVDRelationshipRules

Column Name Data Type
RR_RuleCodeint
RR_PeriodCodeint
RR_RuleTypechar

NVDStandardEquipment

Column Name Data Type
SE_Idint
SE_OptionCodeint
SE_EffectiveFromdatetime
SE_EffectiveTodatetime
SE_ModifiedDatedatetime

NVDTechnical

Each item of technical data on a vehicle is specified independently, with effective from and effective to dates. An EffectiveTo date of NULL indicates the item of data is still active for that vehicle.

Consistent with the rest of the CAP dictionaries, TechnicalData items are Categorised by linking DT_CatCode to NVDDictionaryCategory. Example Technical Categories are 'Performance', 'Safety' etc.

Since an item of Technical data might be a character string, or integer, floating point etc, DT_DataType indicates the data type used for this item. This also indicates which field in NVDTechnical the value can be found, although the string field is always populated regardless of the data type in use.

Some items of technical data are 'lookups'. Ie, they can only take one value from a set of predefined values. For lookup fields, the list of possible values are defined in NVDDictionaryTechnicalLookup, and linked to via TechCode.

Column Name Data Type
TECH_Idint
TECH_TechCodeint
TECH_EffectiveFromdatetime
TECH_EffectiveTodatetime
TECH_Value_Datetimedatetime
TECH_Value_Floatfloat
TECH_Value_Stringvarchar
TECH_Value_Booleanbit
TECH_Value_Statuschar
TECH_ModifiedDatedatetime
©2025 cap-hpi ltd