Quick Start
For a complete list of all possible API calls, see Definitions.
Authentication
Create an API access token from the MDM pages (see detailed documentation).
Once your token is created, you will have to set it in the header of each request to the API, as follows:
Authorization: Bearer VEOYp1qe7Z0NI3Y4fsBO9MO9QYhpvF
Throttling
API calls are rate-limited to prevent abusive usage which could degrade the performance of the service.
The mechanism limits the number of requests per client for a given time window. Beyond that limit, the API returns an HTTP error (429 Too Many Requests) until the counter is reset, at the end of the time window.
All API requests are limited to a maximum of 100 requests per minute and 1000 requests per hour per client, except for the following part:
- Exports (
/api/organizations/<id>/exports/
): 6 requests per minute per client
A client is identified as a user, an API Access Token or as its IP address if it is not authenticated.
Here is a sample response from a request that was rate-limited. The number of
seconds to wait before new requests can be sent is given in the Retry-After
header.
HTTP 429 Too Many Requests Allow: GET, POST, HEAD, OPTIONS Content-Type: application/json Retry-After: 3254 Vary: Accept { "errors": { "detail": "Request was throttled. Expected available in 3254 seconds." } }
API usage examples
Obtaining your organization ID
curl -H "Authorization: Bearer fhL62gUGza2pw0TDZLadSfBvUZj6mx" \ https://my.famoco.com/api/organizations/
{ "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "name": "My Organization", } ] }
Listing your devices
curl -H "Authorization: Bearer fhL62gUGza2pw0TDZLadSfBvUZj6mx" \ https://my.famoco.com/api/organizations/1/devices/
{ "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "famoco_id": "(01)03770004396001(21)0581", "hardware_details": { "imei": [ "010018800000010", "010018810000018" ], "wifi_mac": "00:16:58:01:00:01", "bluetooth_mac": "00:16:58:02:00:01", "model": "FX200" }, "state_details": { "battery": { "plugged": 0, "voltage": 4048, "level": 3, "status": 4 }, "ip": "127.0.0.1", "geolocation_method": "GPS", "last_sync": "2015-10-21T07:28:00.582725Z", "latitude": "38.6935973", "longitude": "-9.20571150", "maintenance_status": "In the field", "sync_status": "Synced", "os_version": "FX200_v1.0", "owner_name": "Alan Smithee", "product_model": "FX200", "system_applications": [ { "package_name": "com.famoco.launcher", "package_version_code": 1 }, { "package_name": "com.famoco.fms", "package_version_code": 2 }, { "package_name": "com.famoco.settings", "package_version_code": 3 } ] }, "device_fields": { "com.user.appone": { "field": "data" } }, "heartbeat": "OK", "create_date": "2015-10-21T07:28:00.582725Z", "update_date": "2015-10-21T07:28:00.582725Z", "settings": { "volume": 3, "dev_mode": true, "nfc": false, "bluetooth": true, "gps": true, "auto_timezone": false, "timezone": "Etc/GMT+1", "fms_sync_interval": 3600000, "screen_timeout": 60000, "locale": "en_US", "wifi": { "enabled": true, "security": "WPA/WPA2", "ssid": "MySecureNetwork", "password": "MyS3cur3Passw0rd", "sleep_policy": 2 }, "apn": { "enabled": true, "name": "myapn", "apn": "network.com", "mcc": "787", "mnc": "3737", "type": [ "default", "mms" ], "proxy": "string", "port": "8000", "user": "user", "password": "password", "server": "string", "mmsc": "string", "mmsproxy": "string", "mmsport": "8080", "authtype": 1, "protocol": "IPv4V6", "roaming_protocol": "IPv6", "bearer": 14 }, "data": { "enabled": true, "roaming": true } }, "organization": { "id": 1, "name": "My Organization" }, "profile": { "id": 1, "name": "Profile One" }, "subscriber_number": 1, "is_archived": false, "effective_profile": { "id": 1, "name": "Profile One" }, "prev_effective_profile": 2, "applications": [ 1, 2, 3 ], "applications_details": [ { "id": 1, "package_name": "com.user.appone", "package_version_code": 100, "package_version_name": "1.0.0", "label": "User Application 1", "icon": "/media/1/icon_filename_1.png", "size": 1024 }, { "id": 2, "package_name": "com.user.apptwo", "package_version_code": 200, "package_version_name": "2.0.0", "label": "User Application 2", "icon": "/media/1/icon_filename_2.png", "size": 2048 }, { "id": 3, "package_name": "com.user.famocolayer", "package_version_code": 100, "package_version_name": "1.0.0", "label": "Famoco Layer", "icon": "/media/1/icon_filename_FL.png", "size": 3072 } ], "autolaunch_application": 2, "autolaunch_application_details": { "id": 1, "package_name": "com.user.appone", "package_version_code": 100, "package_version_name": "1.0.0", "label": "User Application 1", "icon": "/media/1/icon_filename_1.png", "size": 0 } } ] }