Download OpenAPI specification:
We apply rate limiting to all API calls. Rate limits apply either to your IP address (for unauthenticated
calls) or your API key. If you exceed your rate limit, you'll receive a 429 response. You can always
inspect the status of your rate limit by looking at the response headers which are included in every
response:
| Header name | Description |
|---|---|
| X-RateLimit-Limit | The maximum number of requests allowed in the current time window. |
| X-RateLimit-Remaining | The number of requests remaining in the current time window. |
| X-RateLimit-Used | The number of requests you have made in the current time window. |
| X-RateLimit-Reset | The time at which the current rate limit window resets, in UTC epoch seconds. |
API keys are used to authenticate requests and authorize access to restricted operations. The API key workflow is designed to balance ease of onboarding with strong access controls.
Workflow Overview:
API keys can be used by submitting their token in the X-API-Key header.
Creates a new API key in inactive state.
The newly created API key will be in an inactive state by default and cannot be used to access protected resources until it is manually reviewed and approved by an administrator.
However, inactive keys can still be used to manage API key related operations.
You will receive a notification once the review process is complete.
The token for the API key is returned in the meta data. Make sure to save it, as it cannot
be retrieved again.
required | object |
{- "data": {
- "id": "18ONBFbUA",
- "type": "api_key",
- "attributes": {
- "organization": "John Doe Corp",
- "contact": {
- "firstName": "John",
- "lastName": "Doe",
- "title": "Software Engineer",
- "emailAddress": "user@example.com",
- "phoneNumber": "555-1212"
}, - "address": {
- "addressLineOne": "123 Main Street",
- "addressLineTwo": "Suite 1",
- "city": "Anytown",
- "state": "CA",
- "zipCode": "91234"
}, - "estimatedDeviceCount": 0
}
}
}{- "jsonapi": {
- "version": "1.1"
}, - "data": {
- "id": "18ONBFbUA",
- "type": "api_key",
- "attributes": {
- "createdAt": "2019-08-24T14:15:22Z",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "organization": "John Doe Corp",
- "contact": {
- "firstName": "John",
- "lastName": "Doe",
- "title": "Software Engineer",
- "emailAddress": "user@example.com",
- "phoneNumber": "555-1212"
}, - "address": {
- "addressLineOne": "123 Main Street",
- "addressLineTwo": "Suite 1",
- "city": "Anytown",
- "state": "CA",
- "zipCode": "91234"
}, - "estimatedDeviceCount": 0,
- "active": true
}
}, - "meta": {
- "token": "dap_3VZLxRUSsAXVXmCgFnRgxfUCvgcANf1i5zIt"
}
}Returns an API key.
You can either specify the API key ID directly in the URL or use current as ID in order to retrieve
the currently used API key.
required | API key ID (string) or Current (string) |
{- "jsonapi": {
- "version": "1.1"
}, - "data": {
- "id": "18ONBFbUA",
- "type": "api_key",
- "attributes": {
- "createdAt": "2019-08-24T14:15:22Z",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "organization": "John Doe Corp",
- "contact": {
- "firstName": "John",
- "lastName": "Doe",
- "title": "Software Engineer",
- "emailAddress": "user@example.com",
- "phoneNumber": "555-1212"
}, - "address": {
- "addressLineOne": "123 Main Street",
- "addressLineTwo": "Suite 1",
- "city": "Anytown",
- "state": "CA",
- "zipCode": "91234"
}, - "estimatedDeviceCount": 0,
- "active": true
}
}
}Rotates the secret of an API key and returns a new token.
You can either specify the API key ID directly in the URL or use current as ID in order to rotate
the currently used API key.
The old token may remain usable for a short period due to caching, but it is eventually invalidated. Token rotation is recommended as a security best practice to limit the lifespan of credentials.
All other properties of the API key remain unchanged.
required | API key ID (string) or Current (string) |
required | object |
{- "data": {
- "type": "api_key_rotation"
}
}{- "jsonapi": {
- "version": "1.1"
}, - "data": {
- "id": "18ONBFbUA",
- "type": "api_key",
- "attributes": {
- "createdAt": "2019-08-24T14:15:22Z",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "organization": "John Doe Corp",
- "contact": {
- "firstName": "John",
- "lastName": "Doe",
- "title": "Software Engineer",
- "emailAddress": "user@example.com",
- "phoneNumber": "555-1212"
}, - "address": {
- "addressLineOne": "123 Main Street",
- "addressLineTwo": "Suite 1",
- "city": "Anytown",
- "state": "CA",
- "zipCode": "91234"
}, - "estimatedDeviceCount": 0,
- "active": true
}
}, - "meta": {
- "token": "dap_3VZLxRUSsAXVXmCgFnRgxfUCvgcANf1i5zIt"
}
}Creates a new pricing report based on model queries.
Accepts one or more model queries, each specifying model attributes and devices. For each query, the system attempts to find matching models according to a prioritized matching strategy:
"exact"."approximate".not_found for that
query.For each matched model, the response provides detailed information including pricing adjusted for the number of requested devices.
The total pricing values in the response account for the requested number of devices per model query by multiplying the unit price accordingly.
The operation returns a summary including the total number of hits and misses and the aggregated total value (sum of all total prices).
| type required | string Value: "pricing_report" |
required | object |
{- "type": "pricing_report",
- "attributes": {
- "measurementSystem": "us_customary",
- "modelQueries": [
- {
- "name": "MacBook Pro 14-inch",
- "identifier": "MacBookPro18,3",
- "devices": [
- {
- "serialNumber": "C02X12345678",
- "operatingSystem": "macOS Ventura"
}
], - "partNumber": "MLVP3LL/A",
- "storageType": "SSD",
- "storageCapacity": {
- "unit": "B",
- "value": 1000000
}, - "memorySize": {
- "unit": "B",
- "value": 1000000
}, - "cpu": "M1 Pro",
- "color": "Space Gray",
- "cellular": true
}
]
}
}{- "jsonapi": {
- "version": "1.1"
}, - "data": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "pricing_report",
- "attributes": {
- "createdAt": "2019-08-24T14:15:22Z",
- "summary": {
- "totalHits": 0,
- "totalMisses": 0,
- "totalValue": 4599
}, - "models": [
- {
- "matchType": "exact",
- "identifier": "MacBookPro18,3",
- "name": "MacBook Pro 14-inch",
- "pricing": {
- "type": "explicit",
- "unitPrice": 699,
- "totalPrice": 9999
}, - "age": 0,
- "weight": {
- "value": "12.42",
- "unit": "lbs"
}, - "appleSupportClassification": "current",
- "supportedOsType": "current",
- "healthRating": "Declining Returns - Last Call"
}
]
}
}
}