Core Information API resources --> please check the API reference tab
Table of Contents
Prerequisite before starting
- For this "Getting started", we will use the command-line tool Curl.
- The API requires also the generation of an API-Key
- Your Orange Business Services representative will provide you this API key
- The API key must be added to HTTP headers of each API call.
- The header is
X-Api-Key
. - The API requires also the generation of an API-Key. API-Key expires after 2 years and must be renewed by asking to Orange Support.
Authentication prerequisite
Access to this API is secured by the OAuth 2.0 framework with the Client Credentials grant type, which means that you will have to present an OAuth 2.0 access_token
whenever you want to request this API.
It's easy to negotiate this access_token
: just send a request to the proper token negotiation endpoint, with a Basic Authentication header valued with your own client_id
and client_secret
.
For this API, the token negotiation endpoint is:
https://api.orange.com/oauth/v3/token
A technical guide is available to learn how to negotiate and manage these access_token
.
A guide for oAuth 2.0 authentication method is also available in "Getting started" with Postman document.
Get all my configurationItems/servicePoint
List all my CIs without filter, sort or paging
Request
- Method & URL :
GET
,https://api.orange.com/core-information/b2b/v2/configurationItems
- Authorization : OAuth 2.0 authentication to get the access token (see "Prerequisite before starting" section)
- Header : add
x-api-key
=> Value provided by your administrator
curl -X GET \
-H "Authorization: {access_token}" \
-H "X-API-key: {dev_key}" \
https://api.orange.com/core-information/b2b/v2/configurationItems
Response
Header
you will receive 3 specific headers:
HTTP/1.1 200 OK
for a successful answerX-Result-Count
, the number of CIsX-Total-Count
, the number of all CIs matching criteria.
HTTP/1.1 200 OK
X-Result-Count: 106
X-Total-Count: 25
Body
List of CIs in a json format
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
[
{
"id": "10-CD0F04H15C",
"reference": "0024941381",
"type": "ROUTER",
"category": "DEVICE",
"state": "OPERATIONAL",
"customer": {
"id": "33-01257052",
"name": "BULLES'O"
},
"location": {
"id": "3-1613231",
"name": "Test",
...
]
Filter the CIs list
You have the possibility to filter a collection by adding to the URI some attributes.
Example to retrieve all the routers located in France
Request
- Add the following parameters to the URL :
type=ROUTER&location.address.country=FR
.
curl -X GET \
-H "Authorization: {access_token}" \
-H "X-API-key: {dev_key}" \
https://api.orange.com/core-information/b2b/v2/configurationItems?type=ROUTERlocation.address.country=FR
Response
- List of your filtered CIs in a json format
Pagination of the CIs list
The API provides a pagination mechanism with the following query parameters
offset
: The index of the first element to retrieve. Zero is the first item of the collection.limit
: The maximum number of items to return.sort
: The comma-separated list of field names to sort the result. Prefixing a field name with a "-" sign will indicate a descending order.
Thanks to these 3 query parameters, you are able to retrieve CIs page per page.
Example: to get the next 20 CIs from the 10th CI of the global list and ordered by the priority:
Request
- Add the following parameters to the URL :
offset=10&limit=20&sort=-createdAt
.
curl -X GET \
-H "Authorization: {access_token}" \
-H "X-API-key: {dev_key}" \
https://api.orange.com/core-information/b2b/v2/configurationItems?offset=10&limit=20&sort=-createdAt
Response
- List of 20 CIs in a json format
Get details of a CI
With the Core Information for Business API, you are able to retrieve all information about a specific CI.
You only need the id of the CI (you can retreive it from the CIs list).
Request
- Add the the id of the CI (you can retreive it from the CIslist) to the URL :
/{CI_id}
.
curl -X GET \
-H "Authorization: {access_token}" \
-H "X-API-key: {dev_key}" \
https://api.orange.com/core-information/b2b/v2/configurationItems/{CI_id}
Response
- Your CI in a json format
Error handling
Orange APIs use appropriate HTTP status codes to indicate any request processing error. For more details, see Handling API errors.
Location contact update
It is possible to update the location contact using PATCH /locations/{location id}
This method consider contacts object as an entire object value, it means, that when you update the object, everything will updated.
Here some examples: Supposed a location have the primary and secondary defined
...
"contacts": {
"primary": {
"title": "Mr",
"firstName": "",
"lastName": "DOE",
"phone": "0102030405",
"email": "jonh.doe@nobody.com",
"mobile": ""
},
"secondary": {
"title": "Mr",
"firstName": "",
"lastName": "DUCK",
"phone": "0602030405",
"email": "donald.duck@nobody.com",
"mobile": ""
}
}
...
If you want to change the firstName of the primary contact, you need to send all the detail of the current contacts in the body:
curl -X PATCH https://api.orange.com/core-information/b2b/v2/locations/{Location_id}\
-H "Authorization: {access_token}" \
-H "X-API-key: {dev_key}" \
-d '{"contacts": {"primary": {"title": "Mr", "firstName": "JOHN", "lastName": "DOE", "phone": "0102030405", "email": "jonh.doe@nobody.com" }, "secondary": { "title": "Mr", "firstName": "", "lastName": "DUCK", "phone": "0602030405", "email": "donald.duck@nobody.com" } } }'
The contacts will updated :
{
"contacts": {
"primary": {
"title": "Mr",
"firstName": "JOHN",
"lastName": "DOE",
"phone": "0102030405",
"email": "jonh.doe@nobody.com",
"mobile": ""
},
"secondary": {
"title": "Mr",
"firstName": "",
"lastName": "DUCK",
"phone": "0602030405",
"email": "donald.duck@nobody.com",
"mobile": ""
}
}
}
If you want to remove the secondary contact, you need to send all the detail of the primary contacts in the body and not the secondary:
curl -X PATCH https://api.orange.com/core-information/b2b/v2/locations/{Location_id}\
-H "Authorization: {access_token}" \
-H "X-API-key: {dev_key}" \
-d '{"contacts": {"primary": {"title": "Mr", "firstName": "JOHN", "lastName": "DOE", "phone": "0102030405", "email": "jonh.doe@nobody.com" } } }'
The secondary contacts will removed :
{
"contacts": {
"primary": {
"title": "Mr",
"firstName": "JOHN",
"lastName": "DOE",
"phone": "0102030405",
"email": "jonh.doe@nobody.com",
"mobile": ""
},
"secondary": {}
}
}