SEMA Data API


Introduction


The SEMA Data API is an evolving data entrypoint for suppliers and receivers of data alike. The overarching goal is to provide performant, best-in-breed webservices tailored to our members' needs.

Please review our terms of service.


Getting Started


A rate limit of 60 calls per minute has been implemented. Your rate is tracked and returned to you in the HTTP response header "RateLimit-Remaining", counting down from 60 and resetting each minute.

The first step in accessing the API is getting a security token. This token can be reused for subsequent API calls. Provide your PIMS (or SEMA Search) username and password

https://apps.semadata.org/sdapi/v1/token/get?userName=YOUR_USERNAME&password=YOUR_PASSWORD

Note: The SDC API response format is JSON by default. We encourage all of our partners to use this extremely lean format as less data will be transferred by comparison to XML.

To request XML data delivery, please specify "Accept: text/xml" in your request header.
For further reading on the benefits of JSON, click here.


On valid authentication, the token response will reply with a success property true and your token, or false, with a reason on why the authentication failed. Example success response:

JSON response
                    {
                    "success": true,
                    "message": "",
                    "token": "abcd12345"
                    }
                    
XML response
<tokenresponse>
  <success>true</success>
  <message />
  <token>abcd12345</token>
</tokenresponse>


Receiver / Export Methods


Brand Datasets

Brand datasets retrieves the list of authorized brands a receiver is authorized for. A request for a brand's data must be submitted to and approved by a supplier before it will be populated in this API call.

https://apps.semadata.org/sdapi/v1/export/branddatasets?token=YOUR_TOKEN
JSON response
{
"success": true,
"message": "",
"BrandDatasets": [
    {
    "AAIABrandId": "AAFF",
    "BrandName": "Aeromotive Fuel System",
    "DatasetId": 66,
    "DatasetName": "Aeromotive Fuel System",
    "LastUpdated": "2021-10-09T12:25:36.443"
    },
    {
    "AAIABrandId": "AAGG",
    "BrandName": "Air Lift",
    "DatasetId": 67,
    "DatasetName": "Air Lift Company_Air Lift",
    "LastUpdated": "2021-10-09T12:25:36.443"
    }]
}
XML response
<branddatasetresponse>
  <success>true</success>
  <message />
  <branddatasets>
    <branddataset>
      <aaiabrandid>AAFF</aaiabrandid>
      <brandname>Aeromotive Fuel System</brandname>
      <datasetid>66</datasetid>
      <datasetname>Aeromotive Fuel System</datasetname>
      <lastupdated>2021-10-09T12:25:36.443</lastupdated>
    </branddataset>
    <branddataset>
      <aaiabrandid>AAGG</aaiabrandid>
      <brandname>Air Lift</brandname>
      <datasetid>67</datasetid>
      <datasetname>Air Lift Company_Air Lift</datasetname>
      <lastupdated>2021-10-09T12:25:36.443</lastupdated>
    </branddataset>
  </branddatasets>
</branddatasetresponse>

Export Plans

Export plans are the "push" exports that you have preconfigured. If you've scheduled an export through PIMS, all of those exports' information is accessible through this method call. These exports can be executed on-demand regardless of their scheduled time. Typically, your scheduled exports will run as expected -- if you happen to have the need to re-run an export programmatically, refer to this method as apporpriate:

https://apps.semadata.org/sdapi/v1/export/plans?token=YOUR_TOKEN
JSON response
{
"success": true,
"message": "",
"ExportPlans": [
    {
    "ExportPlanId": 1234,
    "Name": "My Daily Export",
    "ExportModule": "PIES 6.5 XML",    
    "ExporType": "Full",        
    "AAIABrandId": "BBFG",
    "DatasetId": 66,
    "DatasetName": "Supplier Dataset 1",
    "DeliveryMethod": "FTP",
    "ScheduleData": "runschedule|Daily|0200|Su"
    },
    {
    "ExportPlanId": 1235,
    "Name": "My Monthly Export",
    "ExportModule": "ACES 3.0 XML",    
    "ExporType": "NetChange",        
    "AAIABrandId": "BBFF",
    "DatasetId": 67,
    "DatasetName": "Supplier Dataset 2",
    "DeliveryMethod": "FTP",
    "ScheduleData": "runschedule|Monthly|0200|1,15"
    }]
}
XML response
<exportplanresponse>
  <success>true</success>
  <message />
  <exportplans>
    <exportplan>
      <datasetid>66</datasetid>
      <datasetname>Supplier Dataset 1</datasetname>
      <deliverymethod>FTP</deliverymethod>
      <exportmodule>PIES 6.5 XML</exportmodule>
      <exporttype>Full</exporttype>
      <exportplanid>1234</exportplanid>
      <name>My Daily Export</name>
      <scheduledata>runschedule|Daily|0200|Su
12</scheduledata>
    </exportplan>
    <exportplan>
      <datasetid>67</datasetid>
      <datasetname>Supplier Dataset 2</datasetname>
      <deliverymethod>FTP</deliverymethod>
      <exportmodule>ACES 3.0 XML</exportmodule>
      <exporttype>NetChange</exporttype>
      <exportplanid>1235</exportplanid>
      <name>My Monthly Export</name>
      <scheduledata>runschedule|Monthly|0200|
1,15</scheduledata>
    </exportplan>
  </exportplans>
</exportplanresponse>

Run

Existing exports can be run when you know their ExportPlanID via the web request above by executing the following.
Only 10 exports at a time can be run via this method. Simply wait for exports to finish to run more.

https://apps.semadata.org/sdapi/v1/export/run?token=YOUR_TOKEN&exportPlanID=YOUR_EXPORTPLANID

Export Status

Returns scheduled exports' run status (running, complete, error)
If optional StartDate parameter is not specified, returns last 24 hours of export runs

https://apps.semadata.org/sdapi/v1/export/status?token=YOUR_TOKEN

Optional parameters

Parameter
Usage
Purpose
ExportPlanId

exportplanid=123456
Filters statuses by one specific export run (StartDate parameter ignored if used)
Name

name=my%20daily%20run
Filters statuses by a named scheduled export
AAIABrandId

AAIABrandId=ABCD
Filters statuses by a specific brand
StartDate

StartDate=12/1/15
Filters statuses that start after the specified date (defaults to 24 hours if not specified)
JSON response
{
"success": true,
"message": "",
"ExportStatuses": [
    {
      "ExportPlanId": 12345,
      "Name": "My Export Daily",
      "ExportModule": "ACES 3.0 XML",
      "ExportType": "NetChange",
      "Status": "Running",
      "StartTime": "2015-12-03T09:31:03.29"
    },
    {
      "ExportPlanId": 456789,
      "Name": "My Export Weekly 2",
      "ExportModule": "PIES 6.5 XML",
      "ExportType": "Full",
      "Status": "Complete",
      "StartTime": "2015-12-03T09:30:59.957"
    },
    {
      "ExportPlanId": 789123,
      "Name": "My Export Monthly",
      "ExportModule": "ACES 3.0 XML",
      "ExportType": "NetChange",
      "Status": "Error",
      "StartTime": "2015-12-03T09:30:55.927"
    }]
}
XML response
<exportstatusresponse>
  <success>true</success>
  <message />
  <exportstatuses>
    <exportstatus>
      <exportplanid>123456</exportplanid>
      <name>My Export Daily</name>
      <exportmodule>ACES 3.0 XML</exportmodule>
      <exporttype>NetChange</exporttype>
      <status>Running</status>
      <starttime>2015-12-03T09:31:03.29</starttime>
    </exportstatus>
    <exportstatus>
      <exportplanid>123456</exportplanid>
      <name>My Export Weekly 2</name>
      <exportmodule>PIES 6.5 XML</exportmodule>
      <exporttype>Full</exporttype>
      <status>Complete</status>
      <starttime>2015-12-03T09:31:03.29</starttime>
    </exportstatus>
    <exportstatus>
      <exportplanid>123456</exportplanid>
      <name>My Export Monthly</name>
      <exportmodule>ACES 3.0 XML</exportmodule>
      <exporttype>NetChange</exporttype>
      <status>Error</status>
      <starttime>2015-12-03T09:31:03.29</starttime>
    </exportstatus>
  </exportstatuses>
</exportstatusresponse>

PIES Export

Runs and returns a PIES-compliant export based on a brand or dataset

HTTP POST: https://apps.semadata.org/sdapi/v1/export/piesexport

Note: You must be the brand owner or an authorized receiver within PIMS on any brands/datasets specified.
Note: Pricing information can only be returned when a dataset is specified.

Required parameters

Parameter
Usage
Purpose
token

token=a123b456c
Verifies user authentication and data authorization
PIESVersion

PIESVersion=6.5
Specifies the version of PIES-compliant export.
Currently supported: 6.5, 6.7
AAIA_BrandId
- or -
brandDatasetId
AAIA_BrandId=DMWK
- or -
brandDatasetId=12345
Filters the results by an ACA brand ID
- or -
Runs an export by the brand's dataset ID

Optional parameters

Parameter
Usage
Purpose
partNumbers

partNumbers[]=AB-123
&partNumbers[]=AB-456
&partNumbers[]=AB-789
Filters the results by specific part numbers
excludeMarketCopy

excludeMarketCopy=True
Excludes the Market Copy segment
excludePricing

excludePricing=True
Excludes the Pricing segment (if applicable)
JSON response
{
"success": true,
"message": "",    
"ValidationWarnings": [],
"IsValid": true,
"ValidationErrors": [],
"PiesExport": "<?xml version="1.0" encoding="utf-8" ?><pies xmlns="http://www.aftermarket.org">
      ..."
      }
XML response
<piesexportresponse>
  <success>true</success>
  <message />
  <validationwarnings></validationwarnings>
  <isvalid>true</isvalid>
  <validationerrors></validationerrors>
  <piesexport>
    <?xml version="1.0" encoding="utf-8" ?><pies xmlns="http://www.aftermarket.org"> ...
  </piesexport>
</piesexportresponse>

Export Progress

Returns the percentage complete an export is for monitoring purposes

HTTP POST: https://apps.semadata.org/sdapi/v1/export/progress

Required parameters

Parameter
Usage
Purpose
token

token=a123b456c
Verifies user authentication and data authorization
AAIA_BrandId
- or -
brandDatasetId
AAIA_BrandId=DMWK
- or -
brandDatasetId=12345
Currently-running ACA brand ID specified for export
- or -
Currently-running dataset ID specified for export
module

module=PIES
The module specified for export
moduleversion
moduleversion=6.5
The module's version specified for export
JSON response
{
"success": true,
"message": "",    
"PercentComplete": 75%
      }
XML response
<exportprogressresponse>
  <success>true</success>
  <message />
  <percentcomplete>75%</percentcomplete>
</exportprogressresponse>

Digital Assets (CDN Delivery)

Returns a list of brand products with a downloadable link. Filterable by part numbers and asset types.

HTTP POST: https://apps.semadata.org/sdapi/v1/export/digitalassets

Warning: Do not hotlink (use the URLs) as a means of content delivery. Use the links to download the assets and then serve them from a content store. These links are not guaranteed to be static, and frequently change as the supplier's assets and/or the CDN domain changes.

Required parameters

Parameter
Usage
Purpose
token

token=a123b456c
Verifies user authentication and data authorization
AAIA_BrandId
- or -
brandDatasetId
AAIA_BrandId=DMWK
- or -
brandDatasetId=12345
Filters the results by an AAIA brand ID
- or -
Filters the results by a brand's dataset ID

Optional parameters

Parameter
Usage
Purpose
partNumbers

partNumbers[]=AB-123
&partNumbers[]=AB-456
&partNumbers[]=AB-789
Filters the results by specific part numbers
assetTypeCodes

assetTypeCodes[]=P04
&assetTypeCodes[]=LGO
&assetTypeCodes[]=P07
Filters the results by PIES asset type codes (Please refer to PIES 'Digital Asset Segment Codes' appendix)
(If not specified, all asset types are returned)
JSON response
{
"success": true,
"message": "",
"DigitalAssets": [
    {
      "PartNumber": "911-42010SL",
      "Link": "http://cdn.rackcdn.com/K&N/logo1.jpg",
      "AssetTypeCode": "LGO",
      "FileName": "logo1.jpg",
      "RecordModifiedDate": "2015-01-05T21:26:36.137"
    },
    {
      "PartNumber": "911-42010SL",
      "Link": "http://cdn.rackcdn.com/K&N/logo2.jpg",
      "AssetTypeCode": "LGO",
      "FileName": "logo2.jpg",
      "RecordModifiedDate": "2015-01-05T21:26:36.137"
    },
    {
      "PartNumber": "911-42010SL",
      "Link": "http://cdn.rackcdn.com/K&N/img1.jpg",
      "AssetTypeCode": "P04",
      "FileName": "img1.jpg",
      "RecordModifiedDate": "2015-01-05T21:26:36.137"
    }]
}
XML response
<digitalassetresponse>
  <success>true</success>
  <message />
  <digitalassets>
    <digitalasset>
      <partnumber>911-42010SL</partnumber>
      <link>http://cdn.rackcdn.com/K&N/logo1.jpg</link>
      <assettypecode>LGO</assettypecode>
      <filename>LGO</filename>
      <recordmodifieddate>2015-01-05T21:26:36.137</recordmodifieddate>
    </digitalasset>
    <digitalasset>
      <partnumber>911-42010SL</partnumber>
      <link>http://cdn.rackcdn.com/K&N/logo2.jpg</link>
      <assettypecode>LGO</assettypecode>
      <filename>LGO</filename>
      <recordmodifieddate>2015-01-05T21:26:36.137</recordmodifieddate>
    </digitalasset>
    <digitalasset>
      <partnumber>911-42010SL</partnumber>
      <link>http://cdn.rackcdn.com/K&N/img1.jpg</link>
      <assettypecode>P04</assettypecode>
      <filename>LGO</filename>
      <recordmodifieddate>2015-01-05T21:26:36.137</recordmodifieddate>
    </digitalasset>
  </products>
</digitalassetresponse>


Supplier / Import Methods


Brand Datasets

Brand datasets retrieves the list of brands you own as a supplier.

https://apps.semadata.org/sdapi/v1/import/branddatasets?token=YOUR_TOKEN
JSON response
{
"success": true,
"message": "",
"BrandDatasets": [
    {
    "AAIABrandId": "AAFF",
    "BrandName": "Aeromotive Fuel System",
    "DatasetId": 66,
    "DatasetName": "Aeromotive Fuel System"
    },
    {
    "AAIABrandId": "AAGG",
    "BrandName": "Air Lift",
    "DatasetId": 67,
    "DatasetName": "Air Lift Company_Air Lift"
    }]
}
XML response
<branddatasetresponse>
  <success>true</success>
  <message />
  <branddatasets>
    <branddataset>
      <aaiabrandid>AAFF</aaiabrandid>
      <brandname>Aeromotive Fuel System</brandname>
      <datasetid>66</datasetid>
      <datasetname>Aeromotive Fuel System</datasetname>
    </branddataset>
    <branddataset>
      <aaiabrandid>AAGG</aaiabrandid>
      <brandname>Air Lift</brandname>
      <datasetid>67</datasetid>
      <datasetname>Air Lift Company_Air Lift</datasetname>
    </branddataset>
  </branddatasets>
</branddatasetresponse>

Brand Import Reports

Import reports will return a listing of all your brand of the last time an import was received and the result, as well as the current SKU count Brand datasets retrieves the list of brands you own as a supplier.

https://apps.semadata.org/sdapi/v1/import/brandimportreport?token=YOUR_TOKEN
JSON response
{
"success": true,
"message": "",
"Report": [
    "AAIABrandID": "ABCD",
    "BrandName": "The Brand",
    "Batch": "My Update Batch",           
    "UpdatedOn": "2016-07-27T09:39:51.39",
    "CreatedOn": "2016-07-28T09:39:51.39", 
    "BatchTotal": 100,
    "AddedTotal": 75,
    "UpdatedTotal": 25,
    "FailedValidation": 0,
    "BrandSKUTotal": 100,
    "ACESRecordTotal": 5000
    },
    {
    "Brand": "WXYZ",    
    "BrandName": "Another Brand",
    "Batch": "My Update Batch 2",      
    "UpdatedOn": "2016-07-27T09:39:51.39",
    "CreatedOn": "2016-07-28T09:39:51.39", 
    "BatchTotal": 100,
    "AddedTotal": 75,
    "UpdatedTotal": 25,
    "FailedValidation": 0,
    "BrandSKUTotal": 100,
    "ACESRecordTotal": 5000
    }]
}
XML response
<brandimportresponse>
  <success>true</success>
  <message />
  <report>
    <brandimportstatus>
      <aaiabrandid>ABCD</aaiabrandid>
      <brandname>The Brand</brandname>
      <batch>My Updated Batch</batch>
      <createdon>2016-07-27T09:39:51.39</createdon>
      <updatedon>2016-07-28T09:39:51.39</updatedon>
      <batchtotal>100</batchtotal>
      <addedtotal>75</addedtotal>
      <updatedtotal>25</updatedtotal>
      <failedvalidation>0</failedvalidation>
      <brandskutotal>100</brandskutotal>
      <acesrecordtotal>100</acesrecordtotal>
    </brandimportstatus>
    <brandimportstatus>
      <aaiabrandid>WXYZ</aaiabrandid>
      <brandname>Another Brand</brandname>
      <batch>My Update Batch 2</batch>
      <createdon>2016-07-27T09:39:51.39</createdon>
      <updatedon>2016-07-28T09:39:51.39</updatedon>
      <batchtotal>100</batchtotal>
      <addedtotal>75</addedtotal>
      <updatedtotal>25</updatedtotal>
      <failedvalidation>0</failedvalidation>
      <brandskutotal>100</brandskutotal>
      <acesrecordtotal>100</acesrecordtotal>
    </brandimportstatus>
  </report>
</brandimportresponse>


Data Lookups


Year/Make/Model/Submodel

Years

Valid years as defined by the ACA VCdb

https://apps.semadata.org/sdapi/v1/lookup/years?token=YOUR_TOKEN

Note: You must be the brand owner or an authorized receiver within PIMS on any brands/datasets specified. If no brands are specified; results are based on all authorized brands

Optional parameters

Parameter
Usage
Purpose
aaia_brandids

aaia_brandids=DMWK &aaia_brandids=BBWQ
Filters the results by a AAIA brand ID or ID's
branddatasetids

branddatasetids=12345 &branddatasetids=54321
Filters the results by a brand's dataset ID or ID's
JSON response
{
"success": true,
"message": "",
"Years": [1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016]
}
XML response
<yearresponse>
  <success>true</success>
  <message />
  <years>
    <d2p1:int>2016</d2p1:int>
    <d2p1:int>2015</d2p1:int>
    <d2p1:int>2014</d2p1:int>
    <d2p1:int>2013</d2p1:int>
    <d2p1:int>2012</d2p1:int>
    <d2p1:int>2011</d2p1:int>
    <d2p1:int>2010</d2p1:int>
  </years>
</yearresponse>

Makes

Valid makes as defined by the ACA VCdb

https://apps.semadata.org/sdapi/v1/lookup/makes?token=YOUR_TOKEN

Note: You must be the brand owner or an authorized receiver within PIMS on any brands/datasets specified. If no brands are specified; results are based on all authorized brands

Optional parameters

Parameter
Usage
Purpose
year

year=2005
Filters results by year
aaia_brandids

aaia_brandids=DMWK &aaia_brandids=BBWQ
Filters the results by a AAIA brand ID or ID's
branddatasetids

branddatasetids=12345 &branddatasetids=54321
Filters the results by a brand's dataset ID or ID's
JSON response
{
"success": true,
"message": "",
"Makes": [
    {
    "MakeID": 58,
    "MakeName": "Acura"
    },
    {
    "MakeID": 73,
   "MakeName": "Audi"
    },
    {
    "MakeID": 31,
    "MakeName": "BMW"
    }]
}
XML response
<makeresponse>
  <success>true</success>
  <message />
  <makes>
    <make>
      <makeid>58<makeid>
      <makename>Acura<makename>
    </make>
    <make>
      <makeid>73<makeid>
      <makename>Audi<makename>
    </make>
    <make>
      <makeid>31<makeid>
      <makename>BMW<makename>
    </make>
  </makes>
</makeresponse>

Models

Valid models as defined by the ACA VCdb

https://apps.semadata.org/sdapi/v1/lookup/models?token=YOUR_TOKEN

Note: BaseVehicleId is only populated when year/make is specified
Note: You must be the brand owner or authorized within PIMS on any brands/datasets specified. If no brands are specified; results are based on all authorized brands

Optional parameters

Parameter
Usage
Purpose
year

year=2005
Filters results by year
makeid

makeid=31
Filters results by make
aaia_brandids

aaia_brandids=DMWK &aaia_brandids=BBWQ
Filters the results by a AAIA brand ID or ID's
branddatasetids

branddatasetids=12345 &branddatasetids=54321
Filters the results by a brand's dataset ID or ID's
JSON response
{
"success": true,
"message": "",
"Models": [
    {
    "BaseVehicleID": 18488,
    "ModelID": 170,
    "ModelName": "325Ci"
    },
    {
    "BaseVehicleID": 18489,
    "ModelID": 173,
    "ModelName": "325i"
    },
    {
    "BaseVehicleID": 18490,
    "ModelID": 176,
    "ModelName": "325xi"
    }]
}
XML response
<modelresponse>
  <success>true</success>
  <message />
  <models>
    <model>
      <basevehicleid>18488<basevehicleid>
      <modelid>170<modelid>
      <modelname>325Ci<modelname>
    </model>
    <model>
      <basevehicleid>18489<basevehicleid>
      <modelid>173<modelid>
      <modelname>325i<modelname>
    </model>
    <model>
      <basevehicleid>18490<basevehicleid>
      <modelid>176<modelid>
      <modelname>325xi<modelname>
    </model>
  </models>
</modelresponse>

Submodels

Valid submodels as defined by the ACA VCdb

https://apps.semadata.org/sdapi/v1/lookup/submodels?token=YOUR_TOKEN

Note: VehicleId is only populated when year/make/model is specified
Note: You must be the brand owner or authorized within PIMS on any brands/datasets specified. If no brands are specified; results are based on all authorized brands

Optional parameters

Parameter
Usage
Purpose
year

year=2000
Filters results by year
makeid

makeid=54
Filters results by make
modelid

modelid=679
Filters results by model
aaia_brandids

aaia_brandids=DMWK &aaia_brandids=BBWQ
Filters the results by a AAIA brand ID or ID's
branddatasetids

branddatasetids=12345 &branddatasetids=54321
Filters the results by a brand's dataset ID or ID's
JSON response
{
"success": true,
"message": "",
"Submodels": [
    {
    "VehicleID": 18488,
    "SubmodelID": 170,
    "SubmodelName": "LX"
    },
    {
    "VehicleID": 18489,
    "SubmodelID": 173,
    "SubmodelName": "SE"
    },
    {
    "VehicleID": 18490,
    "SubmodelID": 176,
    "SubmodelName": "ZTS"
    }]
}
XML response
<submodelresponse>
  <success>true</success>
  <message />
  <submodels>
    <submodel>
      <vehicleid>18488<vehicleid>
      <submodelid>170<submodelid>
      <submodelname>325Ci<submodelname>
    </submodel>
    <submodel>
      <vehicleid>18489<vehicleid>
      <submodelid>173<submodelid>
      <submodelname>325i<submodelname>
    </submodel>
    <submodel>
      <vehicleid>18490<vehicleid>
      <submodelid>176<submodelid>
      <submodelname>325xi<submodelname>
    </submodel>
  </submodels>
</submodelresponse>

Engine

Valid engines as defined by the ACA VCdb

https://apps.semadata.org/sdapi/v1/lookup/engines?token=YOUR_TOKEN

Note: VehicleId is only populated when year/make/model is specified
Note: You must be the brand owner or authorized within PIMS on any brands/datasets specified. If no brands are specified; results are based on all authorized brands

Optional parameters

Parameter
Usage
Purpose
year

year=2000
Filters results by year
makeid

makeid=54
Filters results by make
modelid

modelid=679
Filters results by model
aaia_brandids

aaia_brandids=DMWK &aaia_brandids=BBWQ
Filters the results by a AAIA brand ID or ID's
branddatasetids

branddatasetids=12345 &branddatasetids=54321
Filters the results by a brand's dataset ID or ID's
JSON response
{
"success": true,
"message": "",
"Engines": [
    {
      "VehicleID": 5184,
      "Liter": "3.0",
      "CC": "2962",
      "CID": "181",
      "Cylinders": "6",
      "BlockType": "V",
      "EngBoreIn": "3.39",
      "EngBoreMetric": "86.0",
      "EngStrokeIn": "3.35",
      "EngStrokeMetric": "85.0",
      "ValvesPerEngine": "24",
      "AspirationName": "Naturally Aspirated",
      "CylinderHeadTypeName": "DOHC",
      "FuelTypeName": "GAS",
      "IgnitionSystemTypeName": "Distributorless",
      "MfrName": "GM Europe",
      "HorsePower": "U/K",
      "KilowattPower": "U/K",
      "EngineDesignationName": "D16Y5"
    }]
}
XML response
<engineresponse>
  <success>true</success>
  <message />
  <engines>
    <engine>
      <vehicleid>12345<vehicleid>
      <liter>3.0<liter>
      <CC>2962<CC>
      <CID>181<CID>
      <Cylinders>6<Cylinders>
      ... (etc) ...
    </engine>
  </engines>
</engineresponse>

Expanded Vehicle Info

Returns expanded ACES vehicle information

https://apps.semadata.org/sdapi/v1/lookup/expandedvehicleinfo?token=YOUR_TOKEN

Note: Due to the number of additional possible vehicle configurations wheelbase provides (x10 in many cases), you must explicitly opt-in to receive this data via the includeWheelBase flag.

Required parameters

Parameter
Usage
Purpose
baseVehicleID

baseVehicleID=12345
Returns all information given a base vehicle
vehicleID
vehicleID=12345
Returns all information given a vehicle

Optional parameters

Parameter
Usage
Purpose
includeWheelBase
includeWheelBase=true
Incldues wheelbase information (otherwise blank)
sendIDs
sendIDs=true
Sends the corresponding VCDB ID's instead of VCDB values
JSON response
{
"success": true,
"message": "",
"Vehicles": [
    {"Year":2018,
     "Make":"Hyundai",
     "Model": "Sonata",
     "Submodel":"Eco",
     "Region":"United States",
     "Liter":"1.6",
     "Cylinders":"4",
     "BlockType":"L",
     "FuelDeliveryTypeName":"FI",
     "FuelTypeName":"GAS"

       ... (etc) ...

    }
]
}
XML response
<expandedvehicleresponse >
  <success>true</success>
  <message />
  <vehicles>
    <expandedvehicleinfo>
      <year>2018<year>
      <make>Hyundai<make>
      <model>Sonata<model>
      ... (etc) ...
    </expandedvehicleinfo>
  </vehicles>
</expandedvehicleresponse >

Categories

Categories as defined by the ACA PCdb

HTTP POST: https://apps.semadata.org/sdapi/v1/lookup/categories 

Note: You must be the brand owner or authorized within PIMS on any brands/datasets specified. If no brands are specified; results are based on all authorized brands

Required parameters (HTTP POST)

Parameter
Usage
Purpose
token

token=abcd123456
Security token required by all API calls
aaia_brandids (or)
branddatasetids
aaia_brandids=DMWK&aaia_brandids=FDLQ (or)
branddatasetids=12345&branddatasetids=56789
Filters the results by an AAIA brand ID
Filters the results by a brand's dataset ID

Optional parameters

Parameter
Usage
Purpose
baseVehicleIds

baseVehicleIds=12345 &baseVehicleIds=54321
Filters the results by vehicle ACES application(s)
vehicleIds

vehicleIds=12345&vehicleIds=54321
Filters the results by vehicle ACES application(s)
Year, MakeName,
ModelName, (optional)SubmodelName
Year=2013&MakeName=Nissan
&ModelName=Maxima
Filters the results by vehicle ACES application(s)
JSON response
{
"success": true,
"message": "",
"Categories": [
    {
      "ParentId": 1,
      "CategoryId": 3903,
      "Name": "Brake",
      "Categories": [
        {
          "ParentId": 3903,
          "CategoryId": 4512,
          "Name": "Drums and Rotors",
          "Categories": [
            {
              "ParentId": 4512,
              "CategoryId": 4531,
              "Name": "Disc Brake Rotor",
              "Categories": []
            }]
        }
      ]}
}
XML response
<categoryresponse>
  <success>true</success>
  <message />
  <categories>
    <category>
      <parentid>1<parentid>
      <categoryid>3903<categoryid>
      <name>Brake<name>
      <categories>
        <category>
          <parentid>3903<parentid>
          <categoryid>4512<categoryid>
          <name>Drums and Rotors<name>
          <categories>
            <category>
              <parentid>4512<parentid>
              <categoryid>4531<categoryid>
              <name>Disc Brake Rotor<name>
            </category>
          </categories>
        </category>
      </categories>
    </category>
  </categories>
</categoryresponse>

Products by Category

Returns product information given a category

HTTP POST:https://apps.semadata.org/sdapi/v1/lookup/productsbycategory

Required parameters (HTTP POST)

Parameter
Usage
Purpose
token

token=abcd123456
Security token required by all API calls
CategoryId

CategoryId=11924
Returns the products in a category

Optional parameters

Parameter
Usage
Purpose
aaia_brandids (or)
branddatasetids
aaia_brandids=DMWK&aaia_brandids=FDLQ (or)
branddatasetids=12345&branddatasetids=56789
Filters the results by an AAIA brand ID
Filters the results by a brand's dataset ID
baseVehicleIds

baseVehicleIds=12345 &baseVehicleIds=54321
Filters the results by vehicle ACES application(s)
vehicleIds

vehicleIds=12345 &vehicleIds=54321
Filters the results by vehicle ACES application(s)
includeChildCategoryParts


includeChildCategoryParts=true
Includes parts from any subcategories, not just the category specified
partNumbers

partNumbers=12345 &partNumbers=54321
Filters the results by part number(s)
piesSegments (specify "all" to receive all)
piesSegments=C10_DES &piesSegments=P05_LGO (piesSegments=all)
Adds PIES data to the results for the provided segments
Year, MakeName,
ModelName, (optional)SubmodelName
Year=2013&MakeName=Nissan
&ModelName=Maxima
Filters the results by vehicle ACES application(s)
PIESFilters
[{ PIESElement: "F10", PIESValue: "Stainless Steel" },{ PIESElement: "F10", PIESValue: "Aluminum" }]
Filters the results based on PIES value(s) such as product attributes. Note: must also set the piesSegments parameter to the PIES elements being filtered
lookupAttributeLabels
lookupAttributeLabels=True
Where appropriate, looks up the product attributes' PADB label and replace the F05 PADB ID with the PADB label
lookupEXPILabels
lookupEXPILabels=True
Where appropriate, looks up the product EXPI code with the full PADB descriptions
JSON response
{
"success": true,
"message": "",
"Products": [
    {    
    "ProductId": 20664458
    "PartNumber": "911-42011SR",
    "PiesAttributes": [
    {
        "PiesSegment": "C10_DEF_EN",
        "Value": "Disc Brake Rotor"
    },
    {
        "PiesSegment": "C10_SHO_EN",
        "Value": "4000 Series Rotor"
    },
    {
        "PiesSegment": "P05_LGO_WhiteLogo.pdf",
        "Value": "WhiteLogo.pdf"
    }]
}
XML response
<productresponse>
  <success>true</success>
  <message />
  <products>
    <product>
      <partnumber>911-42010SL</partnumber>
      <piesattributes>
        <piesattribute>
          <piessegment>C10_DEF_EN</piessegment>
          <value>Disc Brake Rotor</value>
       </piesattribute>
        <piesattribute>
          <piessegment>C10_SHO_EN</piessegment>
          <value>4000 Series Rotor</value>
       </piesattribute>
        <piesattribute>
          <piessegment>P05_LGO_WhiteLogo.pdf</piessegment>
          <value>WhiteLogo.pdf</value>
       </piesattribute>
     </piesattributes>
    </product>
  </products>
</productresponse>

Products by Brand

Returns product information given a brand's dataset ID or AAIA brand ID

HTTP POST: https://apps.semadata.org/sdapi/v1/lookup/products 

Note: You must be the brand owner or an authorized receiver within PIMS on any brands/datasets specified

Required parameters (HTTP POST)

Parameter
Usage
Purpose
token

token=abcd123456
Security token required by all API calls
aaia_brandid (or)
branddatasetid (or)
aaia_brandids (or)
branddatasetids
aaia_brandid=DMWK (or)
branddatasetid=12345 (or)
aaia_brandids=DMWK&aaia_brandids=FDLQ (or)
branddatasetids=12345&branddatasetids=56789
Filters the results by an AAIA brand ID
Filters the results by a brand's dataset ID

Optional parameters

Parameter
Usage
Purpose
baseVehicleIds

baseVehicleIds=12345 &baseVehicleIds=54321
Filters the results by (base) vehicle ACES application(s)
vehicleIds

vehicleIds=12345 &vehicleIds=54321
Filters the results by vehicle ACES application(s)
partNumbers

partNumbers=12345 &partNumbers=54321
Filters the results by part number(s)
piesSegments (specify "all" to receive all)
piesSegments=C10_DES &piesSegments=P05_LGO (piesSegments=all)
Adds PIES data to the results for the provided segments
Year, MakeName,
ModelName, (optional)SubmodelName
Year=2013&MakeName=Nissan
&ModelName=Maxima
Filters the results by vehicle ACES application(s)
PIESFilters
[{ PIESElement: "F10", PIESValue: "Stainless Steel" },{ PIESElement: "F10", PIESValue: "Aluminum" }]
Filters the results based on PIES value(s) such as product attributes. Note: must also set the piesSegments parameter to the PIES elements being filtered
lookupAttributeLabels
lookupAttributeLabels=True
Where appropriate, looks up the product attributes' PADB label and replace the F05 PADB ID with the PADB label
lookupEXPILabels
lookupEXPILabels=True
Where appropriate, looks up the product EXPI code with the full PADB descriptions
JSON response
{
"success": true,
"message": "",
"Products": [
    {        
    "ProductId": 20664458
    "PartNumber": "911-42011SR",
    "PiesAttributes": [
    {
        "PiesSegment": "C10_DEF_EN",
        "Value": "Disc Brake Rotor"
    },
    {
        "PiesSegment": "C10_SHO_EN",
        "Value": "4000 Series Rotor"
    },
    {
        "PiesSegment": "P05_LGO_WhiteLogo.pdf",
        "Value": "WhiteLogo.pdf"
    }]
}
XML response
<productresponse>
  <success>true</success>
  <message />
  <products>
    <product>
      <partnumber>911-42010SL</partnumber>
      <piesattributes>
        <piesattribute>
          <piessegment>C10_DEF_EN</piessegment>
          <value>Disc Brake Rotor</value>
       </piesattribute>
        <piesattribute>
          <piessegment>C10_SHO_EN</piessegment>
          <value>4000 Series Rotor</value>
       </piesattribute>
        <piesattribute>
          <piessegment>P05_LGO_WhiteLogo.pdf</piessegment>
          <value>WhiteLogo.pdf</value>
       </piesattribute>
     </piesattributes>
    </product>
  </products>
</productresponse>

Product Attributes

Returns a distinct list of product attributes labels and all corresponding attribute data

HTTP POST:https://apps.semadata.org/sdapi/v1/lookup/productattributes

Required parameters (HTTP POST)

Parameter
Usage
Purpose
token

token=abcd123456
Security token required by all API calls
aaia_brandids (or)
branddatasetids
aaia_brandids=DMWK&aaia_brandids=FDLQ (or)
branddatasetids=12345&branddatasetids=56789
Filters the results by an AAIA brand ID
Filters the results by a brand's dataset ID

Optional parameters

Parameter
Usage
Purpose
CategoryId
CategoryId=11924
Returns the products in a category
includeChildCategoryParts


includeChildCategoryParts=true
Includes parts from any subcategories, not just the category specified
JSON response
{
"success": true,
"message": "",
"Attributes": [
        {
            "AttributeID": "12345",
            "AttributeIDLabel": "Bracket Color",
            "AttributeData": [
                "black/gold"
            ]
        },
        {
            "AttributeID": "Capacity",
            "AttributeIDLabel": "Capacity",
            "AttributeData": [
                "15 Gallons",
                "17",
                "20 Gallons",
                "22",
                "6",
                "6 Gallons"
            ]
        }]

}
XML response
<productattributeresponse>
  <success>true</success>
  <message />
  <attributes>
    <productattributefilters>
      <attributeid>12345</attributeid>
      <attributeidlabel>Bracket Color</attributeidlabel>
      <attributedata>
        <string>black/gold</string>
     </attributedata>
    </productattributefilters>
    <productattributefilters>
      <attributeid>Capacity</attributeid>
      <attributeidlabel>Capacity</attributeidlabel>
      <attributedata>
        <string>black/gold</string>
     </attributedata>
    </productattributefilters>
  </attributes>
</productattributeresponse>

Vehicles by Brand/Product(s)

Returns vehicles that will fit a given brand or brand's partnumber(s)

HTTP POST: https://apps.semadata.org/sdapi/v1/lookup/vehiclesbyproduct

Note: You must be the brand owner or an authorized receiver within PIMS on any brands/datasets specified

Required parameters (HTTP POST)

Parameter
Usage
Purpose
token

token=abcd123456
Security token required by all API calls
aaia_brandid (or)
branddatasetid
aaia_brandid=DMWK (or)
branddatasetid=12345
Filters the results by an AAIA brand ID
Filters the results by a brand's dataset ID

Optional parameters

Parameter
Usage
Purpose
partNumber (or)
partNumbers
partNumber=12345 (or)
partNumbers=12345
&partNumbers=67890
Returns vehicle applications for this part or parts
partTermID
partTermID=12345
Filters results based on a specific part terminology ID
groupByPart
groupByPart=true
Groups the result by part into individual arrays
expandedVehicleInfo
expandedVehicleInfo=true
Includes engine info in addition to YMM
JSON response
{
"success": true,
"message": "",
"Vehicles": [
    {
    "Year": 2014,
    "MakeName": "Ford",
    "ModelName": "F-150",
    "SubmodelName": "FX2"
    },
    {
    "Year": 2014,
    "MakeName": "Ford",
    "ModelName": "F-150",
    "SubmodelName": "FX4"
    }]
}
XML response
<vehicleresponse>
  <success>true</success>
  <message />
  <vehicles>
    <vehicle>
      <year>2014</year>
      <makename>Ford</makename>
      <modelname>F-150</modelname>
      <submodelname>FX2</submodelname>
    </vehicle>
    <vehicle>
      <year>2014</year>
      <makename>Ford</makename>
      <modelname>F-150</modelname>
      <submodelname>FX4</submodelname>
    </vehicle>
  </vehicles>
</vehicleresponse>


Vehicles by Brand (Flat)

Returns vehicles that will fit a given brand or brand's partnumber(s)

HTTP POST: https://apps.semadata.org/sdapi/v1/lookup/vehiclesbybrand

Note: You must be the brand owner or an authorized receiver within PIMS on any brands/datasets specified. If no brands are specified, results are based on all authorized brands
Note: Results for this API call are calcluated daily. Updates throughout the day will not reflect until the following business day.

Required parameters (HTTP POST)

Parameter
Usage
Purpose
token

token=abcd123456
Security token required by all API calls
aaia_brandids (or)
branddatasetids
aaia_brandids=DMWK&aaia_brandids=FDLQ (or)
branddatasetids=12345&branddatasetids=56789
Filters the results by an AAIA brand ID
Filters the results by a brand's dataset ID
JSON response
{
"success": true,
"message": "",
"BrandVehicles": [
    {
    "AAIA_BrandID": "ABCD",
    "BrandName": "My Manufacturer",
    "Year": 2014,
    "MakeName": "Ford",
    "ModelName": "F-150",
    "SubmodelName": "FX2"
    },
    {
    "AAIA_BrandID": "ABCD",
    "BrandName": "My Manufacturer",
    "Year": 2014,
    "MakeName": "Ford",
    "ModelName": "F-150",
    "SubmodelName": "FX4"
    }]
}
XML response
<vehiclesbybrandresponse>
  <success>true</success>
  <message />
  <brandvehicles>
    <brandvehicle>
      <aaia_brandid>ABCD</aaia_brandid>
      <brandname>My Manufacturer</brandname>
      <year>2014</year>
      <makename>Ford</makename>
      <modelname>F-150</modelname>
      <submodelname>FX2</submodelname>
    </brandvehicle>
    <brandvehicle>
      <aaia_brandid>ABCD</aaia_brandid>
      <brandname>My Manufacturer</brandname>
      <year>2014</year>
      <makename>Ford</makename>
      <modelname>F-150</modelname>
      <submodelname>FX4</submodelname>
    </brandvehicle>
  </brandvehicles>
</vehiclesbybrandresponse>


Content Pages


The SDC now provides a page to display content for various items. You can now use the API to display a product (and future others planned).


Content Token

You need to request a content token and use them in the querystring when accessing these pages - this token expires and is an extra layer of security.

https://apps.semadata.org/sdapi/v1/token/getcontenttoken?token=YOUR_TOKEN


On valid authentication, the token response will reply with a success property true and your token, or false, with a reason on why the authentication failed. Example success response:

JSON response
{
"success": true,
"message": "",
"contenttoken": "abcd12345"
}
XML response
<contenttokenresponse>
  <success>true</success>
  <message />
  <contenttoken>abcd12345</contenttoken>
</contenttokenresponse>


Product

Returns an HTML page displaying a product

https://apps.semadata.org/sdapi/v1/content/product?contenttoken=YOUR_TOKEN&productid=PRODUCTID

Note: You must be the brand owner or an authorized receiver within PIMS on any products specified

Required querystring parameters

Parameter
Usage
Purpose
contenttoken

contenttoken=abcd123456
Security token required by all content calls
Expires after 1 minute
productid

productid=12356
To display the product specified

Optional parameters

Parameter
Usage
Purpose
stripHeaderFooter

stripHeaderFooter=true
Removes the SDC header and footer for generic usage
Full Page
Mobile / Responsive