APIs

Volvo Cars’ new platform for innovation

Getting there...

Extended Vehicle API

Access dashboard and status data from a user’s vehicle.

The first of many. This API begins our journey of enabling developers to create innovative and creative new services for Volvo cars users.

1openapi: 3.0.1
2info:
3  title: Extended Vehicle
4  description: >-
5    This API allows to get latest information of the vehicle such as distance
6    driven, lock status, windows and doors, rooftop or sunroof and engine status
7    of connected Volvo Cars vehicles remotely.
8  version: '1.0'
9servers:
10  - url: https://api.volvocars.com/extended-vehicle
11paths:
12  /v1/vehicles:
13    get:
14      tags:
15        - Vehicle-List
16      summary: Get Vehicle List
17      description: >-
18        Provides all current valid relations between an Volvo Id (user) and its
19        connected vehicles. Returns a list of VIN numbers together with
20        timestamp of relation
21      operationId: GetVehicleList
22      parameters:
23        - name: vcc-api-operationId
24          in: header
25          description: >-
26            A transaction unique id which can be used do identify the
27            transaction in integrated systems
28          schema:
29            type: string
30      responses:
31        '200':
32          description: OK
33          content:
34            application/json;charset=UTF-8:
35              schema:
36                $ref: '#/components/schemas/VehicleListResponse'
37            application/json:
38              schema:
39                $ref: '#/components/schemas/VehicleListResponse'
40        '400':
41          description: Request contains an unaccepted input
42          content:
43            application/json;charset=UTF-8:
44              schema:
45                $ref: '#/components/schemas/ErrorResponse'
46        '401':
47          description: Unauthorized
48          content:
49            application/json;charset=UTF-8:
50              schema:
51                $ref: '#/components/schemas/ErrorResponse'
52        '403':
53          description: Forbidden
54          content:
55            application/json;charset=UTF-8:
56              schema:
57                $ref: '#/components/schemas/ErrorResponse'
58        '404':
59          description: Not Found
60          content:
61            application/json;charset=UTF-8:
62              schema:
63                $ref: '#/components/schemas/ErrorResponse'
64        '500':
65          description: Internal Server Error
66          content:
67            application/json;charset=UTF-8:
68              schema:
69                $ref: '#/components/schemas/ErrorResponse'
70  /v1/vehicles/{vin}/resources:
71    get:
72      tags:
73        - Resource-List
74      summary: Get Resource List
75      description: >-
76        used to get a list of the available resources (status-fields) to the
77        accessing-party
78      operationId: GetResourceList
79      parameters:
80        - name: vin
81          in: path
82          description: Vehicle identification number
83          required: true
84          schema:
85            type: string
86        - name: vcc-api-operationId
87          in: header
88          description: >-
89            A transaction unique id which can be used do identify the
90            transaction in integrated systems
91          schema:
92            type: string
93      responses:
94        '200':
95          description: OK
96          content:
97            application/json;charset=UTF-8:
98              schema:
99                $ref: '#/components/schemas/ResourceListResponse'
100            application/json:
101              schema:
102                $ref: '#/components/schemas/ResourceListResponse'
103        '400':
104          description: Request contains an unaccepted input
105          content:
106            application/json;charset=UTF-8:
107              schema:
108                $ref: '#/components/schemas/ErrorResponse'
109        '401':
110          description: Unauthorized
111          content:
112            application/json;charset=UTF-8:
113              schema:
114                $ref: '#/components/schemas/ErrorResponse'
115        '403':
116          description: Forbidden
117          content:
118            application/json;charset=UTF-8:
119              schema:
120                $ref: '#/components/schemas/ErrorResponse'
121        '404':
122          description: Not Found
123          content:
124            application/json;charset=UTF-8:
125              schema:
126                $ref: '#/components/schemas/ErrorResponse'
127        '500':
128          description: Internal Server Error
129          content:
130            application/json;charset=UTF-8:
131              schema:
132                $ref: '#/components/schemas/ErrorResponse'
133  /v1/vehicles/{vin}/resources/{resource}:
134    get:
135      tags:
136        - Resource-Value
137      summary: Get Resource Value
138      description: used to get the latest collected value of the specified resource
139      operationId: GetResourceValue
140      parameters:
141        - name: vin
142          in: path
143          description: Vehicle identification number
144          required: true
145          schema:
146            type: string
147        - name: resource
148          in: path
149          description: name of the resource like odometer, cabOpen
150          required: true
151          schema:
152            type: string
153        - name: vcc-api-operationId
154          in: header
155          description: >-
156            A transaction unique id which can be used do identify the
157            transaction in integrated systems
158          schema:
159            type: string
160      responses:
161        '200':
162          description: OK
163          content:
164            application/json;charset=UTF-8:
165              schema:
166                $ref: '#/components/schemas/ResourceInstanceResponse'
167            application/json:
168              schema:
169                $ref: '#/components/schemas/ResourceInstanceResponse'
170        '400':
171          description: Request contains an unaccepted input
172          content:
173            application/json;charset=UTF-8:
174              schema:
175                $ref: '#/components/schemas/ErrorResponse'
176        '401':
177          description: Unauthorized
178          content:
179            application/json;charset=UTF-8:
180              schema:
181                $ref: '#/components/schemas/ErrorResponse'
182        '403':
183          description: Forbidden
184          content:
185            application/json;charset=UTF-8:
186              schema:
187                $ref: '#/components/schemas/ErrorResponse'
188        '404':
189          description: Not Found
190          content:
191            application/json;charset=UTF-8:
192              schema:
193                $ref: '#/components/schemas/ErrorResponse'
194        '500':
195          description: Internal Server Error
196          content:
197            application/json;charset=UTF-8:
198              schema:
199                $ref: '#/components/schemas/ErrorResponse'
200components:
201  schemas:
202    ErrorResponse:
203      type: object
204      properties:
205        exveNote:
206          type: string
207        exveErrorId:
208          type: string
209        exveErrorMsg:
210          type: string
211        exveErrorRef:
212          type: string
213    ResourceListResponse:
214      type: object
215      properties:
216        resources:
217          type: array
218          items:
219            $ref: '#/components/schemas/ResourcePointer'
220    ResourcePointer:
221      type: object
222      properties:
223        version:
224          type: string
225        name:
226          type: string
227        href:
228          type: string
229    ResourceInstance:
230      type: object
231      properties:
232        value:
233          type: string
234        unit:
235          type: string
236        timestamp:
237          type: integer
238          description: unix timestamp value
239          format: int64
240          example: '1599996619.0'
241    ResourceInstanceResponse:
242      type: object
243      properties:
244        resourceValue:
245          $ref: '#/components/schemas/ResourceInstance'
246    VehicleListResponse:
247      type: object
248      properties:
249        vehicles:
250          type: array
251          items:
252            $ref: '#/components/schemas/VehicleRelation'
253    VehicleRelation:
254      type: object
255      properties:
256        timestamp:
257          type: integer
258          description: unix timestamp value
259          format: int64
260          example: '1599996619.0'
261        id:
262          type: string
263  securitySchemes:
264    apiKeyHeader:
265      type: apiKey
266      name: vcc-api-key
267      in: header
268    apiKeyQuery:
269      type: apiKey
270      name: vcc-api-key
271      in: query
272    accessToken:
273      type: http
274      scheme: bearer
275      bearerFormat: JWT
276      description: >-
277        A valid access token from the Volvo ID account service. See the
278        Authorization Guide for details. The access token must have been issued
279        on behalf of the current user.
280security:
281  - apiKeyHeader: []
282  - apiKeyQuery: []
283  - accessToken: []
284

Extended Vehicle API

1.1.0OAS3

The Extended Vehicle API allows you to get the latest information from the vehicle such as the distance driven or the fuel level, as well as if the windows, doors, rooftop or sunroof are open or closed, and the status of the lights from any connected Volvo vehicle, provided the owner has given consent.

In update 1.1.0
New datapoints including: Vehicle Statistics and Diagnostics.

How it works: Subscribe to the Extended Vehicle API and receive all the available data from the dashboard, and more.

1. Sign in

Sign in or create an account using Gmail, Github or Microsoft. If you have a Volvo CDSID, you can use that as well.

2. Create your application

Give your project a name that says a little about what you want to do. E.g.: “Tom’s Magic Mirror”.

3. Get your keys

You will receive your “vcc-api-key” which is required to be included in all API requests. You can find your active subscriptions on your profile page.

4. Get your access token

You’ll receive a token that gives you access to test data, which is based on data from real Volvo cars in Sweden

5. Build your application

By using your credentials, you can build and test your application with real data.

6. Publish your application

When you are ready to connect to real users cars you can publish your application for release. We will then supply you with upgraded credentials. Please note that this can take some time.

Featured projects

Featured projects

One of the fun things about opening up our APIs is seeing the different uses to which they can be put. The Extended Vehicle API can be used to power a global insurance solution, or in the case of one of our developers, it can power a smart mirror connected to their own personal vehicle. We look forward to seeing what innovations you can come up with.

Q&A

Get the latest updates

Get notified with new releases and updates as well as when live streams with Q&A’s are scheduled.

Volvo Car Group will store and process your personal data according to the Information Notice.
Copyright © 2021 Volvo Car Corporation (or its affiliates or licensors)