cap hpi

  • documentation
  • cap API
  • WLTP API
  • web services
  • data files
  • contact us
  • Introduction
  • VRM
    • VRMValuation
    • VRMInternetPricesValuation
    • CAPIDValuation
    • View_VRMValuation_Audit
    • View_CAPIDValuation_Audit
  • DVLA
    • DVLALookupVRM
    • DVLALookupAlternativeVRM
    • DVLALookupVIN
    • ViewLookup_GetCurrentStatus
    • ViewLookup_Summary
    • DVLALookupAlternativeDerivative
  • NVD
    • GetBulkTechnicalData
    • GetP11DData
    • GetNvdChangeDates
    • GetGenericOptions
    • GetColourHoodLinks
    • GetColourTrimLinks
    • GetTechnicalData
    • GetStandardEquipment
    • GetGenericOptionLinks
    • GetCapOptionsBundle
  • Vehicles
    • GetCapMan
    • GetCapMan_IncludeOnRunout
    • GetCapRange
    • GetCapRange_IncludeOnRunout
    • GetCapMod
    • GetCapMod_IncludeOnRunout
    • GetCapDer
    • GetCapDerWithSector
    • GetCapDer_IncludeOnRunout
    • GetCapDer_IncludeOnRunoutWithSector
    • GetCapDerFromRange
    • GetCapDerFromRange_IncludeOnRunout
    • GetCapModelYears
    • GetCapDescriptionFromId
    • GetCapDescriptionFromIdWithSector
    • GetCapcodeFromCapid
    • GetCapidFromCapcode
  • P11D
    • GetP11DValuation
  • Legislation
    • GetLegislationData
  • Used Values
    • GetUsedValuesHistoryForIDYearLetter
    • GetUsedValuesForIDYearLetter
    • GetUsedValuesForIDYearMonth
    • GetUsedValuesForIDYearMonthMileage
    • GetInternetPricesForIDYearLetterMileage
    • GetInternetPricesForIDYearMonthMileage
    • GetUsedValuesForIDYearLetterMileage
    • GetUsedValuesForID
    • GetUsedValuation
    • GetUsedValuesHistoricDates
  • Used Values Live
    • GetUsedLive_IdRegDate
    • GetUsedLive_IdYearLetter
    • GetUsedLive_IdYearMonth
    • GetUsedLive_IdRegDateMileage
    • GetUsedLive_IdYearLetterMileage
    • GetUsedLive_IdYearMonthMileage
    • GetUsedLiveHistoric_IdRegDateMileage
    • GetUsedLiveHistoric_IdYearLetterMileage
    • GetUsedLiveHistoric_IdYearMonthMileage
  • Future Values
    • GetFutureValuation
    • GetPpmValuation
  • SMR
    • GetSmrValuation
  • TCO
    • GetTCO
  • Data Download
    • List_MonthlyDownloadDate
    • List_SubscriberDetails
    • List_SubscriberProducts
    • List_AllSubscriberProducts
    • List_ProductPackages
    • List_ProductPackagesHistoric
    • List_NewPackagesFromDate
    • List_LatestPackagesForSubscriber
    • Stream_Package
    • Stream_LatestPackage

cap Web Services

Introduction

cap hpi host a number of web services which customers can subscribe to either by data set or database allowing you to request individual pieces of data or data bundles for individual vehicles. Data is updated either daily or monthly dependent on your subscription. Web services are ideal if you do not want to store and host our data yourself.

This document details the web services and associated operations that are currently available to customers. A summary section at the start of the document will assist you in locating the web service that will meet your requirements. Each web service and operation is detailed later in the document with a description of what the web service and operation is used for, what the response will contain, the parameters you will need to pass in the request and the associated data type as well as a URL you can access to test the operation and generate a response.

CARS LCV HGV BIKES
DVLA Y Y
NVD Y Y
SMR Y Y
Legislation Y
TCO Y
P11D Y
Data Download N/A N/A N/A N/A
VRM Y Y
Future Values Y Y
Vehicles Y Y Y Y
Used Values Y Y Y
Used Values Live Y
Vehicle Image Y Y

VRM

This web service has three valuation operations which allow you to return a valuation. The first two allow you to return a valuation for a cap ID or VRM and mileage as well as information on the standard equipment on the vehicle. The third returns internet prices for a VRM and mileage. There are an additional two operations for auditing the use of this web service.

https://soap.cap.co.uk/vrm/capvrm.asmx

VRMValuation

This operation returns a valuation for a VRM, taking into account the registration date and mileage. Standard equipment information can also be returned. The response details VRM lookup information (cap code, cap manufacturer, range, model and derivative and when the model and derivative were introduced and discontinued), valuation data (clean, average, below and retail) and standard equipment if requested (code, description and category). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vrm/capvrm.asmx/VRMValuation

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyVRMstringNo
BodyMileageIn full. A valuation will be provided based on the mileage rounded to the nearest thousand (e.g. if 1200 was entered, the valuation will beprovided at 1000 miles)intNo
BodyStandardEquipmentRequiredIf TRUE, standard equipment will be returnedbooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<VRMValuationResponse xmlns="https://soap.cap.co.uk/vrm">
  <VRMValuationResult>
    <Success>boolean</Success>
    <VRMLookup>
      <Success>boolean</Success>
      <VehicleFound>boolean</VehicleFound>
      <Database>string</Database>
      <CAPID>int</CAPID>
      <CAPcode>string</CAPcode>
      <CAPMan>string</CAPMan>
      <CAPRange>string</CAPRange>
      <CAPMod>string</CAPMod>
      <CAPDer>string</CAPDer>
      <ModIntroduced>int</ModIntroduced>
      <ModDiscontinued>int</ModDiscontinued>
      <DerIntroduced>dateTime</DerIntroduced>
      <DerDiscontinued>dateTime</DerDiscontinued>
      <FailReason>string</FailReason>
      <RegisteredDate>dateTime</RegisteredDate>
      <VinNumber>string</VinNumber>
      <EngineNumber>string</EngineNumber>
      <Colour>string</Colour>
    </VRMLookup>
    <Valuation>
      <Success>boolean</Success>
      <ValuationDateMatch>boolean</ValuationDateMatch>
      <ValuationMileage>int</ValuationMileage>
      <Retail>int</Retail>
      <Clean>int</Clean>
      <Average>int</Average>
      <Below>int</Below>
      <FailReason>string</FailReason>
    </Valuation>
    <MileageOutOfBounds>boolean</MileageOutOfBounds>
    <StandardEquipment>
      <Success>boolean</Success>
      <EquipmentDateMatch>boolean</EquipmentDateMatch>
      <SEData>
        <SEDataItem xsi:nil="true" />
        <SEDataItem xsi:nil="true" />
      </SEData>
      <FailReason>string</FailReason>
    </StandardEquipment>
    <FailReason>string</FailReason>
  </VRMValuationResult>
</VRMValuationResponse>

VRMInternetPricesValuation

This operation performs a VRM lookup returns a list of banded internet prices for a VRM, taking into account the registration date and mileage. Standard equipment information can also be returned. The response details VRM lookup information (cap code, cap manufacturer, range, model and derivative and when the model and derivative were introduced and discontinued), high and low valuations (clean, average, below and retail) and standard equipment if requested (code, description and category). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vrm/capvrm.asmx/VRMInternetPricesValuation

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyVRMstringNo
BodyMileageIn full. A valuation will be provided based on the mileage rounded to the nearest thousand (e.g. if 1200 was entered, the valuation will be provided at 1000 miles)intNo
BodyStandardEquipmentRequiredIf TRUE, standard equipment will be returnedbooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<VRMInternetPricesValuationResponse xmlns="https://soap.cap.co.uk/vrm">
  <VRMInternetPricesValuationResult>
    <Success>boolean</Success>
    <VRMLookup>
      <Success>boolean</Success>
      <VehicleFound>boolean</VehicleFound>
      <Database>string</Database>
      <CAPID>int</CAPID>
      <CAPcode>string</CAPcode>
      <CAPMan>string</CAPMan>
      <CAPRange>string</CAPRange>
      <CAPMod>string</CAPMod>
      <CAPDer>string</CAPDer>
      <ModIntroduced>int</ModIntroduced>
      <ModDiscontinued>int</ModDiscontinued>
      <DerIntroduced>dateTime</DerIntroduced>
      <DerDiscontinued>dateTime</DerDiscontinued>
      <FailReason>string</FailReason>
      <RegisteredDate>dateTime</RegisteredDate>
      <VinNumber>string</VinNumber>
      <EngineNumber>string</EngineNumber>
      <Colour>string</Colour>
    </VRMLookup>
    <Valuation>
      <Success>boolean</Success>
      <ValuationDateMatch>boolean</ValuationDateMatch>
      <ValuationMileage>int</ValuationMileage>
      <RetailHigh>int</RetailHigh>
      <RetailLow>int</RetailLow>
      <CleanHigh>int</CleanHigh>
      <CleanLow>int</CleanLow>
      <AverageHigh>int</AverageHigh>
      <AverageLow>int</AverageLow>
      <BelowHigh>int</BelowHigh>
      <BelowLow>int</BelowLow>
      <FailReason>string</FailReason>
    </Valuation>
    <MileageOutOfBounds>boolean</MileageOutOfBounds>
    <StandardEquipment>
      <Success>boolean</Success>
      <EquipmentDateMatch>boolean</EquipmentDateMatch>
      <SEData>
        <SEDataItem xsi:nil="true" />
        <SEDataItem xsi:nil="true" />
      </SEData>
      <FailReason>string</FailReason>
    </StandardEquipment>
    <FailReason>string</FailReason>
  </VRMInternetPricesValuationResult>
</VRMInternetPricesValuationResponse>

CAPIDValuation

This operation returns a valuation for a cap ID, taking into account the registration date and mileage. Standard equipment information can also be returned. The response details cap ID lookup information (cap code, cap manufacturer, range, model and derivative and when the model and derivative were introduced and discontinued), the valuation (clean, average, below and retail) and standard equipment if requested (code, description and category). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vrm/capvrm.asmx/CAPIDValuation

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyDatabaseCAR (Not CARS) or LCVstringNo
BodyCAPIDintNo
BodyRegisteredDateIn the format YYYY/MM/DDdateTimeNo
BodyMileageIn full. A valuation will be provided based on the mileage rounded to the nearest thousand (e.g. if 1200 was entered, the valuation will be provided at 1000 miles)intNo
BodyStandardEquipmentRequiredIf TRUE, standard equipment will be returnedbooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<CAPIDValuationResponse xmlns="https://soap.cap.co.uk/vrm">
  <CAPIDValuationResult>
    <Success>boolean</Success>
    <CAPIDLookup>
      <Success>boolean</Success>
      <IDFound>boolean</IDFound>
      <Database>string</Database>
      <CAPID>int</CAPID>
      <CAPcode>string</CAPcode>
      <CAPMan>string</CAPMan>
      <CAPRange>string</CAPRange>
      <CAPMod>string</CAPMod>
      <CAPDer>string</CAPDer>
      <ModIntroduced>int</ModIntroduced>
      <ModDiscontinued>int</ModDiscontinued>
      <DerIntroduced>dateTime</DerIntroduced>
      <DerDiscontinued>dateTime</DerDiscontinued>
      <FailReason>string</FailReason>
    </CAPIDLookup>
    <Valuation>
      <Success>boolean</Success>
      <ValuationDateMatch>boolean</ValuationDateMatch>
      <ValuationMileage>int</ValuationMileage>
      <Retail>int</Retail>
      <Clean>int</Clean>
      <Average>int</Average>
      <Below>int</Below>
      <FailReason>string</FailReason>
    </Valuation>
    <MileageOutOfBounds>boolean</MileageOutOfBounds>
    <StandardEquipment>
      <Success>boolean</Success>
      <EquipmentDateMatch>boolean</EquipmentDateMatch>
      <SEData>
        <SEDataItem xsi:nil="true" />
        <SEDataItem xsi:nil="true" />
      </SEData>
      <FailReason>string</FailReason>
    </StandardEquipment>
    <FailReason>string</FailReason>
  </CAPIDValuationResult>
</CAPIDValuationResponse>

View_VRMValuation_Audit

This operation returns the total number of valuations and standard equipment items returned by VRM lookup between two dates. The response contains a total value and a monthly breakdown for the date range. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vrm/capvrm.asmx/View_VRMValuation_Audit

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyDateFromIn the format YYYY/MM/DDdateTimeNo
BodyDateToIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<View_VRMValuation_AuditResponse xmlns="https://soap.cap.co.uk/vrm">
  <View_VRMValuation_AuditResult>
    <Success>boolean</Success>
    <DateFrom>dateTime</DateFrom>
    <DateTo>dateTime</DateTo>
    <Total_Valuations_Returned>int</Total_Valuations_Returned>
    <Total_SE_Returned>int</Total_SE_Returned>
    <MonthData>
      <AuditMonth>
        <DateFrom>dateTime</DateFrom>
        <DateTo>dateTime</DateTo>
        <Valuations_Returned>int</Valuations_Returned>
        <SE_Returned>int</SE_Returned>
      </AuditMonth>
      <AuditMonth>
        <DateFrom>dateTime</DateFrom>
        <DateTo>dateTime</DateTo>
        <Valuations_Returned>int</Valuations_Returned>
        <SE_Returned>int</SE_Returned>
      </AuditMonth>
    </MonthData>
    <FailReason>string</FailReason>
  </View_VRMValuation_AuditResult>
</View_VRMValuation_AuditResponse>

View_CAPIDValuation_Audit

This operation returns the total number of valuations and standard equipment items returned by cap ID lookups between two dates. The response contains a total value and a monthly breakdown for the date range. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vrm/capvrm.asmx/View_CAPIDValuation_Audit

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyDateFromIn the format YYYY/MM/DDdateTimeNo
BodyDateToIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<View_CAPIDValuation_AuditResponse xmlns="https://soap.cap.co.uk/vrm">
  <View_CAPIDValuation_AuditResult>
    <Success>boolean</Success>
    <DateFrom>dateTime</DateFrom>
    <DateTo>dateTime</DateTo>
    <Total_Valuations_Returned>int</Total_Valuations_Returned>
    <Total_SE_Returned>int</Total_SE_Returned>
    <MonthData>
      <AuditMonth>
        <DateFrom>dateTime</DateFrom>
        <DateTo>dateTime</DateTo>
        <Valuations_Returned>int</Valuations_Returned>
        <SE_Returned>int</SE_Returned>
      </AuditMonth>
      <AuditMonth>
        <DateFrom>dateTime</DateFrom>
        <DateTo>dateTime</DateTo>
        <Valuations_Returned>int</Valuations_Returned>
        <SE_Returned>int</SE_Returned>
      </AuditMonth>
    </MonthData>
    <FailReason>string</FailReason>
  </View_CAPIDValuation_AuditResult>
</View_CAPIDValuation_AuditResponse>

DVLA

This web service allows you to obtain general data held by the DVLA, SMMT and cap hpi for a VRM or VIN.

https://soap.cap.co.uk/dvla/capdvla.asmx

DVLALookupVRM

This operation allows you to pass in the VRM and receive vehicle data held by the DVLA, SMMT and cap hpi. The response will include information on the match level (i.e. whether a match was made with DVLA, SMMT and cap hpi data) as well as the data held for the VRM from each source (e.g. VIN, MVRIS code, cap ID, cap code). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/dvla/capdvla.asmx/DVLALookupVRM

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyvrmstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<DVLALookupVRMResponse xmlns="https://soap.cap.co.uk/dvla">
    <DVLALookupVRMResult>
        <RESPONSE xmlns="">
            <SUCCESS>true</SUCCESS>
            <ERRORMESSAGE></ERRORMESSAGE>
            <TIMESTAMP>dateTime</TIMESTAMP>
            <AUDITID>int</AUDITID>
            <LOOKUP_VRM>string</LOOKUP_VRM>
            <LOOKUP_VIN />
            <MONTHLYLOOKUPLIMITEXCEEDED>boolean</MONTHLYLOOKUPLIMITEXCEEDED>
            <AUTOCORRECTED>boolean</AUTOCORRECTED>
            <AUTOCORRECTEDREASON></AUTOCORRECTEDREASON>
            <MATCHLEVEL>
                <DVLA>int</DVLA>
                <DVLAKEEPER>int</DVLAKEEPER>
                <DVLABASIC>int</DVLABASIC>
                <SMMT>int</SMMT>
                <CAP>int</CAP>
                <ALTERNATIVEVRMS>int</ALTERNATIVEVRMS>
                <ALTERNATIVEDERIVATIVES>int</ALTERNATIVEDERIVATIVES>
            </MATCHLEVEL>
            <DATA>
                <DVLA>
                    <VRM>string</VRM>
                    <VIN>string</VIN>
                    <MANUFACTURER>string</MANUFACTURER>
                    <MODEL>string</MODEL>
                    <FUELTYPE>string</FUELTYPE>
                    <BODYTYPE>string</BODYTYPE>
                    <DOORS>int</DOORS>
                    <SEATING>int</SEATING>
                    <WHEELPLAN>string</WHEELPLAN>
                    <REGISTRATIONDATE>int</REGISTRATIONDATE>
                    <MANUFACTUREDDATE>int</MANUFACTUREDDATE>
                    <FIRSTREG_DATE>string</FIRSTREG_DATE>
                    <FIRSTREG_USEDBEFORE>int</FIRSTREG_USEDBEFORE>
                    <CO2>int</CO2>
                    <ENGINECAPACITY>int</ENGINECAPACITY>
                    <ENGINENUMBER>string</ENGINENUMBER>
                    <ISSCRAPPED>string</ISSCRAPPED>
                    <SCRAPPEDDATE>string</SCRAPPEDDATE>
                    <ISEXPORTED>string</ISEXPORTED>
                    <EXPORTEDDATE>string</EXPORTEDDATE>
                    <ISIMPORTED>string</ISIMPORTED>
                    <IMPORTEDDATE>string</IMPORTEDDATE>
                    <COLOUR>string</COLOUR>
                    <MASSINSERVICE>int</MASSINSERVICE>
                    <MAXMASS>int</MAXMASS>
                    <MAXNETPOWER>int</MAXNETPOWER>
                    <MAXTOW_BRAKED>int</MAXTOW_BRAKED>
                    <MAXTOW_UNBRAKED>int</MAXTOW_UNBRAKED>
                    <SOUNDLEVEL_STATIONARY>int</SOUNDLEVEL_STATIONARY>
                    <SOUNDLEVEL_ENGINE>int</SOUNDLEVEL_ENGINE>
                    <SOUNDLEVEL_DRIVEBY>int</SOUNDLEVEL_DRIVEBY>
                    <PREVIOUSAQUISITION>string</PREVIOUSAQUISITION>
                    <PREVIOUSDISPOSAL>int</PREVIOUSDISPOSAL>
                    <PREVIOUSKEEPERS>int</PREVIOUSKEEPERS>
                    <CHERISHEDTRANSFERMARKER>string</CHERISHEDTRANSFERMARKER>
                    <TRANSFERDATE>string</TRANSFERDATE>
                </DVLA>
                <SMMT>
                    <MVRIS>string</MVRIS>
                    <VRM>string</VRM>
                    <VIN>string</VIN>
                    <REGISTRATIONDATE>int</REGISTRATIONDATE>
                </SMMT>
                <CAP>
                    <VEHICLETYPE_ID>int</VEHICLETYPE_ID>
                    <VEHICLETYPE>string</VEHICLETYPE>
                    <CAPID>int</CAPID>
                    <CAPCODE>string</CAPCODE>
                    <ENHANCEDCAPCODE>string</ENHANCEDCAPCODE>
                    <ENHANCEDCAPCODE_IDENTIFIER>string</ENHANCEDCAPCODE_IDENTIFIER>
                    <ENHANCEDCAPCODE_TECNICAL>string</ENHANCEDCAPCODE_TECNICAL>
                    <MANUFACTURER_CODE>int</MANUFACTURER_CODE>
                    <MANUFACTURER>string</MANUFACTURER>
                    <RANGE_CODE>int</RANGE_CODE>
                    <RANGE>string</RANGE>
                    <MODEL_CODE>int</MODEL_CODE>
                    <MODEL>string</MODEL>
                    <MODELDATEDESC_SHORT>string</MODELDATEDESC_SHORT>
                    <MODELDATEDESC_LONG>string</MODELDATEDESC_LONG>
                    <DERIVATIVE>string</DERIVATIVE>
                    <DERIVATIVEDATEDESC_SHORT>string</DERIVATIVEDATEDESC_SHORT>
                    <DERIVATIVEDATEDESC_LONG>string</DERIVATIVEDATEDESC_LONG>
                    <INTRODUCED>int</INTRODUCED>
                    <DISCONTINUED>int</DISCONTINUED>
                    <RUNOUTDATE>int</RUNOUTDATE>
                    <DOORS>int</DOORS>
                    <DRIVETRAIN>string</DRIVETRAIN>
                    <FUELDELIVERY>string</FUELDELIVERY>
                    <TRANSMISSION>string</TRANSMISSION>
                    <FUELTYPE>string</FUELTYPE>
                    <PLATE>string</PLATE>
                    <PLATE_SEQNO>int</PLATE_SEQNO>
                    <PLATE_YEAR>int</PLATE_YEAR>
                    <PLATE_MONTH>int</PLATE_MONTH>
                </CAP>
            </DATA>
        </RESPONSE>
    </DVLALookupVRMResult>
</DVLALookupVRMResponse>

DVLALookupAlternativeVRM

This operation allows you to find out whether there are alternative derivatives using a VRM lookup. This information is also included in the DVLALookupVIN and DVLALookupVRM operations. The response will include information on the match level (i.e. whether a match was made with DVLA, SMMT and cap hpi data), the data held for the VRM from each source (e.g. VIN, MVRIS code, cap ID, cap code) as well as the derivative name, cap ID, cap code, vehicle type ID and vehicle type description for any alternative derivatives. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/dvla/capdvla.asmx/DVLALookupAlternativeVRM

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyvrmstringNo
BodypreviousAuditRefintNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<DVLALookupAlternativeVRMResponse xmlns="https://soap.cap.co.uk/dvla">
    <DVLALookupAlternativeVRMResult>
        <RESPONSE xmlns="">
            <SUCCESS>true</SUCCESS>
            <ERRORMESSAGE></ERRORMESSAGE>
            <TIMESTAMP>dateTime</TIMESTAMP>
            <AUDITID>int</AUDITID>
            <LOOKUP_VRM>string</LOOKUP_VRM>
            <LOOKUP_VIN />
            <MONTHLYLOOKUPLIMITEXCEEDED>boolean</MONTHLYLOOKUPLIMITEXCEEDED>
            <AUTOCORRECTED>boolean</AUTOCORRECTED>
            <AUTOCORRECTEDREASON></AUTOCORRECTEDREASON>
            <MATCHLEVEL>
                <DVLA>int</DVLA>
                <DVLAKEEPER>int</DVLAKEEPER>
                <DVLABASIC>int</DVLABASIC>
                <SMMT>int</SMMT>
                <CAP>int</CAP>
                <ALTERNATIVEVRMS>int</ALTERNATIVEVRMS>
                <ALTERNATIVEDERIVATIVES>int</ALTERNATIVEDERIVATIVES>
            </MATCHLEVEL>
            <DATA>
                <DVLA>
                    <VRM>string</VRM>
                    <VIN>string</VIN>
                    <MANUFACTURER>string</MANUFACTURER>
                    <MODEL>string</MODEL>
                    <FUELTYPE>string</FUELTYPE>
                    <BODYTYPE>string</BODYTYPE>
                    <DOORS>int</DOORS>
                    <SEATING>int</SEATING>
                    <WHEELPLAN>string</WHEELPLAN>
                    <REGISTRATIONDATE>int</REGISTRATIONDATE>
                    <MANUFACTUREDDATE>int</MANUFACTUREDDATE>
                    <FIRSTREG_DATE>string</FIRSTREG_DATE>
                    <FIRSTREG_USEDBEFORE>int</FIRSTREG_USEDBEFORE>
                    <CO2>int</CO2>
                    <ENGINECAPACITY>int</ENGINECAPACITY>
                    <ENGINENUMBER>string</ENGINENUMBER>
                    <ISSCRAPPED>string</ISSCRAPPED>
                    <SCRAPPEDDATE>string</SCRAPPEDDATE>
                    <ISEXPORTED>string</ISEXPORTED>
                    <EXPORTEDDATE>string</EXPORTEDDATE>
                    <ISIMPORTED>string</ISIMPORTED>
                    <IMPORTEDDATE>string</IMPORTEDDATE>
                    <COLOUR>string</COLOUR>
                    <MASSINSERVICE>int</MASSINSERVICE>
                    <MAXMASS>int</MAXMASS>
                    <MAXNETPOWER>int</MAXNETPOWER>
                    <MAXTOW_BRAKED>int</MAXTOW_BRAKED>
                    <MAXTOW_UNBRAKED>int</MAXTOW_UNBRAKED>
                    <SOUNDLEVEL_STATIONARY>int</SOUNDLEVEL_STATIONARY>
                    <SOUNDLEVEL_ENGINE>int</SOUNDLEVEL_ENGINE>
                    <SOUNDLEVEL_DRIVEBY>int</SOUNDLEVEL_DRIVEBY>
                    <PREVIOUSAQUISITION>string</PREVIOUSAQUISITION>
                    <PREVIOUSDISPOSAL>int</PREVIOUSDISPOSAL>
                    <PREVIOUSKEEPERS>int</PREVIOUSKEEPERS>
                    <CHERISHEDTRANSFERMARKER>string</CHERISHEDTRANSFERMARKER>
                    <TRANSFERDATE>string</TRANSFERDATE>
                </DVLA>
                <SMMT>
                    <MVRIS>string</MVRIS>
                    <VRM>string</VRM>
                    <VIN>string</VIN>
                    <REGISTRATIONDATE>int</REGISTRATIONDATE>
                </SMMT>
                <CAP>
                    <VEHICLETYPE_ID>int</VEHICLETYPE_ID>
                    <VEHICLETYPE>string</VEHICLETYPE>
                    <CAPID>int</CAPID>
                    <CAPCODE>string</CAPCODE>
                    <ENHANCEDCAPCODE>string</ENHANCEDCAPCODE>
                    <ENHANCEDCAPCODE_IDENTIFIER>string</ENHANCEDCAPCODE_IDENTIFIER>
                    <ENHANCEDCAPCODE_TECNICAL>string</ENHANCEDCAPCODE_TECNICAL>
                    <MANUFACTURER_CODE>int</MANUFACTURER_CODE>
                    <MANUFACTURER>string</MANUFACTURER>
                    <RANGE_CODE>int</RANGE_CODE>
                    <RANGE>string</RANGE>
                    <MODEL_CODE>int</MODEL_CODE>
                    <MODEL>string</MODEL>
                    <MODELDATEDESC_SHORT>string</MODELDATEDESC_SHORT>
                    <MODELDATEDESC_LONG>string</MODELDATEDESC_LONG>
                    <DERIVATIVE>string</DERIVATIVE>
                    <DERIVATIVEDATEDESC_SHORT>string</DERIVATIVEDATEDESC_SHORT>
                    <DERIVATIVEDATEDESC_LONG>string</DERIVATIVEDATEDESC_LONG>
                    <INTRODUCED>int</INTRODUCED>
                    <DISCONTINUED>int</DISCONTINUED>
                    <RUNOUTDATE>int</RUNOUTDATE>
                    <DOORS>int</DOORS>
                    <DRIVETRAIN>string</DRIVETRAIN>
                    <FUELDELIVERY>string</FUELDELIVERY>
                    <TRANSMISSION>string</TRANSMISSION>
                    <FUELTYPE>string</FUELTYPE>
                    <PLATE>string</PLATE>
                    <PLATE_SEQNO>int</PLATE_SEQNO>
                    <PLATE_YEAR>int</PLATE_YEAR>
                    <PLATE_MONTH>int</PLATE_MONTH>
                </CAP>
            </DATA>
        </RESPONSE>
    </DVLALookupAlternativeVRMResult>
</DVLALookupAlternativeVRMResponse>

DVLALookupVIN

This operation allows you to pass in the VIN and receive vehicle data held by the DVLA, SMMT and cap hpi. The response will include information on the match level (i.e. whether a match was made with DVLA, SMMT and cap hpi data) as well as the data held for the VIN from each source (e.g. VIN, MVRIS code, cap ID, cap code). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/dvla/capdvla.asmx/DVLALookupVIN

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyvinVehicle Identification NumberstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<DVLALookupVINResponse xmlns="https://soap.cap.co.uk/dvla">
    <DVLALookupVINResult>
        <RESPONSE xmlns="">
            <SUCCESS>true</SUCCESS>
            <ERRORMESSAGE></ERRORMESSAGE>
            <TIMESTAMP>dateTime</TIMESTAMP>
            <AUDITID>int</AUDITID>
            <LOOKUP_VRM />
            <LOOKUP_VIN>string</LOOKUP_VIN>
            <MONTHLYLOOKUPLIMITEXCEEDED>boolean</MONTHLYLOOKUPLIMITEXCEEDED>
            <AUTOCORRECTED>boolean</AUTOCORRECTED>
            <AUTOCORRECTEDREASON></AUTOCORRECTEDREASON>
            <MATCHLEVEL>
                <DVLA>int</DVLA>
                <DVLAKEEPER>int</DVLAKEEPER>
                <DVLABASIC>int</DVLABASIC>
                <SMMT>int</SMMT>
                <CAP>int</CAP>
                <ALTERNATIVEVRMS>int</ALTERNATIVEVRMS>
                <ALTERNATIVEDERIVATIVES>int</ALTERNATIVEDERIVATIVES>
            </MATCHLEVEL>
            <DATA>
                <DVLA>
                    <VRM>string</VRM>
                    <VIN>string</VIN>
                    <MANUFACTURER>string</MANUFACTURER>
                    <MODEL>string</MODEL>
                    <FUELTYPE>string</FUELTYPE>
                    <BODYTYPE>string</BODYTYPE>
                    <DOORS>int</DOORS>
                    <SEATING>int</SEATING>
                    <WHEELPLAN>string</WHEELPLAN>
                    <REGISTRATIONDATE>int</REGISTRATIONDATE>
                    <MANUFACTUREDDATE>int</MANUFACTUREDDATE>
                    <FIRSTREG_DATE>string</FIRSTREG_DATE>
                    <FIRSTREG_USEDBEFORE>int</FIRSTREG_USEDBEFORE>
                    <CO2>int</CO2>
                    <ENGINECAPACITY>int</ENGINECAPACITY>
                    <ENGINENUMBER>string</ENGINENUMBER>
                    <ISSCRAPPED>string</ISSCRAPPED>
                    <SCRAPPEDDATE>string</SCRAPPEDDATE>
                    <ISEXPORTED>string</ISEXPORTED>
                    <EXPORTEDDATE>string</EXPORTEDDATE>
                    <ISIMPORTED>string</ISIMPORTED>
                    <IMPORTEDDATE>string</IMPORTEDDATE>
                    <COLOUR>string</COLOUR>
                    <MASSINSERVICE>int</MASSINSERVICE>
                    <MAXMASS>int</MAXMASS>
                    <MAXNETPOWER>int</MAXNETPOWER>
                    <MAXTOW_BRAKED>int</MAXTOW_BRAKED>
                    <MAXTOW_UNBRAKED>int</MAXTOW_UNBRAKED>
                    <SOUNDLEVEL_STATIONARY>int</SOUNDLEVEL_STATIONARY>
                    <SOUNDLEVEL_ENGINE>int</SOUNDLEVEL_ENGINE>
                    <SOUNDLEVEL_DRIVEBY>int</SOUNDLEVEL_DRIVEBY>
                    <PREVIOUSAQUISITION>string</PREVIOUSAQUISITION>
                    <PREVIOUSDISPOSAL>int</PREVIOUSDISPOSAL>
                    <PREVIOUSKEEPERS>int</PREVIOUSKEEPERS>
                    <CHERISHEDTRANSFERMARKER>string</CHERISHEDTRANSFERMARKER>
                    <TRANSFERDATE>string</TRANSFERDATE>
                </DVLA>
                <SMMT>
                    <MVRIS>string</MVRIS>
                    <VRM>string</VRM>
                    <VIN>string</VIN>
                    <REGISTRATIONDATE>int</REGISTRATIONDATE>
                </SMMT>
                <CAP>
                    <VEHICLETYPE_ID>int</VEHICLETYPE_ID>
                    <VEHICLETYPE>string</VEHICLETYPE>
                    <CAPID>int</CAPID>
                    <CAPCODE>string</CAPCODE>
                    <ENHANCEDCAPCODE>string</ENHANCEDCAPCODE>
                    <ENHANCEDCAPCODE_IDENTIFIER>string</ENHANCEDCAPCODE_IDENTIFIER>
                    <ENHANCEDCAPCODE_TECNICAL>string</ENHANCEDCAPCODE_TECNICAL>
                    <MANUFACTURER_CODE>int</MANUFACTURER_CODE>
                    <MANUFACTURER>string</MANUFACTURER>
                    <RANGE_CODE>int</RANGE_CODE>
                    <RANGE>string</RANGE>
                    <MODEL_CODE>int</MODEL_CODE>
                    <MODEL>string</MODEL>
                    <MODELDATEDESC_SHORT>string</MODELDATEDESC_SHORT>
                    <MODELDATEDESC_LONG>string</MODELDATEDESC_LONG>
                    <DERIVATIVE>string</DERIVATIVE>
                    <DERIVATIVEDATEDESC_SHORT>string</DERIVATIVEDATEDESC_SHORT>
                    <DERIVATIVEDATEDESC_LONG>string</DERIVATIVEDATEDESC_LONG>
                    <INTRODUCED>int</INTRODUCED>
                    <DISCONTINUED>int</DISCONTINUED>
                    <RUNOUTDATE>int</RUNOUTDATE>
                    <DOORS>int</DOORS>
                    <DRIVETRAIN>string</DRIVETRAIN>
                    <FUELDELIVERY>string</FUELDELIVERY>
                    <TRANSMISSION>string</TRANSMISSION>
                    <FUELTYPE>string</FUELTYPE>
                    <PLATE>string</PLATE>
                    <PLATE_SEQNO>int</PLATE_SEQNO>
                    <PLATE_YEAR>int</PLATE_YEAR>
                    <PLATE_MONTH>int</PLATE_MONTH>
                </CAP>
            </DATA>
        </RESPONSE>
    </DVLALookupVINResult>
</DVLALookupVINResponse>

ViewLookup_GetCurrentStatus

This operation allows you to view the current status of your account. The response will detail whether your account has a limit, what the limit is, how many lookups you have used, whether you have exceeded your limit and the current month (displayed as month year e.g. July 2017). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/dvla/capdvla.asmx/ViewLookup_GetCurrentStatus

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<ViewLookup_GetCurrentStatusResponse xmlns="https://soap.cap.co.uk/dvla">
    <ViewLookup_GetCurrentStatusResult>
        <RESPONSE xmlns="">
            <SUCCESS>boolean</SUCCESS>
            <ERRORMESSAGE></ERRORMESSAGE>
            <TIMESTAMP>dateTime</TIMESTAMP>
            <LIMITENABLED>boolean</LIMITENABLED>
            <MONTHLYLIMIT />
            <LOOKUPSUSED>int</LOOKUPSUSED>
            <LOOKUPEXCEEDED>boolean</LOOKUPEXCEEDED>
            <CURRENTMONTH>string</CURRENTMONTH>
        </RESPONSE>
    </ViewLookup_GetCurrentStatusResult>
</ViewLookup_GetCurrentStatusResponse>

ViewLookup_Summary

This operation allows you to view your monthly usage between two dates. The response will detail the year, month and the volume of lookups used. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/dvla/capdvla.asmx/ViewLookup_Summary

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyfromIn the format YYYY/MM/DDdateTimeNo
BodytoIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<ViewLookup_SummaryResponse xmlns="https://soap.cap.co.uk/dvla">
    <ViewLookup_SummaryResult>
        <RESPONSE xmlns="">
            <SUCCESS>true</SUCCESS>
            <ERRORMESSAGE></ERRORMESSAGE>
            <TIMESTAMP>dateTime</TIMESTAMP>
            <DATA>
                <USAGEDATA>
                    <MONTHLYUSAGE>
                        <YEAR>int</YEAR>
                        <MONTH>int</MONTH>
                        <USED>int</USED>
                    </MONTHLYUSAGE>
                </USAGEDATA>
                <LIMITDATA />
            </DATA>
        </RESPONSE>
    </ViewLookup_SummaryResult>
</ViewLookup_SummaryResponse>

DVLALookupAlternativeDerivative

This operation allows you to find out whether an alternative derivative exists for a cap ID. The response will return either a true or false response. This information is also included in the DVLALookupVIN and DVLALookupVRM operations. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/dvla/capdvla.asmx/DVLALookupAlternativeDerivative

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyAuditRefintNo
BodycapidintNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<DVLALookupAlternativeDerivativeResponse xmlns="https://soap.cap.co.uk/dvla">
  <DVLALookupAlternativeDerivativeResult>boolean</DVLALookupAlternativeDerivativeResult>
</DVLALookupAlternativeDerivativeResponse>

NVD

This web service has multiple operations which allow you to build up a comprehensive suite of new vehicle data including standard options, technical data and P11D information. The most commonly used operation is GetOptionsBundle which returns a full set of standard data for a cap ID and date.

https://soap.cap.co.uk/nvd/capnvd.asmx

GetBulkTechnicalData

This operation returns technical data for multiple vehicles at a time. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetBulkTechnicalData

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
Body capidList Comma delimited list of cap IDs **Limit of 8000 characters string No
Body specDateList Comma delimited list of spec dates in format YYYY/MM/DD **Limit of 8000 characters string No
Body techDataList Comma delimited list of the following options: 0TO62, CC, CO, CO2, MPG_COMBINED, MPG_URBAN, MPG_EXTRAURBAN, ENGINEPOWER_BHP, ENGINEPOWER_PS, ENGINEPOWER_KW, ENGINEPOWER_RPM, FUELDELIVERY, FUELTANKCAPACITY, GROSSVEHICLEWEIGHT, HC, HC+NOX, HEIGHT, INSURANCEGROUP1, INSURANCEGROUP2, INSURANCEGROUP1-50 (Car only), LENGTH, LUGGAGECAPACITYSEATSDOWN, LUGGAGECAPACITYSEATSUP, NCAPADULTOCCUPANT, NCAPCHILDOCCUPANT, NCAPOVERALLRATING, NCAPPEDESTRIAN, NCAPSAFETYASSIST, SEATS, NOX, STANDARDEMISSIONS, STANDARDMANWARRANTY_MILEAGE, STANDARDMANWARRANTY_YEARS, TOPSPEED, WIDTH string No
BodyreturnVehicleDescriptionSet to TRUE to also return the vehicle descriptionbooleanNo
BodyreturnCaPcodeTechnicalItemsSet to TRUE to return the Fuel Type, Transmission, and number of DoorsbooleanNo
BodyreturnCostNewSet to TRUE to return the cost when new (Basic and VAT) of each vehiclebooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetBulkTechnicalDataResponse xmlns="http://www.capnetwork.co.uk/CAPNVD/">
    <GetBulkTechnicalDataResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="TechData" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="TechData" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Tech_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CAPID" type="xs:int" minOccurs="0" />
                                        <xs:element name="SpecDate" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="Manufacturer" type="xs:string" minOccurs="0" />
                                        <xs:element name="Range" type="xs:string" minOccurs="0" />
                                        <xs:element name="Model" type="xs:string" minOccurs="0" />
                                        <xs:element name="Derivative" type="xs:string" minOccurs="0" />
                                        <xs:element name="ModIntroduced" type="xs:int" minOccurs="0" />
                                        <xs:element name="ModDiscontinued" type="xs:int" minOccurs="0" />
                                        <xs:element name="DerIntroducted" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="DerDiscontinued" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="BodyStyle" type="xs:string" minOccurs="0" />
                                        <xs:element name="FuelType" type="xs:string" minOccurs="0" />
                                        <xs:element name="Transmission" type="xs:string" minOccurs="0" />
                                        <xs:element name="Doors" type="xs:unsignedByte" minOccurs="0" />
                                        <xs:element name="Basic" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="VAT" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="CO" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <TechData xmlns="">
                    <Tech_Table diffgr:id="Tech_Table1" msdata:rowOrder="0">
                        <CAPID>int</CAPID>
                        <SpecDate>dateTime</SpecDate>
                        <Manufacturer>string</Manufacturer>
                        <Range>string</Range>
                        <Model>string</Model>
                        <Derivative>string</Derivative>
                        <ModIntroduced>int</ModIntroduced>
                        <ModDiscontinued>int</ModDiscontinued>
                        <DerIntroducted>dateTime</DerIntroducted>
                        <DerDiscontinued>dateTime</DerDiscontinued>
                        <BodyStyle>string</BodyStyle>
                        <FuelType>string</FuelType>
                        <Transmission>string</Transmission>
                        <Doors>unsignedByte</Doors>
                        <Basic>decimal</Basic>
                        <VAT>string</VAT>
                    </Tech_Table>
                </TechData>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetBulkTechnicalDataResult>
</GetBulkTechnicalDataResponse>

GetP11DData

This operation returns the CO2, CC, euro emissions, fuel type, and P11D percentages for 3 given tax years for a cap ID.

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetP11DData

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
Bodyyear1intNo
Bodyyear2intNo
Bodyyear3intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetP11DDataResponse xmlns="https://soap.cap.co.uk/nvd">
    <GetP11DDataResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="P11D" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="P11D" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="CO2_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CO2" type="xs:double" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Euro_Emissions_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Euro_Emissions" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="CC_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CC" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="FuelType_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="FuelType" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Year1_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Year1" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Year2_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Year2" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Year3_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Year3" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <P11D xmlns="">
                    <CO2_Table diffgr:id="CO2_Table1" msdata:rowOrder="0">
                        <CO2>double</CO2>
                    </CO2_Table>
                    <Euro_Emissions_Table diffgr:id="Euro_Emissions_Table1" msdata:rowOrder="0">
                        <Euro_Emissions>int</Euro_Emissions>
                    </Euro_Emissions_Table>
                    <CC_Table diffgr:id="CC_Table1" msdata:rowOrder="0">
                        <CC>int</CC>
                    </CC_Table>
                    <FuelType_Table diffgr:id="FuelType_Table1" msdata:rowOrder="0">
                        <FuelType>string</FuelType>
                    </FuelType_Table>
                    <Year1_Table diffgr:id="FuelType_Table1" msdata:rowOrder="0">
                        <Year1>int</Year1>
                    </Year1_Table>
                    <Year2_Table diffgr:id="FuelType_Table1" msdata:rowOrder="0">
                        <Year2>int</Year2>
                    </Year2_Table>
                    <Year3_Table diffgr:id="FuelType_Table1" msdata:rowOrder="0">
                        <Year3>int</Year2>
                    </Year3_Table>
                </P11D>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetP11DDataResult>
</GetP11DDataResponse>

GetNvdChangeDates

This operation returns a grid of change dates for a given cap ID. The response lists the date the change was made and whether the change was made to the model year, price, options, standard equipment or technical data. A change date generally denotes a manufacturer changing the specification of a vehicle. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetNvdChangeDates

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetNvdChangeDatesResponse xmlns="https://soap.cap.co.uk/nvd">
    <GetNvdChangeDatesResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="ChangeDates" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="ChangeDates" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Grid">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="dt_date" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="dt_my" type="xs:int" minOccurs="0" />
                                        <xs:element name="dt_pr" type="xs:int" minOccurs="0" />
                                        <xs:element name="dt_opt" type="xs:int" minOccurs="0" />
                                        <xs:element name="dt_se" type="xs:int" minOccurs="0" />
                                        <xs:element name="dt_tech" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <ChangeDates xmlns="">
                    <Grid diffgr:id="Grid1" msdata:rowOrder="0">
                        <dt_date>dateTime</dt_date>
                        <dt_my>int</dt_my>
                        <dt_pr>int</dt_pr>
                        <dt_opt>int</dt_opt>
                        <dt_se>int</dt_se>
                        <dt_tech>int</dt_tech>
                    </Grid>
                    <Grid diffgr:id="Grid2" msdata:rowOrder="1">
                        <dt_date>dateTime</dt_date>
                        <dt_my>int</dt_my>
                        <dt_pr>int</dt_pr>
                        <dt_opt>int</dt_opt>
                        <dt_se>int</dt_se>
                        <dt_tech>int</dt_tech>
                    </Grid>
                    <Grid diffgr:id="Grid3" msdata:rowOrder="2">
                        <dt_date>dateTime</dt_date>
                        <dt_my>int</dt_my>
                        <dt_pr>int</dt_pr>
                        <dt_opt>int</dt_opt>
                        <dt_se>int</dt_se>
                        <dt_tech>int</dt_tech>
                    </Grid>
                    ...
                </ChangeDates>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetNvdChangeDatesResult>
</GetNvdChangeDatesResponse>

GetGenericOptions

This operation allows you to request a list of all generic options and their generic categories. For example, the generic description for DVD Satellite Navigation is 'Navigation System'. The response will detail the category name, option description, option code and category code. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetGenericOptions

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetGenericOptionsResponse xmlns="https://soap.cap.co.uk/nvd">
    <GetGenericOptionsResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="GenericOptions" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="GenericOptions" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Items">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="DC_Description" type="xs:string" minOccurs="0" />
                                        <xs:element name="DG_Description" type="xs:string" minOccurs="0" />
                                        <xs:element name="DG_GenericCode" type="xs:int" minOccurs="0" />
                                        <xs:element name="DG_CatCode" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <GenericOptions xmlns="">
                    <Items diffgr:id="Items1" msdata:rowOrder="0">
                        <DC_Description>string</DC_Description>
                        <DG_Description>string</DG_Description>
                        <DG_GenericCode>int</DG_GenericCode>
                        <DG_CatCode>int</DG_CatCode>
                    </Items>
                    <Items diffgr:id="Items2" msdata:rowOrder="1">
                        <DC_Description>string</DC_Description>
                        <DG_Description>string</DG_Description>
                        <DG_GenericCode>int</DG_GenericCode>
                        <DG_CatCode>int</DG_CatCode>
                    </Items>
                    <Items diffgr:id="Items3" msdata:rowOrder="2">
                        <DC_Description>string</DC_Description>
                        <DG_Description>string</DG_Description>
                        <DG_GenericCode>int</DG_GenericCode>
                        <DG_CatCode>int</DG_CatCode>
                    </Items>
                    ...
                </GenericOptions>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetGenericOptionsResult>
</GetGenericOptionsResponse>

GetColourHoodLinks

This operation returns the colour/hood links for convertibles for a given cap ID and date. The response will detail the name and option code for each colour that is available, the name and option code of each hood that is available and which colour is available with which hood. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetColourHoodLinks

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodychDateIn the format YYYY/MM/DDdateTimeNo
BodyjustCurrentSet to TRUE to return the current data and enter any date for chDatebooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetColourHoodLinksResponse xmlns="https://soap.cap.co.uk/nvd">
    <GetColourHoodLinksResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="ColourHoodLinks" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="ColourHoodLinks" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Colours">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="do_optionCode" type="xs:int" minOccurs="0" />
                                        <xs:element name="colours" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Hoods">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="do_optionCode" type="xs:int" minOccurs="0" />
                                        <xs:element name="hoods" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Links">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="chl_colorcode" type="xs:int" minOccurs="0" />
                                        <xs:element name="chl_hoodcode" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <ColourHoodLinks xmlns="">
                    <Colours diffgr:id="Colours1" msdata:rowOrder="0">
                        <do_optionCode>int</do_optionCode>
                        <colours>string</colours>
                    </Colours>
                    <Colours diffgr:id="Colours2" msdata:rowOrder="1">
                        <do_optionCode>int</do_optionCode>
                        <colours>string</colours>
                    </Colours>
                    <Colours diffgr:id="Colours3" msdata:rowOrder="2">
                        <do_optionCode>int</do_optionCode>
                        <colours>string</colours>
                    </Colours>
                    ...
                    <Hoods diffgr:id="Hoods1" msdata:rowOrder="0">
                        <do_optionCode>int</do_optionCode>
                        <hoods>string</hoods>
                    </Hoods>
                    <Hoods diffgr:id="Hoods2" msdata:rowOrder="1">
                        <do_optionCode>int</do_optionCode>
                        <hoods>string</hoods>
                    </Hoods>
                    <Hoods diffgr:id="Hoods2" msdata:rowOrder="1">
                        <do_optionCode>int</do_optionCode>
                        <hoods>string</hoods>
                    </Hoods>
                    ...
                    <Links diffgr:id="Links1" msdata:rowOrder="0">
                        <chl_colorcode>int</chl_colorcode>
                        <chl_hoodcode>int</chl_hoodcode>
                    </Links>
                    <Links diffgr:id="Links2" msdata:rowOrder="1">
                        <chl_colorcode>int</chl_colorcode>
                        <chl_hoodcode>int</chl_hoodcode>
                    </Links>
                    <Links diffgr:id="Links3" msdata:rowOrder="2">
                        <chl_colorcode>int</chl_colorcode>
                        <chl_hoodcode>int</chl_hoodcode>
                    </Links>
                    ...
                </ColourHoodLinks>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetColourHoodLinksResult>
</GetColourHoodLinksResponse>

GetColourTrimLinks

This operation returns the ID's colour/trim links for a given cap ID and date. The response will detail the name and option code for each colour that is available, the name and option code of each interior trim that is available and which colour is available with which trim. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetColourTrimLinks

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyctDateIn the format YYYY/MM/DDdateTimeNo
BodyjustCurrentSet to TRUE to return the current data and enter any date for chDatebooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetColourTrimLinksResponse xmlns="https://soap.cap.co.uk/nvd">
    <GetColourTrimLinksResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="ColourTrimLinks" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="ColourTrimLinks" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Colours">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="do_optionCode" type="xs:int" minOccurs="0" />
                                        <xs:element name="colours" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Trims">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="do_optionCode" type="xs:int" minOccurs="0" />
                                        <xs:element name="trims" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="Links">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="ctl_colorcode" type="xs:int" minOccurs="0" />
                                        <xs:element name="ctl_trimcode" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <ColourTrimLinks xmlns="">
                    <Colours diffgr:id="Colours1" msdata:rowOrder="0">
                        <do_optionCode>int</do_optionCode>
                        <colours>string</colours>
                    </Colours>
                    <Colours diffgr:id="Colours2" msdata:rowOrder="1">
                        <do_optionCode>int</do_optionCode>
                        <colours>string</colours>
                    </Colours>
                    <Colours diffgr:id="Colours3" msdata:rowOrder="2">
                        <do_optionCode>int</do_optionCode>
                        <colours>string</colours>
                    </Colours>
                    ...
                    <Trims diffgr:id="Trims1" msdata:rowOrder="0">
                        <do_optionCode>int</do_optionCode>
                        <trims>string</trims>
                    </Trims>
                    <Trims diffgr:id="Trims2" msdata:rowOrder="1">
                        <do_optionCode>int</do_optionCode>
                        <trims>string</trims>
                    </Trims>
                    <Trims diffgr:id="Trims3" msdata:rowOrder="2">
                        <do_optionCode>int</do_optionCode>
                        <trims>string</trims>
                    </Trims>
                    ...
                    <Links diffgr:id="Links1" msdata:rowOrder="0">
                        <ctl_colorcode>int</ctl_colorcode>
                        <ctl_trimcode>int</ctl_trimcode>
                    </Links>
                    <Links diffgr:id="Links2" msdata:rowOrder="1">
                        <ctl_colorcode>int</ctl_colorcode>
                        <ctl_trimcode>int</ctl_trimcode>
                    </Links>
                    <Links diffgr:id="Links3" msdata:rowOrder="2">
                        <ctl_colorcode>int</ctl_colorcode>
                        <ctl_trimcode>int</ctl_trimcode>
                    </Links>
                    ...
                </ColourTrimLinks>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetColourTrimLinksResult>
</GetColourTrimLinksResponse>

GetTechnicalData

This operation returns the technical data items for a cap ID and date. The response will detail the technical code, technical description, category description and value. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetTechnicalData

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodytechDateIn the format YYYY/MM/DDdateTimeNo
BodyjustCurrentSet to TRUE to return the current dataset and enter any date for techDatebooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetTechnicalDataResponse xmlns="https://soap.cap.co.uk/nvd">
    <GetTechnicalDataResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="TechnicalData" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="TechnicalData" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Tech">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Tech_TechCode" type="xs:int" minOccurs="0" />
                                        <xs:element name="DT_LongDescription" type="xs:string" minOccurs="0" />
                                        <xs:element name="Dc_Description" type="xs:string" minOccurs="0" />
                                        <xs:element name="tech_value_string" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <TechnicalData xmlns="">
                    <Tech diffgr:id="Tech1" msdata:rowOrder="0">
                        <Tech_TechCode>int</Tech_TechCode>
                        <DT_LongDescription>string</DT_LongDescription>
                        <Dc_Description>string</Dc_Description>
                        <tech_value_string>int</tech_value_string>
                    </Tech>
                    <Tech diffgr:id="Tech2" msdata:rowOrder="1">
                        <Tech_TechCode>int</Tech_TechCode>
                        <DT_LongDescription>string</DT_LongDescription>
                        <Dc_Description>string</Dc_Description>
                        <tech_value_string>int</tech_value_string>
                    </Tech>
                    <Tech diffgr:id="Tech3" msdata:rowOrder="2">
                        <Tech_TechCode>int</Tech_TechCode>
                        <DT_LongDescription>string</DT_LongDescription>
                        <Dc_Description>string</Dc_Description>
                        <tech_value_string>int</tech_value_string>
                    </Tech>
                    ...
                </TechnicalData>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetTechnicalDataResult>
</GetTechnicalDataResponse>

GetStandardEquipment

This operation returns the standard equipment for a cap ID and date. The response will detail the option code, category description and option description. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetStandardEquipment

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyseDateIn the format YYYY/MM/DDdateTimeNo
BodyjustCurrentSet to TRUE to return the current dataset and enter any date for seDatebooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetStandardEquipmentResponse xmlns="https://soap.cap.co.uk/nvd">
    <GetStandardEquipmentResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="StandardEquipement" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="StandardEquipement" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="SE">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Se_OptionCode" type="xs:int" minOccurs="0" />
                                        <xs:element name="Do_Description" type="xs:string" minOccurs="0" />
                                        <xs:element name="Dc_Description" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <StandardEquipement xmlns="">
                    <SE diffgr:id="SE1" msdata:rowOrder="0">
                        <Se_OptionCode>int</Se_OptionCode>
                        <Do_Description>string</Do_Description>
                        <Dc_Description>string</Dc_Description>
                    </SE>
                    <SE diffgr:id="SE2" msdata:rowOrder="1">
                        <Se_OptionCode>int</Se_OptionCode>
                        <Do_Description>string</Do_Description>
                        <Dc_Description>string</Dc_Description>
                    </SE>
                    <SE diffgr:id="SE3" msdata:rowOrder="2">
                        <Se_OptionCode>int</Se_OptionCode>
                        <Do_Description>string</Do_Description>
                        <Dc_Description>string</Dc_Description>
                    </SE>
                    ...
                </StandardEquipement>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetStandardEquipmentResult>
</GetStandardEquipmentResponse>

GetGenericOptionLinks

This operation allows you to return the option codes linked to each of the generic items. The response will detail the item name along with all linked option codes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetGenericOptionLinks

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetGenericOptionLinksResponse xmlns="https://soap.cap.co.uk/nvd">
    <GetGenericOptionLinksResult>
        <CapDictionary xmlns="">
            <Item name="string" values=",int,int,int,int...," />
            <Item name="string" values=",int,int,int,int...," />
            <Item name="string" values=",int,int,int,int...," />
            ...
        </CapDictionary>
    </GetGenericOptionLinksResult>
</GetGenericOptionLinksResponse>

GetCapOptionsBundle

This operation, for a given cap ID and date, returns the vehicle description and price, options, relationship items, pack contents and technical items. The response will details the following vehicle and price information:

Field name Example Supporting Information
CVehicle_ManText BMW
CVehicle_ShortModText 5 SERIES
CVehicle_ModText 5 SERIES DIESEL SALOON
CVehicle_DerText 530d SE 4dr
CVehicle_ManTextCode 869 Numerical code for the manufacturer
CVehicle_ShortModID 71 Numerical code for the range
CVehicle_ModTextCode E.g. 49490 () Numerical code for the model
CVehicle_ModIntroduced E.g. 2010
CVehicle_ModDiscontinued E.g. 2012 () Zero will be returned if the Model range is still current
CVehicle_DerIntroduced 2010-03-20 T00:00:00+00:00
PR_Basic 31454.1667
PR_VAT 6290.8333
ModelYear 2011

A number of fields for each option available on the vehicle at the specified date will also be returned:

Field name Example Supporting Information
OPT_OptionCode 1
DO_Description Delivery Option description
DC_Description On The Road Category description
OPT_Basic 617.02127659574467
OPT_VAT 123.40425531914892
OPT_Default false Default on vehicle, but can be changed Y/N
OPT_POA This is an obsolete field

The response also details option relationships which 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.

NOTE - As a general rule of thumb, default items should only be linked to 'One Of' or 'Not With' rules. If a default option is found to be linked to other rule types, it should be referred to support@cap-hpi.co.uk

Field name Example Supporting Information
RI_RuleCode 5930697 Numerical code that links the items included within the code together. The rule code is unique to the applicable rule
RI_OptionCode 83377 Option code. For every option included in the rule code, the rule code is repeated to show each option coded
RI_IsPrimary 0 The first option the rule relates to. All options linked to this rule through an option are classed as secondary
RR_RuleType OO Description of the rule code:
  • 'OO' - One Of - From the marked options, a maximum of one may be selected. E.g. 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. E.g. 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. E.g. If TV 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. E.g. 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. E.g. If 'Sat nav + Monitor + Driver Info System' is chosen, the separate 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. E.g. If Convenience Pack is selected One Metallic Paint can also be selected at 0 cost
Do_Description Metallic - White silver Option description

Pack contents are included in the response. A pack is an option in its own right, but can contain items that are also options which can be ordered independently -- these items would be flagged with the 'IN' rule described in the relationship items:

Field name Example Supporting Information
PP_PackCode 110809 The option code for the 'pack'
DO_Description Traffic sign recognition The description of each item included in the pack. For every option included in the PACK, the pack code is repeated to show each option description

Lastly, basic technical fields are returned in the response (for more detailed technical data, including the description of the technical items available for each vehicle, use GetTechnicalData):

Field name Example Supporting Information
Tech_TechCode 67 The technical code for each item of technical data available at the specified date
Tech_Value_String 166 The value of the technical item. This example shows the technical code and value for the CO2 at the specified date
Method Url
POST https://soap.cap.co.uk/nvd/capnvd.asmx/GetCapOptionsBundle

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyoptionDateIn the format YYYY/MM/DDdateTimeNo
Body justCurrent Set to TRUE to just return the current data, then enter any date as optionDate boolean No
BodydescriptionRsSet to TRUE to return the vehicle descriptionbooleanNo
BodyoptionsRsSet to TRUE to return the options and pricesbooleanNo
BodyrelationshipsRsSet to TRUE to return the option relationshipsbooleanNo
BodypackRsSet to TRUE to return the pack informationbooleanNo
BodytechnicalRsSet to TRUE to return the technical databooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
        <GetCapOptionsBundleResponse xmlns="https://soap.cap.co.uk/nvd">
            <GetCapOptionsBundleResult>
                <Success>true</Success>
                <FailMessage />
                <Returned_DataSet>
                    <xs:schema id="NVDBundle" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                        <xs:element name="NVDBundle" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                            <xs:complexType>
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element name="Options">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Opt_OptionCode" type="xs:int" minOccurs="0" />
                                                <xs:element name="Do_Description" type="xs:string" minOccurs="0" />
                                                <xs:element name="Dc_Description" type="xs:string" minOccurs="0" />
                                                <xs:element name="Opt_Basic" type="xs:double" minOccurs="0" />
                                                <xs:element name="Opt_VAT" type="xs:double" minOccurs="0" />
                                                <xs:element name="Opt_Default" type="xs:boolean" minOccurs="0" />
                                                <xs:element name="Opt_POA" type="xs:boolean" minOccurs="0" />
                                                <xs:element name="TableOrder" type="xs:int" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Relationships">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="RI_RuleCode" type="xs:int" minOccurs="0" />
                                                <xs:element name="RI_OptionCode" type="xs:int" minOccurs="0" />
                                                <xs:element name="RI_IsPrimary" type="xs:unsignedByte" minOccurs="0" />
                                                <xs:element name="RR_RuleType" type="xs:string" minOccurs="0" />
                                                <xs:element name="Do_Description" type="xs:string" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Packs">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="PP_PackCode" type="xs:int" minOccurs="0" />
                                                <xs:element name="Do_Description" type="xs:string" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Technical">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Tech_TechCode" type="xs:int" minOccurs="0" />
                                                <xs:element name="Tech_Value_String" type="xs:string" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element name="ValidDateRange">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="min" type="xs:dateTime" minOccurs="0" />
                                                <xs:element name="max" type="xs:dateTime" minOccurs="0" />
                                                <xs:element name="modelyear" type="xs:string" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:choice>
                            </xs:complexType>
                        </xs:element>
                    </xs:schema>
                    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                        <NVDBundle xmlns="">
                            <Options diffgr:id="Options1" msdata:rowOrder="0">
                                <Opt_OptionCode>int</Opt_OptionCode>
                                <Do_Description>string</Do_Description>
                                <Dc_Description>string</Dc_Description>
                                <Opt_Basic>double</Opt_Basic>
                                <Opt_VAT>double</Opt_VAT>
                                <Opt_Default>boolean</Opt_Default>
                                <Opt_POA>boolean</Opt_POA>
                                <TableOrder>int</TableOrder>
                            </Options>
                            <Options diffgr:id="Options2" msdata:rowOrder="1">
                                <Opt_OptionCode>int</Opt_OptionCode>
                                <Do_Description>string</Do_Description>
                                <Dc_Description>string</Dc_Description>
                                <Opt_Basic>double</Opt_Basic>
                                <Opt_VAT>double</Opt_VAT>
                                <Opt_Default>boolean</Opt_Default>
                                <Opt_POA>boolean</Opt_POA>
                                <TableOrder>int</TableOrder>
                            </Options>
                            <Options diffgr:id="Options3" msdata:rowOrder="2">
                                <Opt_OptionCode>int</Opt_OptionCode>
                                <Do_Description>string</Do_Description>
                                <Dc_Description>string</Dc_Description>
                                <Opt_Basic>double</Opt_Basic>
                                <Opt_VAT>double</Opt_VAT>
                                <Opt_Default>boolean</Opt_Default>
                                <Opt_POA>boolean</Opt_POA>
                                <TableOrder>int</TableOrder>
                            </Options>
                            ...
                            <Relationships diffgr:id="Relationships1" msdata:rowOrder="0">
                                <RI_RuleCode>int</RI_RuleCode>
                                <RI_OptionCode>int</RI_OptionCode>
                                <RI_IsPrimary>unsignedByte</RI_IsPrimary>
                                <RR_RuleType>string</RR_RuleType>
                                <Do_Description>string</Do_Description>
                            </Relationships>
                            <Relationships diffgr:id="Relationships2" msdata:rowOrder="1">
                                <RI_RuleCode>int</RI_RuleCode>
                                <RI_OptionCode>int</RI_OptionCode>
                                <RI_IsPrimary>unsignedByte</RI_IsPrimary>
                                <RR_RuleType>string</RR_RuleType>
                                <Do_Description>string</Do_Description>
                            </Relationships>
                            <Relationships diffgr:id="Relationships3" msdata:rowOrder="2">
                                <RI_RuleCode>int</RI_RuleCode>
                                <RI_OptionCode>int</RI_OptionCode>
                                <RI_IsPrimary>unsignedByte</RI_IsPrimary>
                                <RR_RuleType>string</RR_RuleType>
                                <Do_Description>string</Do_Description>
                            </Relationships>
                            ...
                            <Packs diffgr:id="Packs1" msdata:rowOrder="0">
                                <PP_PackCode>int</PP_PackCode>
                                <Do_Description>string</Do_Description>
                            </Packs>
                            <Packs diffgr:id="Packs2" msdata:rowOrder="1">
                                <PP_PackCode>int</PP_PackCode>
                                <Do_Description>string</Do_Description>
                            </Packs>
                            <Packs diffgr:id="Packs3" msdata:rowOrder="2">
                                <PP_PackCode>int</PP_PackCode>
                                <Do_Description>string</Do_Description>
                            </Packs>
                            ...
                            <Technical diffgr:id="Technical1" msdata:rowOrder="0">
                                <Tech_TechCode>int</Tech_TechCode>
                                <Tech_Value_String>string</Tech_Value_String>
                            </Technical>
                            <ValidDateRange diffgr:id="ValidDateRange1" msdata:rowOrder="0">
                                <min>dateTime</min>
                                <max>dateTime</max>
                                <modelyear>string</modelyear>
                            </ValidDateRange>
                        </NVDBundle>
                    </diffgr:diffgram>
                </Returned_DataSet>
            </GetCapOptionsBundleResult>
        </GetCapOptionsBundleResponse>

Vehicles

This web service is used in conjunction with all other data sets to identify a vehicle and allows you to build up vehicle description data. The operations are listed in a suggested order for building up the vehicle description where the VRM, cap code or cap ID are not used as the primary identifier. You can build vehicle information using either 3 (Manufacturer, Model, Derivative) or 4 (Manufacturer, Range, Model, Derivative) levels of data. Using 4 levels allows for an additional level of filtering and makes it easier to identify and select the correct vehicle.

https://soap.cap.co.uk/vehicles/capvehicles.asmx

GetCapMan

This operation returns a list of cap hpi manufacturers e.g. Audi. The response will detail the manufacturer code and manufacturer name. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapMan

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodyjustCurrentManufacturersIf TRUE, only current manufacturers are returnedbooleanNo
Body bodyStyleFilter This can be left blank to return all body styles or a comma delimited string of the following body types: 1 = 4x4 2 = City Car 3 = Coupe 4 = Estate 5 = Hatchback 6 = MPV 7 = Saloon 8 = Sports string No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapManResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapManResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CMan_Code" type="xs:int" minOccurs="0" />
                                        <xs:element name="CMan_Name" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CMan_Code>int</CMan_Code>
                        <CMan_Name>string</CMan_Name>
                    </Table>
                    <Table diffgr:id="Table2" msdata:rowOrder="1">
                        <CMan_Code>int</CMan_Code>
                        <CMan_Name>string</CMan_Name>
                    </Table>
                    <Table diffgr:id="Table3" msdata:rowOrder="2">
                        <CMan_Code>int</CMan_Code>
                        <CMan_Name>string</CMan_Name>
                    </Table>
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapManResult>
</GetCapManResponse>

GetCapMan_IncludeOnRunout

This operation returns a list of cap hpi manufacturers e.g. Audi. The response will detail the manufacturer code and manufacturer name. 'On run out' means something that is being phased out; still sold but no longer manufactured. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapMan_IncludeOnRunout

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodyjustCurrentManufacturersIf TRUE, only current manufacturers are returnedbooleanNo
Body bodyStyleFilter This can be left blank to return all body styles or a comma delimited string of the following body types: 1 = 4x4 2 = City Car 3 = Coupe 4 = Estate 5 = Hatchback 6 = MPV 7 = Saloon 8 = Sports string No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <GetCapMan_IncludeOnRunoutResponse xmlns="https://soap.cap.co.uk/vehicles">
            <GetCapMan_IncludeOnRunoutResult>
                <Success>true</Success>
                <FailMessage />
                <Returned_DataSet>
                    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                        <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                            <xs:complexType>
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element name="Table">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="CMan_Code" type="xs:int" minOccurs="0" />
                                                <xs:element name="CMan_Name" type="xs:string" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:choice>
                            </xs:complexType>
                        </xs:element>
                    </xs:schema>
                    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                        <NewDataSet xmlns="">
                            <Table diffgr:id="Table1" msdata:rowOrder="0">
                                <CMan_Code>int</CMan_Code>
                                <CMan_Name>string</CMan_Name>
                            </Table>
                            <Table diffgr:id="Table2" msdata:rowOrder="1">
                                <CMan_Code>int</CMan_Code>
                                <CMan_Name>string</CMan_Name>
                            </Table>
                            <Table diffgr:id="Table3" msdata:rowOrder="2">
                                <CMan_Code>int</CMan_Code>
                                <CMan_Name>string</CMan_Name>
                            </Table>
                            ...
                        </NewDataSet>
                    </diffgr:diffgram>
                </Returned_DataSet>
            </GetCapMan_IncludeOnRunoutResult>
        </GetCapMan_IncludeOnRunoutResponse>
    </soap:Body>
</soap:Envelope>

GetCapRange

This operation returns a list of cap hpi ranges for a given manufacturer e.g. Audi A4. The response details the range code and the range name. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapRange

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodymanCodeManufacturer code returned in GetCapMan or GetCapMan_IncludeOnRunout responseintNo
BodyjustCurrentRangesIf TRUE, only current ranges are returnedbooleanNo
Body bodyStyleFilter This can be left blank to return all body styles or a comma delimited string of the following body types: 1 = 4x4 2 = City Car 3 = Coupe 4 = Estate 5 = Hatchback 6 = MPV 7 = Saloon 8 = Sports string No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapRangeResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapRangeResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CRan_Code" type="xs:int" minOccurs="0" />
                                        <xs:element name="CRan_Name" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CRan_Code>int</CRan_Code>
                        <CRan_Name>string</CRan_Name>
                    </Table>
                    <Table diffgr:id="Table2" msdata:rowOrder="1">
                        <CRan_Code>int</CRan_Code>
                        <CRan_Name>string</CRan_Name>
                    </Table>
                    <Table diffgr:id="Table3" msdata:rowOrder="2">
                        <CRan_Code>int</CRan_Code>
                        <CRan_Name>string</CRan_Name>
                    </Table>
                    ...
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapRangeResult>
</GetCapRangeResponse>

GetCapRange_IncludeOnRunout

This operation returns a list of cap hpi ranges for a given manufacturer e.g. Audi A4. The response details the range code and the range name. 'On run out' means something that is being phased out; still sold but no longer manufactured. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapRange_IncludeOnRunout

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodymanCodeManufacturer code returned in GetCapMan or GetCapMan_IncludeOnRunout responseintNo
BodyjustCurrentRangesIf TRUE, only current ranges are returnedbooleanNo
Body bodyStyleFilter This can be left blank to return all body styles or a comma delimited string of the following body types: 1 = 4x4 2 = City Car 3 = Coupe 4 = Estate 5 = Hatchback 6 = MPV 7 = Saloon 8 = Sports string No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
        <GetCapRange_IncludeOnRunoutResponse xmlns="https://soap.cap.co.uk/vehicles">
            <GetCapRange_IncludeOnRunoutResult>
                <Success>true</Success>
                <FailMessage />
                <Returned_DataSet>
                    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                        <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                            <xs:complexType>
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element name="Table">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="CRan_Code" type="xs:int" minOccurs="0" />
                                                <xs:element name="CRan_Name" type="xs:string" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:choice>
                            </xs:complexType>
                        </xs:element>
                    </xs:schema>
                    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                        <NewDataSet xmlns="">
                            <Table diffgr:id="Table1" msdata:rowOrder="0">
                                <CRan_Code>int</CRan_Code>
                                <CRan_Name>string</CRan_Name>
                            </Table>
                            <Table diffgr:id="Table2" msdata:rowOrder="1">
                                <CRan_Code>int</CRan_Code>
                                <CRan_Name>string</CRan_Name>
                            </Table>
                            <Table diffgr:id="Table3" msdata:rowOrder="2">
                                <CRan_Code>int</CRan_Code>
                                <CRan_Name>string</CRan_Name>
                            </Table>
                            ...
                        </NewDataSet>
                    </diffgr:diffgram>
                </Returned_DataSet>
            </GetCapRange_IncludeOnRunoutResult>
        </GetCapRange_IncludeOnRunoutResponse>

GetCapMod

This operation returns a list of cap hpi models for a manufacturer or range e.g. Audi A4 Saloon. The response will detail the model code, model name and the date and time the model was introduced and discontinued (if applicable). The manRanCodeIsMan can be set to True to allow vehicle data to be built using three levels (Manufacturer, Model, and Derivative) or to False to use four levels (Manufacturer, Range, Model, and Derivative). Using four levels provides an extra level of filtering. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapMod

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
Body manRanCode Range code returned in GetCapRange or GetCapRange_IncludeOnRunout response OR Manufacturer code returned in GetCapMan or GetCapMan_IncludeOnRunout response int No
BodymanRanCodeIsManSet to TRUE if passing a manufacturer code in the manRanCode field. Otherwise, set to FALSEbooleanNo
BodyjustCurrentModelsIf TRUE, only current models will be returnedbooleanNo
Body bodyStyleFilter This can be left blank to return all body styles or a comma delimited string of the following body types: 1 = 4x4 2 = City Car 3 = Coupe 4 = Estate 5 = Hatchback 6 = MPV 7 = Saloon 8 = Sports string No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapModResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapModResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CMod_Code" type="xs:int" minOccurs="0" />
                                        <xs:element name="CMod_Name" type="xs:string" minOccurs="0" />
                                        <xs:element name="CMod_Introduced" type="xs:int" minOccurs="0" />
                                        <xs:element name="CMod_Discontinued" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CMod_Code>int</CMod_Code>
                        <CMod_Name>string</CMod_Name>
                        <CMod_Introduced>int</CMod_Introduced>
                        <CMod_Discontinued>int</CMod_Discontinued>
                    </Table>
                    <Table diffgr:id="Table2" msdata:rowOrder="1">
                        <CMod_Code>int</CMod_Code>
                        <CMod_Name>string</CMod_Name>
                        <CMod_Introduced>int</CMod_Introduced>
                        <CMod_Discontinued>int</CMod_Discontinued>
                    </Table>
                    <Table diffgr:id="Table3" msdata:rowOrder="2">
                        <CMod_Code>int</CMod_Code>
                        <CMod_Name>string</CMod_Name>
                        <CMod_Introduced>int</CMod_Introduced>
                        <CMod_Discontinued>int</CMod_Discontinued>
                    </Table>
                    ...
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapModResult>
</GetCapModResponse>

GetCapMod_IncludeOnRunout

This operation returns a list of cap hpi Models for a manufacturer OR range e.g. Audi A4 Saloon. The response will detail the model code, model name and the date and time the model was introduced and discontinued (if applicable). 'On run out' means something that is being phased out; still sold but no longer manufactured. The manRanCodeIsMan can be set to True to allow vehicle data to be built using three levels (Manufacturer, Model, and Derivative) or to False to use four levels (Manufacturer, Range, Model, and Derivative). Using four levels provides an extra level of filtering. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapMod_IncludeOnRunout

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
Body manRanCode Range code returned in GetCapRange or GetCapRange_IncludeOnRunout response OR Manufacturer code returned in GetCapMan or GetCapMan_IncludeOnRunout response int No
BodymanRanCodeIsManSet to TRUE if passing a manufacturer code in the manRanCode field. Otherwise, set to FALSEbooleanNo
BodyjustCurrentModelsIf TRUE, only current models will be returnedbooleanNo
Body bodyStyleFilter This can be left blank to return all body styles or a comma delimited string of the following body types: 1 = 4x4 2 = City Car 3 = Coupe 4 = Estate 5 = Hatchback 6 = MPV 7 = Saloon 8 = Sports string No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapMod_IncludeOnRunoutResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapMod_IncludeOnRunoutResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CMod_Code" type="xs:int" minOccurs="0" />
                                        <xs:element name="CMod_Name" type="xs:string" minOccurs="0" />
                                        <xs:element name="CMod_Introduced" type="xs:int" minOccurs="0" />
                                        <xs:element name="CMod_Discontinued" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CMod_Code>int</CMod_Code>
                        <CMod_Name>string</CMod_Name>
                        <CMod_Introduced>int</CMod_Introduced>
                        <CMod_Discontinued>int</CMod_Discontinued>
                    </Table>
                    <Table diffgr:id="Table2" msdata:rowOrder="1">
                        <CMod_Code>int</CMod_Code>
                        <CMod_Name>string</CMod_Name>
                        <CMod_Introduced>int</CMod_Introduced>
                        <CMod_Discontinued>int</CMod_Discontinued>
                    </Table>
                    <Table diffgr:id="Table3" msdata:rowOrder="2">
                        <CMod_Code>int</CMod_Code>
                        <CMod_Name>string</CMod_Name>
                        <CMod_Introduced>int</CMod_Introduced>
                        <CMod_Discontinued>int</CMod_Discontinued>
                    </Table>
                    ...
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapMod_IncludeOnRunoutResult>
</GetCapMod_IncludeOnRunoutResponse>

GetCapDer

This operation returns a list of cap hpi derivatives for a given model code e.g. Audi A4 Saloon 1.8T FSI 4dr. The response will detail the derivative ID (also known as the cap ID), name, date and time the derivative was introduced and discontinued (if applicable), the last spec date and the model year reference. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapDer

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodymodCodeModel code returned in GetCapMod or GetCapMod_IncludeOnRunout responseintNo
BodyjustCurrentDerivativesIf TRUE, only current derivatives will be returnedbooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapDerResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapDerResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CDer_ID" type="xs:int" minOccurs="0" />
                                        <xs:element name="CDer_Name" type="xs:string" minOccurs="0" />
                                        <xs:element name="CDer_Introduced" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="CDer_Discontinued" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="LastSpecDate" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="ModelYearRef" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CDer_ID>int</CDer_ID>
                        <CDer_Name>string</CDer_Name>
                        <CDer_Introduced>dateTime</CDer_Introduced>
                        <LastSpecDate>dateTime</LastSpecDate>
                        <ModelYearRef>string</ModelYearRef>
                    </Table>
                    <Table diffgr:id="Table2" msdata:rowOrder="1">
                        <CDer_ID>int</CDer_ID>
                        <CDer_Name>string</CDer_Name>
                        <CDer_Introduced>dateTime</CDer_Introduced>
                        <LastSpecDate>dateTime</LastSpecDate>
                        <ModelYearRef>string</ModelYearRef>
                    </Table>
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapDerResult>
</GetCapDerResponse>

GetCapDerWithSector

This operation returns a list of cap hpi derivatives for a given model code e.g. Audi A4 Saloon 1.8T FSI 4dr. The response will detail the derivative ID (also known as the cap ID), name, date and time the derivative was introduced and discontinued (if applicable), the last spec date, the model year reference and optional sector. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapDerWithSector

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodymodCodeModel code returned in GetCapMod or GetCapMod_IncludeOnRunout responseintNo
BodyjustCurrentDerivativesIf TRUE, only current derivatives will be returnedbooleanNo
BodyshowSectorIf TRUE, also return the sector for each derivativebooleanNo

Response

Status Response
200

    <?xml version="1.0" encoding="utf-8"?>
    <GetCapDerResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapDerResult>
    <Success>true</Success>
    <FailMessage />
    <Returned_DataSet>
    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element name="Table">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="CDer_ID" type="xs:int" minOccurs="0" />
    <xs:element name="CDer_Name" type="xs:string" minOccurs="0" />
    <xs:element name="CDer_Introduced" type="xs:dateTime" minOccurs="0" />
    <xs:element name="CDer_Discontinued" type="xs:dateTime" minOccurs="0" />
    <xs:element name="LastSpecDate" type="xs:dateTime" minOccurs="0" />
    <xs:element name="ModelYearRef" type="xs:string" minOccurs="0" />
    <xs:element name="SectorDescription" type="xs:string" minOccurs="0" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <NewDataSet xmlns="">
    <Table diffgr:id="Table1" msdata:rowOrder="0">
    <CDer_ID>int</CDer_ID>
    <CDer_Name>string</CDer_Name>
    <CDer_Introduced>dateTime</CDer_Introduced>
    <LastSpecDate>dateTime</LastSpecDate>
    <ModelYearRef>string</ModelYearRef>
    </Table>
    <Table diffgr:id="Table2" msdata:rowOrder="1">
    <CDer_ID>int</CDer_ID>
    <CDer_Name>string</CDer_Name>
    <CDer_Introduced>dateTime</CDer_Introduced>
    <LastSpecDate>dateTime</LastSpecDate>
    <ModelYearRef>string</ModelYearRef>
    <SectorDescription>string</ModelYearRef>
    </Table>
    </NewDataSet>
    </diffgr:diffgram>
    </Returned_DataSet>
    </GetCapDerResult>
    </GetCapDerResponse>

GetCapDer_IncludeOnRunout

This operation returns a list of cap hpi derivatives for a given model code e.g. Audi A4 Saloon 1.8T FSI 4dr. The response will detail the derivative ID (also known as the cap ID), name, date and time the derivative was introduced and discontinued (if applicable), the last spec date and the model year reference. 'On run out' means something that is being phased out; still sold but no longer manufactured. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapDer_IncludeOnRunout

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodymodCodeModel code returned in GetCapMod or GetCapMod_IncludeOnRunout responseintNo
BodyjustCurrentDerivativesIf TRUE, only current derivatives will be returnedbooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapDerFromRange_IncludeOnRunoutResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapDerFromRange_IncludeOnRunoutResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CDer_ID" type="xs:int" minOccurs="0" />
                                        <xs:element name="CDer_Name" type="xs:string" minOccurs="0" />
                                        <xs:element name="CDer_Introduced" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="CDer_Discontinued" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="LastSpecDate" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="ModelYearRef" type="xs:string" minOccurs="0" />
                                        <xs:element name="CDer_RunOutDate" type="xs:dateTime" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CDer_ID>int</CDer_ID>
                        <CDer_Name>string</CDer_Name>
                        <CDer_Introduced>dateTime</CDer_Introduced>
                        <CDer_Discontinued>dateTime</CDer_Discontinued>
                        <LastSpecDate>dateTime</LastSpecDate>
                        <ModelYearRef>string</ModelYearRef>
                    </Table>
                    <Table diffgr:id="Table2" msdata:rowOrder="1">
                        <CDer_ID>int</CDer_ID>
                        <CDer_Name>string</CDer_Name>
                        <CDer_Introduced>dateTime</CDer_Introduced>
                        <CDer_Discontinued>dateTime</CDer_Discontinued>
                        <LastSpecDate>dateTime</LastSpecDate>
                        <ModelYearRef>string</ModelYearRef>
                    </Table>
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapDerFromRange_IncludeOnRunoutResult>
</GetCapDerFromRange_IncludeOnRunoutResponse>

GetCapDer_IncludeOnRunoutWithSector

This operation returns a list of cap hpi derivatives for a given model code e.g. Audi A4 Saloon 1.8T FSI 4dr. The response will detail the derivative ID (also known as the cap ID), name, date and time the derivative was introduced and discontinued (if applicable), the last spec date, the model year reference and optional sector. 'On run out' means something that is being phased out; still sold but no longer manufactured. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapDer_IncludeOnRunout

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodymodCodeModel code returned in GetCapMod or GetCapMod_IncludeOnRunout responseintNo
BodyjustCurrentDerivativesIf TRUE, only current derivatives will be returnedbooleanNo
BodyshowSectorIf TRUE, also return the sector for each derivativebooleanNo

Response

Status Response
200

    <?xml version="1.0" encoding="utf-8"?>
    <GetCapDerFromRange_IncludeOnRunoutResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapDerFromRange_IncludeOnRunoutResult>
    <Success>true</Success>
    <FailMessage />
    <Returned_DataSet>
    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element name="Table">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="CDer_ID" type="xs:int" minOccurs="0" />
    <xs:element name="CDer_Name" type="xs:string" minOccurs="0" />
    <xs:element name="CDer_Introduced" type="xs:dateTime" minOccurs="0" />
    <xs:element name="CDer_Discontinued" type="xs:dateTime" minOccurs="0" />
    <xs:element name="LastSpecDate" type="xs:dateTime" minOccurs="0" />
    <xs:element name="ModelYearRef" type="xs:string" minOccurs="0" />
    <xs:element name="CDer_RunOutDate" type="xs:dateTime" minOccurs="0" />
    <xs:element name="SectorDescription" type="xs:dateTime" minOccurs="0" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <NewDataSet xmlns="">
    <Table diffgr:id="Table1" msdata:rowOrder="0">
    <CDer_ID>int</CDer_ID>
    <CDer_Name>string</CDer_Name>
    <CDer_Introduced>dateTime</CDer_Introduced>
    <CDer_Discontinued>dateTime</CDer_Discontinued>
    <LastSpecDate>dateTime</LastSpecDate>
    <ModelYearRef>string</ModelYearRef>
    <SectorDescription>string</SectorDescription>
    </Table>
    <Table diffgr:id="Table2" msdata:rowOrder="1">
    <CDer_ID>int</CDer_ID>
    <CDer_Name>string</CDer_Name>
    <CDer_Introduced>dateTime</CDer_Introduced>
    <CDer_Discontinued>dateTime</CDer_Discontinued>
    <LastSpecDate>dateTime</LastSpecDate>
    <ModelYearRef>string</ModelYearRef>
    <SectorDescription>string</SectorDescription>
    </Table>
    </NewDataSet>
    </diffgr:diffgram>
    </Returned_DataSet>
    </GetCapDerFromRange_IncludeOnRunoutResult>
    </GetCapDerFromRange_IncludeOnRunoutResponse>

GetCapDerFromRange

This operation returns a list of cap hpi derivatives for a given range code e.g. Audi A4 Saloon 1.8T FSI 4dr. The response will detail the derivative ID (also known as the cap ID), name, date and time the derivative was introduced and discontinued (if applicable), the last spec date and the model year reference. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapDerFromRange

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodyranCodeRange code returned in GetCapRange or GetCapRange_IncludeOnRunout responseintNo
BodyjustCurrentDerivativesIf TRUE, only current derivatives will be returnedbooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
        <GetCapDerFromRangeResponse xmlns="https://soap.cap.co.uk/vehicles">
            <GetCapDerFromRangeResult>
                <Success>true</Success>
                <FailMessage />
                <Returned_DataSet>
                    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                        <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                            <xs:complexType>
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element name="Table">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="CDer_ID" type="xs:int" minOccurs="0" />
                                                <xs:element name="CDer_Name" type="xs:string" minOccurs="0" />
                                                <xs:element name="CDer_Introduced" type="xs:dateTime" minOccurs="0" />
                                                <xs:element name="CDer_Discontinued" type="xs:dateTime" minOccurs="0" />
                                                <xs:element name="LastSpecDate" type="xs:dateTime" minOccurs="0" />
                                                <xs:element name="ModelYearRef" type="xs:string" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:choice>
                            </xs:complexType>
                        </xs:element>
                    </xs:schema>
                    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                        <NewDataSet xmlns="">
                            <Table diffgr:id="Table1" msdata:rowOrder="0">
                                <CDer_ID>int</CDer_ID>
                                <CDer_Name>string</CDer_Name>
                                <CDer_Introduced>dateTime</CDer_Introduced>
                                <LastSpecDate>dateTime</LastSpecDate>
                                <ModelYearRef>string</ModelYearRef>
                            </Table>
                            <Table diffgr:id="Table2" msdata:rowOrder="1">
                                <CDer_ID>int</CDer_ID>
                                <CDer_Name>string</CDer_Name>
                                <CDer_Introduced>dateTime</CDer_Introduced>
                                <LastSpecDate>dateTime</LastSpecDate>
                                <ModelYearRef>string</ModelYearRef>
                            </Table>
                            <Table diffgr:id="Table3" msdata:rowOrder="2">
                                <CDer_ID>int</CDer_ID>
                                <CDer_Name>string</CDer_Name>
                                <CDer_Discontinued>dateTime</CDer_Discontinued>
                                <LastSpecDate>dateTime</LastSpecDate>
                                <ModelYearRef>string</ModelYearRef>
                            </Table>
                            ...
                        </NewDataSet>
                    </diffgr:diffgram>
                </Returned_DataSet>
            </GetCapDerFromRangeResult>
        </GetCapDerFromRangeResponse>

GetCapDerFromRange_IncludeOnRunout

This operation returns a list of cap hpi derivatives for a given range code e.g. Audi A4 Saloon 1.8T FSI 4dr. The response will detail the derivative ID (also known as the cap ID), name, date and time the derivative was introduced and discontinued (if applicable), the last spec date and the model year reference. 'On run out' means something that is being phased out; still sold but no longer manufactured. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapDerFromRange_IncludeOnRunout

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodyranCodeRange code returned in GetCapRange or GetCapRange_IncludeOnRunout responseintNo
BodyjustCurrentDerivativesIf TRUE, only current derivatives will be returnedbooleanNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapDerFromRange_IncludeOnRunoutResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapDerFromRange_IncludeOnRunoutResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CDer_ID" type="xs:int" minOccurs="0" />
                                        <xs:element name="CDer_Name" type="xs:string" minOccurs="0" />
                                        <xs:element name="CDer_Introduced" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="CDer_Discontinued" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="LastSpecDate" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="ModelYearRef" type="xs:string" minOccurs="0" />
                                        <xs:element name="CDer_RunOutDate" type="xs:dateTime" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CDer_ID>int</CDer_ID>
                        <CDer_Name>string</CDer_Name>
                        <CDer_Introduced>dateTime</CDer_Introduced>
                        <LastSpecDate>dateTime</LastSpecDate>
                        <ModelYearRef>string</ModelYearRef>
                    </Table>
                    <Table diffgr:id="Table2" msdata:rowOrder="1">
                        <CDer_ID>int</CDer_ID>
                        <CDer_Name>string</CDer_Name>
                        <CDer_Introduced>dateTime</CDer_Introduced>
                        <LastSpecDate>dateTime</LastSpecDate>
                        <ModelYearRef>string</ModelYearRef>
                    </Table>
                    <Table diffgr:id="Table3" msdata:rowOrder="2">
                        <CDer_ID>int</CDer_ID>
                        <CDer_Name>string</CDer_Name>
                        <CDer_Introduced>dateTime</CDer_Introduced>
                        <LastSpecDate>dateTime</LastSpecDate>
                        <ModelYearRef>string</ModelYearRef>
                    </Table>
                    ...
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapDerFromRange_IncludeOnRunoutResult>
</GetCapDerFromRange_IncludeOnRunoutResponse>

GetCapModelYears

This operation returns a list of cap hpi model years for a cap ID. The response details the date the model year was effective from and to, the model year reference and a model year image ID. The image ID can be used with the Vehicle Image Web Service to retrieve the model images. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapModelYears

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapModelYearsResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapModelYearsResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="Description" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="Description" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Desc">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="My_EffectiveFrom" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="My_EffectiveTo" type="xs:dateTime" minOccurs="0" />
                                        <xs:element name="My_Ref" type="xs:string" minOccurs="0" />
                                        <xs:element name="My_ImageID" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <Description xmlns="">
                    <Desc diffgr:id="Desc1" msdata:rowOrder="0">
                        <My_EffectiveFrom>dateTime</My_EffectiveFrom>
                        <My_EffectiveTo>dateTime</My_EffectiveTo>
                        <My_Ref>string</My_Ref>
                        <My_ImageID>int</My_ImageID>
                    </Desc>
                    <Desc diffgr:id="Desc2" msdata:rowOrder="1">
                        <My_EffectiveFrom>dateTime</My_EffectiveFrom>
                        <My_EffectiveTo>dateTime</My_EffectiveTo>
                        <My_Ref>string</My_Ref>
                        <My_ImageID>int</My_ImageID>
                    </Desc>
                    <Desc diffgr:id="Desc3" msdata:rowOrder="2">
                        <My_EffectiveFrom>dateTime</My_EffectiveFrom>
                        <My_EffectiveTo>dateTime</My_EffectiveTo>
                        <My_Ref>string</My_Ref>
                        <My_ImageID>int</My_ImageID>
                    </Desc>
                    ...
                </Description>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapModelYearsResult>
</GetCapModelYearsResponse>

GetCapDescriptionFromId

This operation returns the manufacturer, range, model and derivative descriptions for a given cap ID. The response details the manufacturer description, abbreviated and full model description, abbreviated and full derivative description, manufacturer text code, abbreviated model code and full model text code. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapDescriptionFromId

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapDescriptionFromIdResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapDescriptionFromIdResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CVehicle_ManText" type="xs:string" minOccurs="0" />
                                        <xs:element name="CVehicle_ShortModText" type="xs:string" minOccurs="0" />
                                        <xs:element name="CVehicle_ModText" type="xs:string" minOccurs="0" />
                                        <xs:element name="CVehicle_DerText" type="xs:string" minOccurs="0" />
                                        <xs:element name="CVehicle_ShortDerText" type="xs:string" minOccurs="0" />
                                        <xs:element name="CVehicle_ManTextCode" type="xs:int" minOccurs="0" />
                                        <xs:element name="CVehicle_ShortModID" type="xs:int" minOccurs="0" />
                                        <xs:element name="CVehicle_ModTextCode" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CVehicle_ManText>string</CVehicle_ManText>
                        <CVehicle_ShortModText>string</CVehicle_ShortModText>
                        <CVehicle_ModText>string</CVehicle_ModText>
                        <CVehicle_DerText>string</CVehicle_DerText>
                        <CVehicle_ShortDerText>string</CVehicle_ShortDerText>
                        <CVehicle_ManTextCode>int</CVehicle_ManTextCode>
                        <CVehicle_ShortModID>int</CVehicle_ShortModID>
                        <CVehicle_ModTextCode>int</CVehicle_ModTextCode>
                    </Table>
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapDescriptionFromIdResult>
</GetCapDescriptionFromIdResponse>

GetCapDescriptionFromIdWithSector

This operation returns the manufacturer, range, model and derivative descriptions for a given cap ID. The response details the manufacturer description, abbreviated and full model description, abbreviated and full derivative description, manufacturer text code, abbreviated model code, full model text code and optional sector. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapDescriptionFromIdWithSector

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyshowSectorIf TRUE, also return the sector for the derivativebooleanNo

Response

Status Response
200

    <?xml version="1.0" encoding="utf-8"?>
    <GetCapDescriptionFromIdResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapDescriptionFromIdResult>
    <Success>true</Success>
    <FailMessage />
    <Returned_DataSet>
    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element name="Table">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="CVehicle_ManText" type="xs:string" minOccurs="0" />
    <xs:element name="CVehicle_ShortModText" type="xs:string" minOccurs="0" />
    <xs:element name="CVehicle_ModText" type="xs:string" minOccurs="0" />
    <xs:element name="CVehicle_DerText" type="xs:string" minOccurs="0" />
    <xs:element name="CVehicle_ShortDerText" type="xs:string" minOccurs="0" />
    <xs:element name="CVehicle_ManTextCode" type="xs:int" minOccurs="0" />
    <xs:element name="CVehicle_ShortModID" type="xs:int" minOccurs="0" />
    <xs:element name="CVehicle_ModTextCode" type="xs:int" minOccurs="0" />
    <xs:element name="SectorDescription" type="xs:string" minOccurs="0" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
    <NewDataSet xmlns="">
    <Table diffgr:id="Table1" msdata:rowOrder="0">
    <CVehicle_ManText>string</CVehicle_ManText>
    <CVehicle_ShortModText>string</CVehicle_ShortModText>
    <CVehicle_ModText>string</CVehicle_ModText>
    <CVehicle_DerText>string</CVehicle_DerText>
    <CVehicle_ShortDerText>string</CVehicle_ShortDerText>
    <CVehicle_ManTextCode>int</CVehicle_ManTextCode>
    <CVehicle_ShortModID>int</CVehicle_ShortModID>
    <CVehicle_ModTextCode>int</CVehicle_ModTextCode>
    <SectorDescription>string</SectorDescription>
    </Table>
    </NewDataSet>
    </diffgr:diffgram>
    </Returned_DataSet>
    </GetCapDescriptionFromIdResult>
    </GetCapDescriptionFromIdResponse>

GetCapcodeFromCapid

This operation returns the cap code for a cap ID and database. The response simply lists the cap code. An empty response means that the cap ID does not exist for the database specified. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapcodeFromCapid

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapcodeFromCapidResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapcodeFromCapidResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CDer_CAPcode" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CDer_CAPcode>string</CDer_CAPcode>
                    </Table>
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapcodeFromCapidResult>
</GetCapcodeFromCapidResponse>

GetCapidFromCapcode

This operation returns the cap ID for a cap code and database. The response simply lists the cap ID. An empty response means that the cap code was not matched to any cap IDs. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/vehicles/capvehicles.asmx/GetCapidFromCapcode

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycaPcodestringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetCapidFromCapcodeResponse xmlns="https://soap.cap.co.uk/vehicles">
    <GetCapidFromCapcodeResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CDer_ID" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <NewDataSet xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <CDer_ID>int</CDer_ID>
                    </Table>
                </NewDataSet>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetCapidFromCapcodeResult>
</GetCapidFromCapcodeResponse>

P11D

This web service has a single operation which returns the P11D details for a cap ID.

https://soap.cap.co.uk/p11d/capp11d.asmx

GetP11DValuation

This operation returns the CO2, CC, euro emissions, fuel type and P11D valuation for cap ID, specification date and selected options. The response will return vehicle information (CO2, CC etc.), vehicle pricing information (basic price, VAT price, delivery, total), P11D information (basic, VAT, delivery, total) and P11D Valuation information (year 1 price, year 1 price limit, year 1 benefit etc.). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/p11d/capp11d.asmx/GetP11DValuation

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyspecificationDateIn the format YYYY/MM/DDdateTimeNo
Body selectedOptions Can be left blank or a comma delimited list of option codes (OPT_OptionCode). Selected options should not include option codes which are either part of pack contents or 'IN' option relationship rules. string No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetP11DValuationResponse xmlns="https://soap.cap.co.uk/p11d">
    <GetP11DValuationResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="P11D" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="P11D" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="VehicleInfo_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="vehinfo_co2" type="xs:double" minOccurs="0" />
                                        <xs:element name="vehinfo_euroEmissions" type="xs:int" minOccurs="0" />
                                        <xs:element name="vehinfo_cc" type="xs:int" minOccurs="0" />
                                        <xs:element name="vehinfo_fueltype" type="xs:string" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="VehiclePrice_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="price_basic" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="price_vat" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="price_delivery" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="price_total" type="xs:decimal" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="P11DPrice_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="p11d_basic" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_vat" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_delivery" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_total" type="xs:decimal" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="P11DValuation_Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="p11d_year1" type="xs:int" minOccurs="0" />
                                        <xs:element name="p11d_year1_price" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year1_priceLimit" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year1_perc" type="xs:int" minOccurs="0" />
                                        <xs:element name="p11d_year1_benefit" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year1_rate_basic" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year1_rate_higher" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year2" type="xs:int" minOccurs="0" />
                                        <xs:element name="p11d_year2_price" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year2_priceLimit" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year2_perc" type="xs:int" minOccurs="0" />
                                        <xs:element name="p11d_year2_benefit" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year2_rate_basic" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year2_rate_higher" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year3" type="xs:int" minOccurs="0" />
                                        <xs:element name="p11d_year3_price" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year3_priceLimit" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year3_perc" type="xs:int" minOccurs="0" />
                                        <xs:element name="p11d_year3_benefit" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year3_rate_basic" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="p11d_year3_rate_higher" type="xs:decimal" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <P11D xmlns="">
                    <VehicleInfo_Table diffgr:id="VehicleInfo_Table1" msdata:rowOrder="0">
                        <vehinfo_co2>double</vehinfo_co2>
                        <vehinfo_euroEmissions>int</vehinfo_euroEmissions>
                        <vehinfo_cc>int</vehinfo_cc>
                        <vehinfo_fueltype>string</vehinfo_fueltype>
                    </VehicleInfo_Table>
                    <VehiclePrice_Table diffgr:id="VehiclePrice_Table1" msdata:rowOrder="0">
                        <price_basic>decimal</price_basic>
                        <price_vat>decimal</price_vat>
                        <price_delivery>decimal</price_delivery>
                        <price_total>decimal</price_total>
                    </VehiclePrice_Table>
                    <P11DPrice_Table diffgr:id="P11DPrice_Table1" msdata:rowOrder="0">
                        <p11d_basic>decimal</p11d_basic>
                        <p11d_vat>decimal</p11d_vat>
                        <p11d_delivery>decimal</p11d_delivery>
                        <p11d_total>decimal</p11d_total>
                    </P11DPrice_Table>
                    <P11DValuation_Table diffgr:id="P11DValuation_Table1" msdata:rowOrder="0">
                        <p11d_year1>int</p11d_year1>
                        <p11d_year1_price>decimal</p11d_year1_price>
                        <p11d_year1_priceLimit>decimal</p11d_year1_priceLimit>
                        <p11d_year1_perc>int</p11d_year1_perc>
                        <p11d_year1_benefit>decimal</p11d_year1_benefit>
                        <p11d_year1_rate_basic>decimal</p11d_year1_rate_basic>
                        <p11d_year1_rate_higher>decimal</p11d_year1_rate_higher>
                        <p11d_year2>int</p11d_year2>
                        <p11d_year2_price>decimal</p11d_year2_price>
                        <p11d_year2_priceLimit>decimal</p11d_year2_priceLimit>
                        <p11d_year2_perc>int</p11d_year2_perc>
                        <p11d_year2_benefit>decimal</p11d_year2_benefit>
                        <p11d_year2_rate_basic>decimal</p11d_year2_rate_basic>
                        <p11d_year2_rate_higher>decimal</p11d_year2_rate_higher>
                        <p11d_year3>int</p11d_year3>
                        <p11d_year3_price>decimal</p11d_year3_price>
                        <p11d_year3_priceLimit>decimal</p11d_year3_priceLimit>
                        <p11d_year3_perc>int</p11d_year3_perc>
                        <p11d_year3_benefit>decimal</p11d_year3_benefit>
                        <p11d_year3_rate_basic>decimal</p11d_year3_rate_basic>
                        <p11d_year3_rate_higher>decimal</p11d_year3_rate_higher>
                    </P11DValuation_Table>
                </P11D>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetP11DValuationResult>
</GetP11DValuationResponse>

Legislation

This web service has a single operation which returns legislation data specific to the company car driver and associated employee/BIK (benefit in kind) costs along with the vehicle's whole life costs and depreciation.

https://soap.cap.co.uk/legislation/caplegislation.asmx

GetLegislationData

This operation returns legislation data for a given database, cap ID, specification date, term and mileage. The response will detail values for each of the DataList options requested. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/legislation/caplegislation.asmx/GetLegislationData

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidstringNo
BodySpecDateIn the format YYYY/MM/DDdateTimeNo
BodySelectedOptionsCan be left blank or a comma delimited list of option codes (OPT_OptionCode).stringNo
BodyTermEntered in months (12-60) and be rounded to nearest 6intNo
BodyMileageMileage should be entered in full, rounded to 10000intNo
Body DataList Comma delimited list of the following options: ALL, P11D, C02, BIKTAXRATE, BIK20, BIK40, VED1ST (1st year VED), VED2ND (Subsequent VED), NICLASS1A_YR1RATE, NICLASS1A_YR1COST, NICLASS1A_YR2RATE, NICLASS1A_YR2COST, NICLASS1A_YR3RATE, NICLASS1A_YR3COST, NICLASS1A_YR4RATE, NICLASS1A_YR4COST, NICLASS1A_YR5RATE, NICLASS1A_YR5COST, WLC, SMR, DEPRECIATION, RV, FUELCOST, PPM. string No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetLegislationDataResponse xmlns="https://soap.cap.co.uk/legislation">
    <GetLegislationDataResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="Legislation" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="Legislation" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Table">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="NIClass1A_Yr4Rate" type="xs:double" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <Legislation xmlns="">
                    <Table diffgr:id="Table1" msdata:rowOrder="0">
                        <NIClass1A_Yr4Rate>double</NIClass1A_Yr4Rate>
                    </Table>
                </Legislation>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetLegislationDataResult>
</GetLegislationDataResponse>

Used Values

This web service contains a number of operations to return lists of used valuations based on various parameters. This values returned by this web service are the monthly deadlined values.

https://soap.cap.co.uk/usedvalues/capusedvalues.asmx

GetUsedValuesHistoryForIDYearLetter

This operation returns a list of used values for all mileage parameters for a cap ID and year/letter between the dates specified. The response details the publication date for the used values, year, letter, mileage and retail, clean, average and below values as well as the cost when new. Note, results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetUsedValuesHistoryForIDYearLetter

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyYearYear of registrationintNo
BodyLetterThe 'plate' of the vehicle e.g. 17, 67stringNo
BodyMinDateIn the format YYYY/MM/DDdateTimeNo
BodyMaxDateIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <GetUsedValuesHistoryForIDYearLetterResponse xmlns="https://soap.cap.co.uk/usedvalues">
            <GetUsedValuesHistoryForIDYearLetterResult>
                <Success>true</Success>
                <FailMessage />
                <Returned_DataSet>
                    <xs:schema id="UsedValues" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                        <xs:element name="UsedValues" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                            <xs:complexType>
                                <xs:choice minOccurs="0" maxOccurs="unbounded">
                                    <xs:element name="Grid">
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Uvt_PubDate" type="xs:dateTime" minOccurs="0" />
                                                <xs:element name="Uvt_Year" type="xs:int" minOccurs="0" />
                                                <xs:element name="Yc_Letter" type="xs:string" minOccurs="0" />
                                                <xs:element name="Uvt_Mileage" type="xs:int" minOccurs="0" />
                                                <xs:element name="Uvt_Retail" type="xs:int" minOccurs="0" />
                                                <xs:element name="Uvt_Clean" type="xs:int" minOccurs="0" />
                                                <xs:element name="Uvt_Average" type="xs:int" minOccurs="0" />
                                                <xs:element name="Uvt_Below" type="xs:int" minOccurs="0" />
                                                <xs:element name="CostNew" type="xs:int" minOccurs="0" />
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:choice>
                            </xs:complexType>
                        </xs:element>
                    </xs:schema>
                    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                        <UsedValues xmlns="">
                            <Grid diffgr:id="Grid1" msdata:rowOrder="0">
                                <Uvt_PubDate>dateTime</Uvt_PubDate>
                                <Uvt_Year>int</Uvt_Year>
                                <Yc_Letter>string</Yc_Letter>
                                <Uvt_Mileage>int</Uvt_Mileage>
                                <Uvt_Retail>int</Uvt_Retail>
                                <Uvt_Clean>int</Uvt_Clean>
                                <Uvt_Average>int</Uvt_Average>
                                <Uvt_Below>int</Uvt_Below>
                                <CostNew>int</CostNew>
                            </Grid>
                            <Grid diffgr:id="Grid2" msdata:rowOrder="1">
                                <Uvt_PubDate>dateTime</Uvt_PubDate>
                                <Uvt_Year>int</Uvt_Year>
                                <Yc_Letter>string</Yc_Letter>
                                <Uvt_Mileage>int</Uvt_Mileage>
                                <Uvt_Retail>int</Uvt_Retail>
                                <Uvt_Clean>int</Uvt_Clean>
                                <Uvt_Average>int</Uvt_Average>
                                <Uvt_Below>int</Uvt_Below>
                                <CostNew>int</CostNew>
                            </Grid>
                            <Grid diffgr:id="Grid3" msdata:rowOrder="2">
                                <Uvt_PubDate>dateTime</Uvt_PubDate>
                                <Uvt_Year>int</Uvt_Year>
                                <Yc_Letter>string</Yc_Letter>
                                <Uvt_Mileage>int</Uvt_Mileage>
                                <Uvt_Retail>int</Uvt_Retail>
                                <Uvt_Clean>int</Uvt_Clean>
                                <Uvt_Average>int</Uvt_Average>
                                <Uvt_Below>int</Uvt_Below>
                                <CostNew>int</CostNew>
                            </Grid>
                            ...
                        </UsedValues>
                    </diffgr:diffgram>
                </Returned_DataSet>
            </GetUsedValuesHistoryForIDYearLetterResult>
        </GetUsedValuesHistoryForIDYearLetterResponse>

GetUsedValuesForIDYearLetter

This operation returns a list of used values for all mileage parameters for a cap ID, year and letter for a specific monthly publication. The response details the year, letter, mileage and retail, clean, average and below values as well as the cost when new. Note, all dates passed should be the first of the month e.g. 2017/07/01 and results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetUsedValuesForIDYearLetter

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
Body UsedValuesDate Relates to the monthly edition, e.g. 2017/07/01 will use July 2017's data. This parameter needs to be populated even if JustCurrent is TRUE. In the format YYYY/MM/DD dateTime No
Body JustCurrent If TRUE, the current Used Values will be returned - otherwise they will be taken from the UsedValuesDate boolean No
BodyYearYear of registrationintNo
BodyLetterThe 'plate' of the vehicle e.g. 17, 67stringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLive_IdYearLetterResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
    <GetUsedLive_IdYearLetterResult>
        <Success>true</Success>
        <Plate>
            <Year>int</Year>
            <Month>int</Month>
            <Letter>int</Letter>
        </Plate>
        <ValuationDate>
            <Date>2016-12-21T00:00:00</Date>
            <IsMonthlyPosition>false</IsMonthlyPosition>
            <Valuations>
                <Valuation>
                    <Mileage>int</Mileage>
                    <Retail>int</Retail>
                    <Clean>int</Clean>
                    <Average>int</Average>
                    <Below>int</Below>
                </Valuation>
                <Valuation>
                    <Mileage>int</Mileage>
                    <Retail>int</Retail>
                    <Clean>int</Clean>
                    <Average>int</Average>
                    <Below>int</Below>
                </Valuation>
                <Valuation>
                    <Mileage>int</Mileage>
                    <Retail>int</Retail>
                    <Clean>int</Clean>
                    <Average>int</Average>
                    <Below>int</Below>
                </Valuation>
                ...
            </Valuations>
            <Comments>
                <string>string</string>
            </Comments>
        </ValuationDate>
    </GetUsedLive_IdYearLetterResult>
</GetUsedLive_IdYearLetterResponse>

GetUsedValuesForIDYearMonth

This operation returns a list of used values for all mileage parameters for a cap ID and month the plate was introduced for a specific monthly publication. The response details the year, letter, mileage and retail, clean, average and below values as well as the cost when new. Note, all dates passed should be the first of the month e.g. 2017/07/01 and results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetUsedValuesForIDYearMonth

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
Body UsedValuesDate Relates to the monthly edition, e.g. 2017/07/01 will use July 2017's data. This parameter needs to be populated even if JustCurrent is TRUE. In the format YYYY/MM/DD dateTime No
Body JustCurrent If TRUE, the current Used Values will be returned - they will be taken from the UsedValuesDate boolean No
BodyYearYear of registrationintNo
BodyMonthThe month the plate was introduced. 1 for January, 3 for March or 9 for September. If the vehicle is registered in May, then the month should be displayed as 3.intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedValuesForIDYearMonthResponse xmlns="https://soap.cap.co.uk/usedvalues">
    <GetUsedValuesForIDYearMonthResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="UsedValues" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="UsedValues" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Grid">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Uvt_Year" type="xs:int" minOccurs="0" />
                                        <xs:element name="Yc_Letter" type="xs:string" minOccurs="0" />
                                        <xs:element name="Uvt_Mileage" type="xs:int" minOccurs="0" />
                                        <xs:element name="Uvt_Retail" type="xs:int" minOccurs="0" />
                                        <xs:element name="Uvt_Clean" type="xs:int" minOccurs="0" />
                                        <xs:element name="Uvt_Average" type="xs:int" minOccurs="0" />
                                        <xs:element name="Uvt_Below" type="xs:int" minOccurs="0" />
                                        <xs:element name="CostNew" type="xs:double" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <UsedValues xmlns="">
                    <Grid diffgr:id="Grid1" msdata:rowOrder="0">
                        <Uvt_Year>int</Uvt_Year>
                        <Yc_Letter>string</Yc_Letter>
                        <Uvt_Mileage>int</Uvt_Mileage>
                        <Uvt_Retail>int</Uvt_Retail>
                        <Uvt_Clean>int</Uvt_Clean>
                        <Uvt_Average>int</Uvt_Average>
                        <Uvt_Below>int</Uvt_Below>
                        <CostNew>double</CostNew>
                    </Grid>
                    <Grid diffgr:id="Grid2" msdata:rowOrder="1">
                        <Uvt_Year>int</Uvt_Year>
                        <Yc_Letter>string</Yc_Letter>
                        <Uvt_Mileage>int</Uvt_Mileage>
                        <Uvt_Retail>int</Uvt_Retail>
                        <Uvt_Clean>int</Uvt_Clean>
                        <Uvt_Average>int</Uvt_Average>
                        <Uvt_Below>int</Uvt_Below>
                        <CostNew>double</CostNew>
                    </Grid>
                    <Grid diffgr:id="Grid3" msdata:rowOrder="2">
                        <Uvt_Year>int</Uvt_Year>
                        <Yc_Letter>string</Yc_Letter>
                        <Uvt_Mileage>int</Uvt_Mileage>
                        <Uvt_Retail>int</Uvt_Retail>
                        <Uvt_Clean>int</Uvt_Clean>
                        <Uvt_Average>int</Uvt_Average>
                        <Uvt_Below>int</Uvt_Below>
                        <CostNew>double</CostNew>
                    </Grid>
                    ...
                </UsedValues>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetUsedValuesForIDYearMonthResult>
</GetUsedValuesForIDYearMonthResponse>

GetUsedValuesForIDYearMonthMileage

This operation returns a list of used values for a cap ID, month the plate was introduced and mileage for a specific monthly publication. The response details the year, letter, mileage and retail, clean, average and below values as well as the cost when new. Note, all dates passed should be the first of the month e.g. 2017/07/01 and results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetUsedValuesForIDYearMonthMileage

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
Body UsedValuesDate Relates to the monthly edition, e.g. 2017/07/01 will use July 2017's data. This parameter needs to be populated even if JustCurrent is TRUE. In the format YYYY/MM/DD dateTime No
Body JustCurrent If TRUE, the current Used Values will be returned - they will be taken from the UsedValuesDate boolean No
BodyYearYear of registrationintNo
BodyMonthThe month the plate was introduced. 1 for January, 3 for March or 9 for September. If the vehicle is registered in May, then the month should be displayed as 3.intNo
BodyMileageMileages should be entered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedValuesForIDYearMonthMileageResponse xmlns="https://soap.cap.co.uk/usedvalues">
  <GetUsedValuesForIDYearMonthMileageResult>
    <Success>boolean</Success>
    <FailMessage>string</FailMessage>
    <Retail>int</Retail>
    <Clean>int</Clean>
    <Average>int</Average>
    <Below>int</Below>
  </GetUsedValuesForIDYearMonthMileageResult>
</GetUsedValuesForIDYearMonthMileageResponse>

GetInternetPricesForIDYearLetterMileage

This operation returns a list of banded internet prices for a cap ID, year/letter and mileage. The response details high and low retail, private, clean, average and below values. Note, all dates passed should be the first of the month e.g. 2017/07/01. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetInternetPricesForIDYearLetterMileage

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
Body UsedValuesDate Relates to the monthly edition, e.g. 2017/07/01 will use July 2017's data. This parameter needs to be populated even if JustCurrent is TRUE. In the format YYYY/MM/DD dateTime No
Body JustCurrent If TRUE, the current Used Values will be returned - they will be taken from the UsedValuesDate boolean No
BodyYearYear of registrationintNo
BodyLetterThe 'plate' of the vehicle e.g. 17, 67stringNo
BodyMileageMileages should be entered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetInternetPricesForIDYearLetterMileageResponse xmlns="https://soap.cap.co.uk/usedvalues">
  <GetInternetPricesForIDYearLetterMileageResult>
    <Success>boolean</Success>
    <FailMessage>string</FailMessage>
    <HighRetail>int</HighRetail>
    <LowRetail>int</LowRetail>
    <HighClean>int</HighClean>
    <LowClean>int</LowClean>
    <HighAverage>int</HighAverage>
    <LowAverage>int</LowAverage>
    <HighBelow>int</HighBelow>
    <LowBelow>int</LowBelow>
    <HighPrivate>int</HighPrivate>
    <LowPrivate>int</LowPrivate>
  </GetInternetPricesForIDYearLetterMileageResult>
</GetInternetPricesForIDYearLetterMileageResponse>

GetInternetPricesForIDYearMonthMileage

This operation returns a list of banded internet prices for a cap ID, year/month and mileage. The response details high and low retail, private, clean, average and below values. note, all dates passed should be the first of the month e.g. 2017/07/01. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetInternetPricesForIDYearMonthMileage

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
Body UsedValuesDate Relates to the monthly edition, e.g. 2017/07/01 will use July 2017's data. This parameter needs to be populated even if JustCurrent is TRUE. In the format YYYY/MM/DD dateTime No
Body JustCurrent If TRUE, the current Used Values will be returned - they will be taken from the UsedValuesDate boolean No
BodyYearYear of registrationintNo
BodyMonthThe month the plate was introduced. 1 for January, 3 for March or 9 for September. If the vehicle is registered in May, then the month should be displayed as 3.intNo
BodyMileageMileages should be entered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetInternetPricesForIDYearMonthMileageResponse xmlns="https://soap.cap.co.uk/usedvalues">
  <GetInternetPricesForIDYearMonthMileageResult>
    <Success>boolean</Success>
    <FailMessage>string</FailMessage>
    <HighRetail>int</HighRetail>
    <LowRetail>int</LowRetail>
    <HighClean>int</HighClean>
    <LowClean>int</LowClean>
    <HighAverage>int</HighAverage>
    <LowAverage>int</LowAverage>
    <HighBelow>int</HighBelow>
    <LowBelow>int</LowBelow>
    <HighPrivate>int</HighPrivate>
    <LowPrivate>int</LowPrivate>
  </GetInternetPricesForIDYearMonthMileageResult>
</GetInternetPricesForIDYearMonthMileageResponse>

GetUsedValuesForIDYearLetterMileage

This operation returns a list of used values for a cap ID, year/letter and mileage and a specific monthly publication. The response details the retail, clean, average and below values. Note, all dates passed should be the first of the month e.g. 2017/07/01 and all results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetUsedValuesForIDYearLetterMileage

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
Body UsedValuesDate Relates to the monthly edition, e.g. 2017/07/01 will use July 2017's data. This parameter needs to be populated even if JustCurrent is TRUE. In the format YYYY/MM/DD dateTime No
Body JustCurrent If TRUE, the current Used Values will be returned - they will be taken from the UsedValuesDate boolean No
BodyYearYear of registrationintNo
BodyLetterThe 'plate' of the vehicle e.g. 17, 67stringNo
BodyMileageMileages should be entered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedValuesForIDYearLetterMileageResponse xmlns="https://soap.cap.co.uk/usedvalues">
  <GetUsedValuesForIDYearLetterMileageResult>
    <Success>boolean</Success>
    <FailMessage>string</FailMessage>
    <Retail>int</Retail>
    <Clean>int</Clean>
    <Average>int</Average>
    <Below>int</Below>
  </GetUsedValuesForIDYearLetterMileageResult>
</GetUsedValuesForIDYearLetterMileageResponse>

GetUsedValuesForID

This operation returns a list of used values available for all published plates and mileage parameters for a cap ID and a specific monthly publication. The response details the year, letter, mileage and retail, clean, average and below values as well as the cost when new. Note, all dates passed should be the first of the month e.g. 2017/07/01 and results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetUsedValuesForID

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
Body UsedValuesDate Relates to the monthly edition, e.g. 2017/07/01 will use July 2017's data. This parameter needs to be populated even if JustCurrent is TRUE. In the format YYYY/MM/DD dateTime No
Body JustCurrent If TRUE, the current Used Values will be returned - they will be taken from the UsedValuesDate boolean No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedValuesForIDResponse xmlns="https://soap.cap.co.uk/usedvalues">
    <GetUsedValuesForIDResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="UsedValues" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="UsedValues" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Grid">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Uvt_Year" type="xs:int" minOccurs="0" />
                                        <xs:element name="Yc_Letter" type="xs:string" minOccurs="0" />
                                        <xs:element name="Uvt_Mileage" type="xs:int" minOccurs="0" />
                                        <xs:element name="Uvt_Retail" type="xs:int" minOccurs="0" />
                                        <xs:element name="Uvt_Clean" type="xs:int" minOccurs="0" />
                                        <xs:element name="Uvt_Average" type="xs:int" minOccurs="0" />
                                        <xs:element name="Uvt_Below" type="xs:int" minOccurs="0" />
                                        <xs:element name="CostNew" type="xs:double" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <UsedValues xmlns="">
                    <Grid diffgr:id="Grid1" msdata:rowOrder="0">
                        <Uvt_Year>int</Uvt_Year>
                        <Yc_Letter>string</Yc_Letter>
                        <Uvt_Mileage>int</Uvt_Mileage>
                        <Uvt_Retail>int</Uvt_Retail>
                        <Uvt_Clean>int</Uvt_Clean>
                        <Uvt_Average>int</Uvt_Average>
                        <Uvt_Below>int</Uvt_Below>
                        <CostNew>double</CostNew>
                    </Grid>
                    <Grid diffgr:id="Grid2" msdata:rowOrder="1">
                        <Uvt_Year>int</Uvt_Year>
                        <Yc_Letter>string</Yc_Letter>
                        <Uvt_Mileage>int</Uvt_Mileage>
                        <Uvt_Retail>int</Uvt_Retail>
                        <Uvt_Clean>int</Uvt_Clean>
                        <Uvt_Average>int</Uvt_Average>
                        <Uvt_Below>int</Uvt_Below>
                        <CostNew>double</CostNew>
                    </Grid>
                    <Grid diffgr:id="Grid3" msdata:rowOrder="2">
                        <Uvt_Year>int</Uvt_Year>
                        <Yc_Letter>string</Yc_Letter>
                        <Uvt_Mileage>int</Uvt_Mileage>
                        <Uvt_Retail>int</Uvt_Retail>
                        <Uvt_Clean>int</Uvt_Clean>
                        <Uvt_Average>int</Uvt_Average>
                        <Uvt_Below>int</Uvt_Below>
                        <CostNew>double</CostNew>
                    </Grid>
                    ...
                </UsedValues>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetUsedValuesForIDResult>
</GetUsedValuesForIDResponse>

GetUsedValuation

This operation returns a used valuation for a cap ID or cap code at a specific registration date, monthly publication and mileage for each pricing condition. The response details retail, clean, average and below values. Note, all results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetUsedValuation

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyCAPCodestringNo
BodyRegistrationDateIn the format YYYY/MM/DDdateTimeNo
Body DatasetDate Relates to the monthly edition, e.g. 2017/07/01 will use July 2017's data. This parameter needs to be populated even if JustCurrent is TRUE. In the format YYYY/MM/DD dateTime No
Body JustCurrent If TRUE, the current Used Values will be returned - they will be taken from the UsedValuesDate boolean No
BodyMileageMileages should be entered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedValuationResponse xmlns="https://soap.cap.co.uk/usedvalues">
    <GetUsedValuationResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="UsedValues" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="UsedValues" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Valuation">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Retail" type="xs:int" minOccurs="0" />
                                        <xs:element name="Clean" type="xs:int" minOccurs="0" />
                                        <xs:element name="Average" type="xs:int" minOccurs="0" />
                                        <xs:element name="Below" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <UsedValues xmlns="">
                    <Valuation diffgr:id="Valuation1" msdata:rowOrder="0">
                        <Retail>int</Retail>
                        <Clean>int</Clean>
                        <Average>int</Average>
                        <Below>int</Below>
                    </Valuation>
                </UsedValues>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetUsedValuationResult>
</GetUsedValuationResponse>

GetUsedValuesHistoricDates

This operation returns a list of dates where used values are available. The response details the publication date for the used values. Note, results are cached for 1 hour. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalues/capusedvalues.asmx/GetUsedValuesHistoricDates

Parameters

Type Name Description Data Type Optional
BodySubscriber_IDProvided by cap hpi supportintNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedValuesHistoricDatesResponse xmlns="https://soap.cap.co.uk/usedvalues">
    <GetUsedValuesHistoricDatesResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="UsedValuesDates" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="UsedValuesDates" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Dates">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="TV_PubDate" type="xs:dateTime" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <UsedValuesDates xmlns="">
                    <Dates diffgr:id="Dates1" msdata:rowOrder="0">
                        <TV_PubDate>dateTime</TV_PubDate>
                    </Dates>
                    <Dates diffgr:id="Dates2" msdata:rowOrder="1">
                        <TV_PubDate>dateTime</TV_PubDate>
                    </Dates>
                    <Dates diffgr:id="Dates3" msdata:rowOrder="2">
                        <TV_PubDate>dateTime</TV_PubDate>
                    </Dates>
                    ...
                </UsedValuesDates>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetUsedValuesHistoricDatesResult>
</GetUsedValuesHistoricDatesResponse>

Used Values Live

This web service contains a number of operations to return lists of Live used valuations based on various parameters. All dates passed should be the first of the month. This values returned by this web service are the Live values.

https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx

GetUsedLive_IdRegDate

This operation returns a list of used values based on mileage for a cap ID and registration date for a given date. The response details the year, month and letter of the plate, along with a retail, clean, average and below valuation, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLive_IdRegDate

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyvaluationDateIn the format YYYY/MM/DDdateTimeNo
BodyregDateIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLive_IdRegDateResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLive_IdRegDateResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDate>
      <Date>dateTime</Date>
      <IsMonthlyPosition>boolean</IsMonthlyPosition>
      <Valuations>
        <Valuation xsi:nil="true" />
        <Valuation xsi:nil="true" />
      </Valuations>
      <Comments>
        <string>string</string>
        <string>string</string>
      </Comments>
    </ValuationDate>
  </GetUsedLive_IdRegDateResult>
</GetUsedLive_IdRegDateResponse>

GetUsedLive_IdYearLetter

This operation returns a list of used values based on mileage for a cap ID, year and letter for a given date. The response details the year, month and letter of the plate, along with retail, clean, average and below valuations, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLive_IdYearLetter

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyvaluationDateIn the format YYYY/MM/DDdateTimeNo
BodyyearYear of registrationintNo
BodyletterThe 'plate' of the vehicle e.g. 17, 67stringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLive_IdYearLetterResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLive_IdYearLetterResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDate>
      <Date>dateTime</Date>
      <IsMonthlyPosition>boolean</IsMonthlyPosition>
      <Valuations>
        <Valuation xsi:nil="true" />
        <Valuation xsi:nil="true" />
      </Valuations>
      <Comments>
        <string>string</string>
        <string>string</string>
      </Comments>
    </ValuationDate>
  </GetUsedLive_IdYearLetterResult>
</GetUsedLive_IdYearLetterResponse>

GetUsedLive_IdYearMonth

This operation returns a list of used values based on mileage for a cap ID, year and month for a given date. The response details the year, month and letter of the plate, along with retail, clean, average and below valuations, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLive_IdYearMonth

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyvaluationDateIn the format YYYY/MM/DDdateTimeNo
BodyyearYear of registrationintNo
Body month The month the plate was introduced. 1 for January, 3 for March or 9 for September. If the vehicle is registered in May, then the month should be displayed as 3. int No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLive_IdYearMonthResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLive_IdYearMonthResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDate>
      <Date>dateTime</Date>
      <IsMonthlyPosition>boolean</IsMonthlyPosition>
      <Valuations>
        <Valuation xsi:nil="true" />
        <Valuation xsi:nil="true" />
      </Valuations>
      <Comments>
        <string>string</string>
        <string>string</string>
      </Comments>
    </ValuationDate>
  </GetUsedLive_IdYearMonthResult>
</GetUsedLive_IdYearMonthResponse>

GetUsedLive_IdRegDateMileage

This operation returns a used value for a cap ID, registration date and mileage for a given date. The response details the year, month and letter of the plate, along with a retail, clean, average and below valuation for the specified mileage, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLive_IdRegDateMileage

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyvaluationDateIn the format YYYY/MM/DDdateTimeNo
BodyregDateIn the format YYYY/MM/DDdateTimeNo
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLive_IdRegDateMileageResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLive_IdRegDateMileageResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDate>
      <Date>dateTime</Date>
      <IsMonthlyPosition>boolean</IsMonthlyPosition>
      <Valuations>
        <Valuation xsi:nil="true" />
        <Valuation xsi:nil="true" />
      </Valuations>
      <Comments>
        <string>string</string>
        <string>string</string>
      </Comments>
    </ValuationDate>
  </GetUsedLive_IdRegDateMileageResult>
</GetUsedLive_IdRegDateMileageResponse>

GetUsedLive_IdYearLetterMileage

This operation returns a used value for a cap ID, year, letter and mileage for a given date. The response details the year, month and letter of the plate, along with a retail, clean, average and below valuation for the specified mileage, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLive_IdYearLetterMileage

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyvaluationDateIn the format YYYY/MM/DDdateTimeNo
BodyyearYear of registrationintNo
BodyletterThe 'plate' of the vehicle e.g. 17, 67stringNo
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLive_IdYearLetterMileageResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLive_IdYearLetterMileageResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDate>
      <Date>dateTime</Date>
      <IsMonthlyPosition>boolean</IsMonthlyPosition>
      <Valuations>
        <Valuation xsi:nil="true" />
        <Valuation xsi:nil="true" />
      </Valuations>
      <Comments>
        <string>string</string>
        <string>string</string>
      </Comments>
    </ValuationDate>
  </GetUsedLive_IdYearLetterMileageResult>
</GetUsedLive_IdYearLetterMileageResponse>

GetUsedLive_IdYearMonthMileage

This operation returns a used value for a cap ID, year, month and mileage for a given date. The response details the year, month and letter of the plate, along with a retail, clean, average and below valuation for the specified mileage, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLive_IdYearMonthMileage

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyvaluationDateIn the format YYYY/MM/DDdateTimeNo
BodyyearYear of registrationintNo
Body month The month the plate was introduced. 1 for January, 3 for March or 9 for September. If the vehicle is registered in May, then the month should be displayed as 3. int No
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLive_IdYearMonthMileageResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLive_IdYearMonthMileageResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDate>
      <Date>dateTime</Date>
      <IsMonthlyPosition>boolean</IsMonthlyPosition>
      <Valuations>
        <Valuation xsi:nil="true" />
        <Valuation xsi:nil="true" />
      </Valuations>
      <Comments>
        <string>string</string>
        <string>string</string>
      </Comments>
    </ValuationDate>
  </GetUsedLive_IdYearMonthMileageResult>
</GetUsedLive_IdYearMonthMileageResponse>

GetUsedLiveHistoric_IdRegDateMileage

This operation returns used values for a cap ID, registration date and mileage between the dates specified. The response details the year, month and letter of the plate, along with a retail, clean, average and below valuation, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLiveHistoric_IdRegDateMileage

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodydateFromIn the format YYYY/MM/DDdateTimeNo
BodydateToIn the format YYYY/MM/DDdateTimeNo
BodymaxRecordsUse to limit the number of results. Pass 0 for unlimitedintNo
BodyregDateIn the format YYYY/MM/DDdateTimeNo
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLiveHistoric_IdRegDateMileageResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLiveHistoric_IdRegDateMileageResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDates>
      <ValuationDate>
        <Date>dateTime</Date>
        <IsMonthlyPosition>boolean</IsMonthlyPosition>
        <Valuations xsi:nil="true" />
        <Comments xsi:nil="true" />
      </ValuationDate>
      <ValuationDate>
        <Date>dateTime</Date>
        <IsMonthlyPosition>boolean</IsMonthlyPosition>
        <Valuations xsi:nil="true" />
        <Comments xsi:nil="true" />
      </ValuationDate>
    </ValuationDates>
  </GetUsedLiveHistoric_IdRegDateMileageResult>
</GetUsedLiveHistoric_IdRegDateMileageResponse>

GetUsedLiveHistoric_IdYearLetterMileage

This operation returns used values for a cap ID, year/letter and mileage between the dates specified. The response details the year, month and letter of the plate, along with a retail, clean, average and below valuation, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLiveHistoric_IdYearLetterMileage

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodydateFromIn the format YYYY/MM/DDdateTimeNo
BodydateToIn the format YYYY/MM/DDdateTimeNo
BodymaxRecordsUse to limit the number of results. Pass 0 for unlimitedintNo
BodyyearYear of registrationintNo
BodyletterThe 'plate' of the vehicle e.g. 17, 67stringNo
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLiveHistoric_IdYearLetterMileageResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLiveHistoric_IdYearLetterMileageResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDates>
      <ValuationDate>
        <Date>dateTime</Date>
        <IsMonthlyPosition>boolean</IsMonthlyPosition>
        <Valuations xsi:nil="true" />
        <Comments xsi:nil="true" />
      </ValuationDate>
      <ValuationDate>
        <Date>dateTime</Date>
        <IsMonthlyPosition>boolean</IsMonthlyPosition>
        <Valuations xsi:nil="true" />
        <Comments xsi:nil="true" />
      </ValuationDate>
    </ValuationDates>
  </GetUsedLiveHistoric_IdYearLetterMileageResult>
</GetUsedLiveHistoric_IdYearLetterMileageResponse>

GetUsedLiveHistoric_IdYearMonthMileage

This operation returns used values for a cap ID, year, month and mileage between the dates specified. The response details the year, month and letter of the plate, along with a retail, clean, average and below valuation, the date of each valuation and any comments. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/usedvalueslive/capusedvalueslive.asmx/GetUsedLiveHistoric_IdYearMonthMileage

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodydateFromIn the format YYYY/MM/DDdateTimeNo
BodydateToIn the format YYYY/MM/DDdateTimeNo
BodymaxRecordsUse to limit the number of results. Pass 0 for unlimitedintNo
BodyyearYear of registrationintNo
Body month The month the plate was introduced. 1 for January, 3 for March or 9 for September. If the vehicle is registered in May, then the month should be displayed as 3. int No
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetUsedLiveHistoric_IdYearMonthMileageResponse xmlns="https://soap.cap.co.uk/usedvalueslive">
  <GetUsedLiveHistoric_IdYearMonthMileageResult>
    <Plate>
      <Year>int</Year>
      <Month>int</Month>
      <Letter>string</Letter>
    </Plate>
    <ValuationDates>
      <ValuationDate>
        <Date>dateTime</Date>
        <IsMonthlyPosition>boolean</IsMonthlyPosition>
        <Valuations xsi:nil="true" />
        <Comments xsi:nil="true" />
      </ValuationDate>
      <ValuationDate>
        <Date>dateTime</Date>
        <IsMonthlyPosition>boolean</IsMonthlyPosition>
        <Valuations xsi:nil="true" />
        <Comments xsi:nil="true" />
      </ValuationDate>
    </ValuationDates>
  </GetUsedLiveHistoric_IdYearMonthMileageResult>
</GetUsedLiveHistoric_IdYearMonthMileageResponse>

Future Values

This web service allows you to obtain a single valuation figure (based on cap hpi clean) or price per mile (PPM) valuation for a cap ID or cap code and is available for both New and Used Monitor values. PPM takes into account servicing and maintenance, depreciation, fuel and road tax and is based on 3 years of ownership at 36,000 miles.

https://soap.cap.co.uk/futurevalues/capfuturevalues.asmx

GetFutureValuation

This operation returns a future value for a cap ID or cap code, registration date, term and mileage. The response simply contains the valuation. Note, all dates passed should be the first of the month (e.g. 2017/07/01) and results are cached for 30 minutes. Although you can request a future valuation up to 84 months in the future, values are currently only populated up to 60 months in the future. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/futurevalues/capfuturevalues.asmx/GetFutureValuation

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodycapCodeIf using cap code, set cap ID to 0stringNo
BodyregistrationDateIn the format YYYY/MM/DDdateTimeNo
BodydatasetDateIn the format YYYY/MM/DDdateTimeNo
Body justCurrent If TRUE, current Future Values will be returned, otherwise they will be taken from the given dataset boolean No
Body monthsToValuation Denotes how many months in the future from the Future Value Date the valuation is for. This can be between 12 and 84. int No
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetFutureValuationResponse xmlns="https://soap.cap.co.uk/futurevalues">
    <GetFutureValuationResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="FutureValues" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="FutureValues" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="Valuation">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="valuation" type="xs:int" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <FutureValues xmlns="">
                    <Valuation diffgr:id="Valuation1" msdata:rowOrder="0">
                        <valuation>int</valuation>
                    </Valuation>
                </FutureValues>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetFutureValuationResult>
</GetFutureValuationResponse>

GetPpmValuation

This operation returns a pence per mile (PPM) valuation for a cap ID or cap code. PPM values are based on depreciation, fuel use and servicing and are only available for vehicles in the 'New Monitor' data set which covers vehicles registered on the current plate. The response simply contains the valuation. Note, all dates passed should be the first of the month (e.g. 2017/07/01) and results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/futurevalues/capfuturevalues.asmx/GetPpmValuation

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodycapCodeIf using cap code, set cap ID to 0stringNo
BodydatasetDateIn the format YYYY/MM/DDdateTimeNo
Body justCurrent If TRUE, current Future Values will be returned, otherwise they will be taken from the given dataset boolean No
Body monthsToValuation Denotes how many months in the future from the Future Value Date the valuation is for. This can be between 12 and 84. int No
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetPPMValuationResponse xmlns="http://webservices.capnetwork.co.uk">
    <GetPPMValuationResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="PPM" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="PPM" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="PPMValuation">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="valuation" type="xs:decimal" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <PPM xmlns="">
                    <PPMValuation diffgr:id="PPMValuation1" msdata:rowOrder="0">
                        <valuation>decimal</valuation>
                    </PPMValuation>
                </PPM>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetPPMValuationResult>
</GetPPMValuationResponse>

SMR

This web service has a single operation which returns the Service, Maintenance and Repair (SMR) valuation for a cap ID or cap code.

https://soap.cap.co.uk/Smr/capsmr.asmx

GetSmrValuation

This operation returns an SMR Valuation for a given cap ID or cap code for current vehicles only. The response will detail the SMR valuation total along with itemised valuations for tyres, servicing, brakes and other. Note, all dates passed should be the first of the month and results are cached for 30 minutes. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/Smr/capsmr.asmx/GetSmrValuation

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodycapCodeIf using cap code, set cap ID to 0stringNo
BodydatasetDateIn the format YYYY/MM/DDdateTimeNo
Body justCurrent If TRUE, current Future Values will be returned, otherwise they will be taken from the given dataset boolean No
Body monthsToValuation Denotes how many months in the future from the Future Value Date the valuation is for. This can be between 12 and 84. int No
BodymileageEntered in full e.g. 12500intNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetSmrValuationResponse xmlns="https://soap.cap.co.uk/smr">
    <GetSmrValuationResult>
        <Success>true</Success>
        <FailMessage />
        <Returned_DataSet>
            <xs:schema id="SMR" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                <xs:element name="SMR" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                    <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                            <xs:element name="SMRValuation">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="valuation_total" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="valuation_tyre" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="valuation_service" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="valuation_other" type="xs:decimal" minOccurs="0" />
                                        <xs:element name="valuation_brake" type="xs:decimal" minOccurs="0" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:choice>
                    </xs:complexType>
                </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                <SMR xmlns="">
                    <SMRValuation diffgr:id="SMRValuation1" msdata:rowOrder="0">
                        <valuation_total>decimal</valuation_total>
                        <valuation_tyre>decimal</valuation_tyre>
                        <valuation_service>decimal</valuation_service>
                        <valuation_other>decimal</valuation_other>
                        <valuation_brake>decimal</valuation_brake>
                    </SMRValuation>
                </SMR>
            </diffgr:diffgram>
        </Returned_DataSet>
    </GetSmrValuationResult>
</GetSmrValuationResponse>

TCO

This web service has a single operation which returns the total cost of ownership for a cap ID.

https://soap.cap.co.uk/tco/captco_webservice.asmx

GetTCO

This operation returns the total cost of ownership (TCO) for a given cap ID taking into account the registration date, purchase cost, finance amount and interest rate (APR), current and annual mileage, length of ownership, insurance cost, user age and user postcode. The response will detail the total cost of ownership as well as itemised total monthly running costs, running costs per mile, fuel cost, depreciation, service and maintenance costs, insurance group, cost of insurance, cost when new, delivery cost, road tax and purchase price. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/tco/captco_webservice.asmx/GetTCO

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodydatabaseCARS or LCVstringNo
BodycapidintNo
BodyRegistrationDateIn the format YYYY/MM/DDstringNo
Body PurchaseCost The exact purchase price of the vehicle. Decimal values are accepted e.g. 2995.99 double No
BodyFinanceAPRDecimal values are accepted e.g. 13.9doubleNo
BodyDepositDecimal values are accepted e.g. 499.99doubleNo
BodyCurrentMileageEnter mileages in thousands (e.g. enter 30 for 30,000)intNo
BodyAnnualMileageEnter mileages in thousands (e.g. enter 30 for 30,000)intNo
BodyLengthOfOwnershipIn monthsintNo
BodyUserAgeIn yearsintNo
BodyUserPostCodestringNo
BodyAnnualInsurancedoubleNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<GetTCOResponse xmlns="https://soap.cap.co.uk/tco">
  <GetTCOResult>
    <Success>boolean</Success>
    <FailMessage>string</FailMessage>
    <TotalCostOfOwnership>decimal</TotalCostOfOwnership>
    <TotalMonthlyRunningCosts>decimal</TotalMonthlyRunningCosts>
    <RunningCostsPerMile>decimal</RunningCostsPerMile>
    <FuelCosts>decimal</FuelCosts>
    <Depreciation>decimal</Depreciation>
    <ServiceAndMaintenance>decimal</ServiceAndMaintenance>
    <InsuranceGroup>string</InsuranceGroup>
    <Insurance>decimal</Insurance>
    <CostNew>decimal</CostNew>
    <DeliveryCost>decimal</DeliveryCost>
    <RoadTax>decimal</RoadTax>
    <PurchasePrice>decimal</PurchasePrice>
  </GetTCOResult>
</GetTCOResponse>

Data Download

This web service provides a set of methods to view subscription details and download products.

https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx

List_MonthlyDownloadDate

This operation returns the monthly download dates available for the calendar year (New Vehicle Data files are available daily). The download date is the date the data was available to download. The response lists the product month and download date. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/List_MonthlyDownloadDate

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<List_MonthlyDownloadDateResponse xmlns="https://soap.cap.co.uk/datadownload">
  <List_MonthlyDownloadDateResult>
    <Success>boolean</Success>
    <MonthlyDownloadDates>
      <MonthlyDownloadDate>
        <ProductMonth>dateTime</ProductMonth>
        <DownloadDate>dateTime</DownloadDate>
      </MonthlyDownloadDate>
      <MonthlyDownloadDate>
        <ProductMonth>dateTime</ProductMonth>
        <DownloadDate>dateTime</DownloadDate>
      </MonthlyDownloadDate>
    </MonthlyDownloadDates>
    <FailMessage>string</FailMessage>
  </List_MonthlyDownloadDateResult>
</List_MonthlyDownloadDateResponse>

List_SubscriberDetails

This operation returns the list of parent products that are available for you to download. The response lists the product ID, product name, product category, product type and renewal date. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/List_SubscriberDetails

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<List_SubscriberDetailsResponse xmlns="https://soap.cap.co.uk/datadownload">
  <List_SubscriberDetailsResult>
    <Success>boolean</Success>
    <Subscribers>
      <SubscriberDetails>
        <SubscriberID>int</SubscriberID>
        <Name>string</Name>
        <Account_Manager>string</Account_Manager>
        <Company>string</Company>
        <Address1>string</Address1>
        <Address2>string</Address2>
        <City>string</City>
        <County>string</County>
        <Postcode>string</Postcode>
        <Phone_No>string</Phone_No>
        <Direct_Phone_No>string</Direct_Phone_No>
        <Fax_No>string</Fax_No>
        <Email>string</Email>
      </SubscriberDetails>
      <SubscriberDetails>
        <SubscriberID>int</SubscriberID>
        <Name>string</Name>
        <Account_Manager>string</Account_Manager>
        <Company>string</Company>
        <Address1>string</Address1>
        <Address2>string</Address2>
        <City>string</City>
        <County>string</County>
        <Postcode>string</Postcode>
        <Phone_No>string</Phone_No>
        <Direct_Phone_No>string</Direct_Phone_No>
        <Fax_No>string</Fax_No>
        <Email>string</Email>
      </SubscriberDetails>
    </Subscribers>
    <FailMessage>string</FailMessage>
  </List_SubscriberDetailsResult>
</List_SubscriberDetailsResponse>

List_SubscriberProducts

This operation returns the list of parent products that are available for you to download. The response lists the product ID, product name, product category, product type and renewal date. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/List_SubscriberProducts

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<List_SubscriberProductsResponse xmlns="https://soap.cap.co.uk/datadownload">
  <List_SubscriberProductsResult>
    <Success>boolean</Success>
    <Products>
      <Product>
        <ProductID>int</ProductID>
        <ProductName>string</ProductName>
        <ProductCategory>string</ProductCategory>
        <ProductType>string</ProductType>
        <RenewalDate>dateTime</RenewalDate>
      </Product>
      <Product>
        <ProductID>int</ProductID>
        <ProductName>string</ProductName>
        <ProductCategory>string</ProductCategory>
        <ProductType>string</ProductType>
        <RenewalDate>dateTime</RenewalDate>
      </Product>
    </Products>
    <FailMessage>string</FailMessage>
  </List_SubscriberProductsResult>
</List_SubscriberProductsResponse>

List_AllSubscriberProducts

This operation returns the full list of parent and child products that are available for you to download based on what you have subscribed to. The response lists the product ID, product name, product category, product type and renewal date. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/List_AllSubscriberProducts

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<List_AllSubscriberProductsResponse xmlns="https://soap.cap.co.uk/datadownload">
  <List_AllSubscriberProductsResult>
    <Success>boolean</Success>
    <Products>
      <Product>
        <ProductID>int</ProductID>
        <ProductName>string</ProductName>
        <ProductCategory>string</ProductCategory>
        <ProductType>string</ProductType>
        <RenewalDate>dateTime</RenewalDate>
      </Product>
      <Product>
        <ProductID>int</ProductID>
        <ProductName>string</ProductName>
        <ProductCategory>string</ProductCategory>
        <ProductType>string</ProductType>
        <RenewalDate>dateTime</RenewalDate>
      </Product>
    </Products>
    <FailMessage>string</FailMessage>
  </List_AllSubscriberProductsResult>
</List_AllSubscriberProductsResponse>

List_ProductPackages

This operation returns a list of files which can be downloaded for a product ID. Product packages which were created after the date set in ReturnPackagesNewerThanDate will be returned. For each package, the response lists the package date, package filename and package size. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/List_ProductPackages

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
Body ProductID Returned in the List_AllSubscriberProducts, List_LatestPackagesForSubscriber or List_NewPackagesFromDate response int No
BodyReturnPackagesNewerThanDateIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<List_ProductPackagesResponse xmlns="https://soap.cap.co.uk/datadownload">
  <List_ProductPackagesResult>
    <Success>boolean</Success>
    <Packages>
      <Package>
        <Package_Date>dateTime</Package_Date>
        <Package_Filename>string</Package_Filename>
        <Package_Size>long</Package_Size>
      </Package>
      <Package>
        <Package_Date>dateTime</Package_Date>
        <Package_Filename>string</Package_Filename>
        <Package_Size>long</Package_Size>
      </Package>
    </Packages>
    <FailMessage>string</FailMessage>
  </List_ProductPackagesResult>
</List_ProductPackagesResponse>

List_ProductPackagesHistoric

This operation returns a list of files which can be downloaded for a product ID. Product packages which were created after the date set in ReturnPackagesNewerThanDate will be returned. For each package, the response lists the package date, package filename and package size. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/List_ProductPackagesHistoric

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
Body ProductID Returned in the List_AllSubscriberProducts, List_LatestPackagesForSubscriber or List_NewPackagesFromDate response int No
BodyReturnPackagesNewerThanDateIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<List_ProductPackagesHistoricResponse xmlns="https://soap.cap.co.uk/datadownload">
  <List_ProductPackagesHistoricResult>
    <Success>boolean</Success>
    <Packages>
      <Package>
        <Package_Date>dateTime</Package_Date>
        <Package_Filename>string</Package_Filename>
        <Package_Size>long</Package_Size>
      </Package>
      <Package>
        <Package_Date>dateTime</Package_Date>
        <Package_Filename>string</Package_Filename>
        <Package_Size>long</Package_Size>
      </Package>
    </Packages>
    <FailMessage>string</FailMessage>
  </List_ProductPackagesHistoricResult>
</List_ProductPackagesHistoricResponse>

List_NewPackagesFromDate

This operation returns a list of products and packages which have been added since a given date. For each package, the response lists the product ID, product name, product category, product type, package date, package filename and package size. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/List_NewPackagesFromDate

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
BodyDateIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<List_NewPackagesFromDateResponse xmlns="https://soap.cap.co.uk/datadownload">
  <List_NewPackagesFromDateResult>
    <Success>boolean</Success>
    <Packages>
      <PackageDetails>
        <ProductID>int</ProductID>
        <ProductName>string</ProductName>
        <ProductCategory>string</ProductCategory>
        <ProductType>string</ProductType>
        <Package_Date>dateTime</Package_Date>
        <Package_Filename>string</Package_Filename>
        <Package_Size>long</Package_Size>
      </PackageDetails>
      <PackageDetails>
        <ProductID>int</ProductID>
        <ProductName>string</ProductName>
        <ProductCategory>string</ProductCategory>
        <ProductType>string</ProductType>
        <Package_Date>dateTime</Package_Date>
        <Package_Filename>string</Package_Filename>
        <Package_Size>long</Package_Size>
      </PackageDetails>
    </Packages>
    <FailMessage>string</FailMessage>
  </List_NewPackagesFromDateResult>
</List_NewPackagesFromDateResponse>

List_LatestPackagesForSubscriber

This operation returns a list of the latest packages that are available for you to download based on what you have subscribed to. For each package, the response lists the product ID, product name, product category, product type, package date, package filename and package size. You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/List_LatestPackagesForSubscriber

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<List_LatestPackagesForSubscriberResponse xmlns="https://soap.cap.co.uk/datadownload">
  <List_LatestPackagesForSubscriberResult>
    <Success>boolean</Success>
    <Packages>
      <PackageDetails>
        <ProductID>int</ProductID>
        <ProductName>string</ProductName>
        <ProductCategory>string</ProductCategory>
        <ProductType>string</ProductType>
        <Package_Date>dateTime</Package_Date>
        <Package_Filename>string</Package_Filename>
        <Package_Size>long</Package_Size>
      </PackageDetails>
      <PackageDetails>
        <ProductID>int</ProductID>
        <ProductName>string</ProductName>
        <ProductCategory>string</ProductCategory>
        <ProductType>string</ProductType>
        <Package_Date>dateTime</Package_Date>
        <Package_Filename>string</Package_Filename>
        <Package_Size>long</Package_Size>
      </PackageDetails>
    </Packages>
    <FailMessage>string</FailMessage>
  </List_LatestPackagesForSubscriberResult>
</List_LatestPackagesForSubscriberResponse>

Stream_Package

This operation returns a package file for a product ID and date. The response will detail the file name, date and the file split into chunks of data (base 64 binary). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/Stream_Package

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
Body ProductID Returned in the List_AllSubscriberProducts, List_LatestPackagesForSubscriber or List_NewPackagesFromDate response int No
BodyDateIn the format YYYY/MM/DDdateTimeNo

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<Stream_PackageResponse xmlns="https://soap.cap.co.uk/datadownload">
  <Stream_PackageResult>
    <File xmlns="https://soap.cap.co.uk/datadownload/">
      <Name>string</Name>
      <Date>dateTime</Date>
      <Chunk>base64Binary</Chunk>
      <Chunk>base64Binary</Chunk>
    </File>
    <Success xmlns="https://soap.cap.co.uk/datadownload/">boolean</Success>
    <ErrMsg xmlns="https://soap.cap.co.uk/datadownload/">string</ErrMsg>
  </Stream_PackageResult>
</Stream_PackageResponse>

Stream_LatestPackage

This operation returns the latest package file for a product ID. The response will detail the file name, date and the file split into chunks of data (base 64 binary). You will need to pass in the following parameters in your request:

Method Url
POST https://soap.cap.co.uk/datadownload/datadownload_webservice.asmx/Stream_LatestPackage

Parameters

Type Name Description Data Type Optional
BodySubscriberIDProvided by cap hpi supportstringNo
BodyPasswordProvided by cap hpi supportstringNo
Body ProductID Returned in the List_AllSubscriberProducts, List_LatestPackagesForSubscriber or List_NewPackagesFromDate response int No

Response

Status Response
200
<?xml version="1.0" encoding="utf-8"?>
<Stream_LatestPackageResponse xmlns="https://soap.cap.co.uk/datadownload">
  <Stream_LatestPackageResult>
    <File xmlns="https://soap.cap.co.uk/datadownload/">
      <Name>string</Name>
      <Date>dateTime</Date>
      <Chunk>base64Binary</Chunk>
      <Chunk>base64Binary</Chunk>
    </File>
    <Success xmlns="https://soap.cap.co.uk/datadownload/">boolean</Success>
    <ErrMsg xmlns="https://soap.cap.co.uk/datadownload/">string</ErrMsg>
  </Stream_LatestPackageResult>
</Stream_LatestPackageResponse>
©2025 cap-hpi ltd