Discovery REST API¶
This namespace describes endpoints and data types for discovery operations.
List All Families¶
Get all product families.
Endpoint |
/families |
HTTP Methods |
GET |
Response Content Type |
|
Response Body |
|
Example Request¶
curl -X GET 'https://example.com/families'
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /families HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"content": [{
"id": 41,
"name": "MultiNet-R",
"description": "The MultiNet-R product family",
"abbreviation": "MNR",
"location": "https://example.com/families/10"
}],
"last": true,
"totalElements": 1,
"totalPages": 1,
"first": true,
"sort": null,
"numberOfElements": 1,
"size": 50,
"number": 0
}
Get A Family By ID¶
Get a single product family by ID. The family ID is a stable identifier which can be reused and will always point to the same product family.
Endpoint |
/families/{ID} |
HTTP Methods |
GET |
Response Content Type |
|
Response Body |
|
Example Request¶
curl -X GET 'https://example.com/families/10'
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /families/10 HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"id": 10,
"name": "MultiNet-R",
"description": "The MultiNet-R product family",
"abbreviation": "MNR",
"location": "https://example.com/families/10"
}
List All Products¶
Get all products.
Endpoint |
/products |
HTTP Methods |
GET |
Response Content Type |
|
Response Body |
|
Example Request¶
curl -X GET 'https://example.com/products'
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /products HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"content": [{
"id": 42,
"name": "EUR",
"description": "The Europe product",
"family": {
"id": 41,
"name": "The Family",
"location": "https://example.com/families/41"
},
"location": "https://example.com/products/42"
}],
"last": true,
"totalElements": 1,
"totalPages": 1,
"first": true,
"sort": null,
"numberOfElements": 1,
"size": 50,
"number": 0
}
List Products Of A Family¶
Get all products within the given product family.
Endpoint |
/families/{ID}/products |
HTTP Methods |
GET |
Response Content Type |
|
Response Body |
|
Example Request¶
curl -X GET 'https://example.com/families/41/products'
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /families/41/products HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"content": [{
"id": 42,
"name": "EUR",
"description": "The Europe product",
"family": {
"id": 41,
"name": "The Family",
"location": "https://example.com/families/41"
},
"location": "https://example.com/products/42"
}],
"last": true,
"totalElements": 1,
"totalPages": 1,
"first": true,
"sort": null,
"numberOfElements": 1,
"size": 50,
"number": 0
}
Get A Product¶
Get a single product by ID. The product ID is a stable identifier which can be reused and will always point to the same product.
Endpoint |
/products/{ID} |
HTTP Methods |
GET |
Response Content Type |
|
Response Body |
|
Example Request¶
curl -X GET 'https://example.com/products/42'
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /products/42 HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"id": 42,
"name": "EUR",
"description": "The Europe product",
"family": {
"id": 41,
"name": "The Family",
"location": "https://example.com/families/41"
},
"location": "https://example.com/products/42"
}
List All Releases¶
Get all releases.
Endpoint |
/releases |
HTTP Methods |
GET |
Response Content Type |
|
Response Body |
|
Example Request¶
curl -X GET 'https://example.com/releases'
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /releases HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"content": [{
"id": 30,
"product": {
"id": 42,
"name": "The Europe Product",
"location": "https://example.com/products/42"
},
"family": {
"id": 41,
"name": "The Family",
"location": "https://example.com/families/41"
},
"version": "2023.09.000",
"deliveryType": "full",
"iterationType": "prototype",
"tags": {},
"state": {
"type": "released",
"date": "2023-11-05T10:01:29.000Z",
"reason": "reason"
},
"dueDate": "2023-11-01T10:01:29.000Z",
"location": "https://example.com/releases/30"
},
{
"id": 181,
"product": {
"id": 42,
"name": "The Europe Product",
"location": "https://example.com/products/42"
},
"family": {
"id": 41,
"name": "The Family",
"location": "https://example.com/families/41"
},
"version": "2023.09.001",
"deliveryType": "delta",
"iterationType": "commercial",
"tags": {},
"state": {
"type": "released",
"date": "2023-11-07T10:01:29.000Z",
"reason": "reason"
},
"dueDate": "2023-11-05T16:10:02.000Z",
"location": "https://example.com/releases/181"
}
],
"last": true,
"totalElements": 2,
"totalPages": 1,
"first": true,
"sort": null,
"numberOfElements": 2,
"size": 50,
"number": 0
}
List Releases Of A Product¶
Get all releases of a given product.
Endpoint |
/products/{ID}/releases |
HTTP Methods |
GET |
Response Content Type |
|
Response Body |
|
Example Request¶
curl -X GET 'https://example.com/products/42/releases'
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /products/42/releases HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"content": [{
"id": 30,
"product": {
"id": 42,
"name": "The Europe Product",
"location": "https://example.com/products/42"
},
"family": {
"id": 41,
"name": "The Family",
"location": "https://example.com/families/41"
},
"version": "2023.09.000",
"deliveryType": "full",
"iterationType": "prototype",
"tags": {
"some key": "a value"
},
"state": {
"type": "released",
"date": "2023-09-07T10:01:29.000Z",
"reason": "reason"
},
"location": "https://example.com/releases/30"
},
{
"id": 181,
"product": {
"id": 42,
"name": "The Europe Product",
"location": "https://example.com/products/42"
},
"family": {
"id": 41,
"name": "The Family",
"location": "https://example.com/families/41"
},
"version": "2023.09.001",
"deliveryType": "delta",
"iterationType": "commercial",
"tags": {},
"state": {
"type": "released",
"date": "2023-11-07T10:01:29.000Z",
"reason": "reason"
},
"location": "https://example.com/releases/181"
}
],
"last": true,
"totalElements": 2,
"totalPages": 1,
"first": true,
"sort": null,
"numberOfElements": 2,
"size": 50,
"number": 0
}
List Latest Releases Of A Family¶
Get latest releases of a given product family.
Endpoint |
/families/{ID}/latest-releases |
HTTP Methods |
GET |
Response Content Type |
|
Response Body |
|
Example Request¶
curl -X GET 'https://example.com/families/10/latest-releases'
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /families/1/latest-releases HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"products": [
{
"product": {
"id": 2,
"family": {
"id": 1,
"name": "Family",
"location": "https://example.com/families/1"
},
"name": "EUR",
"description": "Europe",
"location": "https://example.com/products/2"
},
"releases": [{
"id": 3,
"version": "2023.03.000",
"deliveryType": "full",
"iterationType": "commercial",
"tags": {},
"location": "https://example.com/releases/3",
"state": "released"
},
{
"id": 4,
"version": "2023.03.000",
"deliveryType": "delta",
"iterationType": "commercial",
"tags": {},
"location": "https://example.com/releases/4",
"state": "released"
},
{
"id": 5,
"version": "2023.03.000",
"deliveryType": "delta",
"iterationType": "sample",
"tags": {
"some key": "a value"
},
"location": "https://example.com/releases/5",
"state": "released"
}]
},
{
"product": {
"id": 2,
"family": {
"id": 1,
"name": "Family",
"location": "https://example.com/families/1"
},
"name": "NAM",
"location": "https://example.com/products/2"
},
"releases": [{
"id": 3,
"version": "2023.05.004",
"deliveryType": "full",
"iterationType": "commercial",
"tags": {},
"location": "https://example.com/releases/3",
"state": "released"
}]
}
]
}
Example Request With Filter¶
curl -X GET 'https://example.com/families/10/latest-releases?filter=product.name eq \'EUR\' and releases.iterationType eq \'commercial\''
--header 'Accept: application/vnd.tomtom.mcapi+json'
--header 'Authorization: Bearer <api_key>'
GET /families/1/latest-releases?filter=product.name eq 'EUR' and releases.iterationType eq 'commercial' HTTP/1.1
Host: example.com
Accept: application/vnd.tomtom.mcapi+json
Authorization: Bearer <api_key>
Example Response¶
HTTP/1.1 200
Content-Type: application/vnd.tomtom.mcapi+json
{
"products": [
{
"product": {
"id": 2,
"family": {
"id": 1,
"name": "Family",
"location": "https://example.com/families/1"
},
"name": "EUR",
"description": "Europe",
"location": "https://example.com/products/2"
},
"releases": [{
"id": 3,
"version": "2023.03.000",
"deliveryType": "full",
"iterationType": "commercial",
"tags": {},
"location": "https://example.com/releases/3",
"state": "released"
},
{
"id": 4,
"version": "2023.03.000",
"deliveryType": "delta",
"iterationType": "commercial",
"tags": {},
"location": "https://example.com/releases/4",
"state": "released"
}]
}
]
}