Testing with your own dataset
The Playground allows you to become an operator and manage your own phone numbers. While these are fake phone numbers in a playground environment, this feature enables comprehensive testing with custom data scenarios.
The Playground Admin API
The Playground provides more than just CAMARA APIs - it also includes an internal Admin API that allows you to LIST, CREATE, UPDATE, and DELETE up to 10 phoneNumber entries.
These entries let you customize the responses from CAMARA APIs for testing purposes.
This internal API is called the Playground Admin API. You can find complete documentation here.
Getting started with Admin API
Authentication for Admin API
Since the data you register in the Admin API belongs to your account, the Admin API uses production-level authentication.
You need to authenticate against the production OAuth service using the same client credentials from the Getting Started tutorial. However, this time you'll authenticate against the Orange OAuth server (not the playground endpoint).
curl -X POST --location "https://api.orange.com/oauth/v3/token" \
-H "Authorization: Basic {your client credentials}" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'grant_type=client_credentials'
You will receive a different JWT token from the one used for CAMARA APIs:
{
"token_type": "Bearer",
"access_token": "{your admin access token}",
"expires_in": 3600
}
{your admin access token} in the following examples with your actual admin token value.Create your first phone number
To create a new phoneNumber entry for your Playground, provide a phone number in international format (E.164).
International phone numbers start with + followed by a country code (e.g., 33 for France).
Any country code is allowed, including fictional ones for testing purposes.
curl -X POST --location "https://api.orange.com/camara/playground/admin/v1.0/action" \
-H "Authorization: Bearer {your admin access token}" \
-H "Content-Type: application/json" \
-d '{
"action": "CREATE",
"phoneNumber": "+33612345678"
}'
The Playground returns the complete entry created for this phone number:
{
"data": {
"location": {
"lastLocationTime": "2025-10-22T20:41:01.915Z",
"available": true,
"latitude": 48.82,
"longitude": 2.27,
"radius": 500
},
"reachability": {
"lastStatusTime": "2025-10-22T19:45:03.967Z",
"reachabilityStatus": "CONNECTED_DATA"
},
"roaming": {
"roaming": false
},
"simSwap": {
"latestSimChange": "2025-01-22T19:45:03.967Z"
},
"kyc": {
"name": "Alphonse André"
}
}
}
This data will be used by the Playground to respond to CAMARA API calls for this phone number.
Test your new entry
Let's test the newly created phone number using the Sim-Swap API from the Getting Started tutorial:
curl -X POST "https://api.orange.com/camara/playground/api/sim-swap/v1/check" \
-H "Authorization: Bearer {your access token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+33612345678",
"maxAge": 240
}'
Response:
{
"swapped": false
}
Understanding the result:
Looking at the entry data, the simSwap.latestSimChange is set to 2025-01-22T19:45:03.967Z. Since we're testing this in October 2025, this SIM change occurred more than 240 hours (10 days) ago.
The Sim-Swap API with maxAge: 240 returns:
falseif the SIM was changed more than 240 hours ago (like in our case)trueif the SIM was changed within the last 240 hours
Update your entry
Now let's simulate issuing a new SIM card for the user Alphonse André by updating the latestSimChange timestamp:
curl -X POST --location "https://api.orange.com/camara/playground/admin/v1.0/action" \
-H "Authorization: Bearer {your admin access token}" \
-H "Content-Type: application/json" \
-d '{
"action": "UPDATE",
"phoneNumber": "+33612345678",
"data": {
"simSwap": {
"latestSimChange": "2025-10-22T19:45:03.967Z"
}
}
}'
The Admin API will return the updated entry with the new timestamp.
Verify the changes
Call the Sim-Swap API again to see the updated response:
curl -X POST "https://api.orange.com/camara/playground/api/sim-swap/v1/check" \
-H "Authorization: Bearer {your access token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "+33612345678",
"maxAge": 240
}'
Response:
{
"swapped": true
}
Understanding the change:
Now the response is true because we updated the latestSimChange to 2025-10-22T19:45:03.967Z (a recent timestamp within the last 240 hours).
This indicates a recent SIM swap that might require additional security verification in a real-world scenario.
Managing your dataset
Available operations
The Admin API supports the following operations:
- CREATE: Add new phone number entries
- LIST: Retrieve all existing entries
- READ: Retrieve a specific entry
- UPDATE: Modify specific fields in existing entries
- DELETE: Remove phone number entries
Data fields you can customize
Each phone number entry includes data for different CAMARA APIs:
- location: GPS coordinates, availability status
- reachability: Connection status and timestamp
- roaming: Roaming status
- simSwap: SIM change history
- kyc: Know Your Customer data (name, etc.)
Next steps
You now have the power to create comprehensive test scenarios by managing your own phone number dataset. This enables you to:
- Test edge cases with specific data combinations
- Simulate real-world scenarios (recent SIM swaps, roaming users, etc.)
- Create reproducible test suites for your applications
Happy testing with your operator superpowers!