Skip to main content

Admin API

Feature release status badge: PriPrev
PriPrev

Overview

The Admin REST API is a new API for customer organizations to administrate there DataOps.live environment. It is under active development and will be added to and improved over time.

The API endpoint is https://admin.dataops.live/api/v1 and it has browsable OpenAPI Specification (OAS 3) documentation at https://admin.dataops.live/api/v1/docs where you can try out API calls and view schemas and examples.

Authentication

You authenticate with the API via Organization API Keys. Currently, you must contact support@dataops.live to get an API key for your Organization.

When making requests, you provide your API key in the Authorization header like so:

curl -X 'GET' \
'https://admin.dataops.live/api/v1/<endpoint>' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <api-key>'

Reporting

Action Required

The reporting component of this API is opt-in. Please contact support@dataops.live to enable it for your organization. Data will only be available from the point in time of the initial opt-in.

The reporting endpoints require an Organization API Key with the reporting scope.

For the full API details, see https://admin.dataops.live/api/v1/docs#/reporting

reporting/report

The reporting/report endpoint returns user activity over a pre-defined period of time for the purpose of usage utilization. It shows the projects and the maximum access level a user has had over the given period. The data is a roll-up of daily snapshots and therefore is not suitable for security audit use-cases.

This endpoint is fully documented at https://admin.dataops.live/api/v1/docs#/reporting/reporting_api_report however, below is an example response of a reasonable comprehensive placeholder environment.

Large responses

For some of our larger organizations, the browsable API may fail to parse and display the response correctly. If this is the case, you will see Could not render _t, see the console. To try out the endpoint, you can use curl instead.

curl -X 'GET' \
'https://admin.dataops.live/api/v1/reporting/report' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <api-key>'

Example

{
"platform": {
"groups": {
"25514": { # <- Group ID
"name": "ACME Corp",
"path": "acme-corp",
"members": {
"1754": { # <- User ID
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "GUEST"
},
"1757": {
"max_access_level": "GUEST"
},
"1758": {
"max_access_level": "GUEST"
},
"1759": {
"max_access_level": "GUEST"
},
"1760": {
"max_access_level": "GUEST"
},
"1761": {
"max_access_level": "GUEST"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21906": { # <- Project ID
"name": "shared_lib",
"path": "acme-corp/shared_lib",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "GUEST"
},
"1757": {
"max_access_level": "GUEST"
},
"1758": {
"max_access_level": "GUEST"
},
"1759": {
"max_access_level": "GUEST"
},
"1760": {
"max_access_level": "GUEST"
},
"1761": {
"max_access_level": "GUEST"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
},
"subgroups": {
"25518": { # <- Group ID
"name": "product",
"path": "acme-corp/product",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "GUEST"
},
"1757": {
"max_access_level": "GUEST"
},
"1758": {
"max_access_level": "GUEST"
},
"1759": {
"max_access_level": "GUEST"
},
"1760": {
"max_access_level": "GUEST"
},
"1761": {
"max_access_level": "GUEST"
},
"1762": {
"max_access_level": "MAINTAINER"
},
"1763": {
"max_access_level": "MAINTAINER"
}
},
"projects": {
"21907": {
"name": "blog",
"path": "acme-corp/product/blog",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "GUEST"
},
"1757": {
"max_access_level": "GUEST"
},
"1758": {
"max_access_level": "GUEST"
},
"1759": {
"max_access_level": "GUEST"
},
"1760": {
"max_access_level": "GUEST"
},
"1761": {
"max_access_level": "GUEST"
},
"1762": {
"max_access_level": "MAINTAINER"
},
"1763": {
"max_access_level": "MAINTAINER"
}
}
}
}
},
"25520": {
"name": "engineering",
"path": "acme-corp/engineering",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21908": {
"name": "pip_repo",
"path": "acme-corp/engineering/pip_repo",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "OWNER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
}
},
"25521": {
"name": "platform",
"path": "acme-corp/engineering/platform",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21912": {
"name": "network",
"path": "acme-corp/engineering/platform/network",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
}
},
"25522": {
"name": "reporting",
"path": "acme-corp/engineering/reporting",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21911": {
"name": "daily",
"path": "acme-corp/engineering/reporting/daily",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
}
},
"25523": {
"name": "apps",
"path": "acme-corp/engineering/apps",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
},
"projects": {
"21909": {
"name": "alpha",
"path": "acme-corp/engineering/apps/alpha",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "MAINTAINER"
},
"1757": {
"max_access_level": "MAINTAINER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "DEVELOPER"
},
"1760": {
"max_access_level": "DEVELOPER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
},
"21910": {
"name": "beta",
"path": "acme-corp/engineering/apps/beta",
"members": {
"1754": {
"max_access_level": "OWNER"
},
"1755": {
"max_access_level": "OWNER"
},
"1756": {
"max_access_level": "DEVELOPER"
},
"1757": {
"max_access_level": "DEVELOPER"
},
"1758": {
"max_access_level": "DEVELOPER"
},
"1759": {
"max_access_level": "MAINTAINER"
},
"1760": {
"max_access_level": "MAINTAINER"
},
"1761": {
"max_access_level": "DEVELOPER"
},
"1762": {
"max_access_level": "GUEST"
},
"1763": {
"max_access_level": "GUEST"
}
}
}
}
}
}
}
}
},
"users": {
"1754": { # <- User ID
"email": "john.smith@example.com",
"name": "John Smith",
"dataops_identity_uuid": null,
"state": "active",
"username": "johnsmith01"
},
"1755": {
"email": "sarah.johnson@example.com",
"name": "Sarah Johnson",
"dataops_identity_uuid": null,
"state": "active",
"username": "sjohnson"
},
"1756": {
"email": "michael.brown@example.com",
"name": "Michael Brown",
"dataops_identity_uuid": null,
"state": "active",
"username": "mikebrown23"
},
"1757": {
"email": "emily.davis@example.com",
"name": "Emily Davis",
"dataops_identity_uuid": null,
"state": "active",
"username": "emilydavis"
},
"1758": {
"email": "robert.rodriguez@example.com",
"name": "Robert Rodriguez",
"dataops_identity_uuid": null,
"state": "active",
"username": "rrodriguez"
},
"1759": {
"email": "lisa.thompson@example.com",
"name": "Lisa Thompson",
"dataops_identity_uuid": null,
"state": "active",
"username": "lthompson"
},
"1760": {
"email": "david.lee@example.com",
"name": "David Lee",
"dataops_identity_uuid": null,
"state": "active",
"username": "davidlee"
},
"1761": {
"email": "jennifer.wilson@example.com",
"name": "Jennifer Wilson",
"dataops_identity_uuid": null,
"state": "active",
"username": "jenniferw"
},
"1762": {
"email": "william.turner@example.com",
"name": "William Turner",
"dataops_identity_uuid": null,
"state": "active",
"username": "wturner"
},
"1763": {
"email": "elizabeth.white@example.com",
"name": "Elizabeth White",
"dataops_identity_uuid": null,
"state": "active",
"username": "ewhite"
}
}
}