NOTE: Dev protected to ODS Tools & Ed-Fi All Hands while in 2.x draft status
Below are the endpoints and their request and response objects for v2.0 of the Ed-Fi ODS / API Admin API.Admin API endpoints documentation is found on GitHub and available in links below:
Version | GitHub URL |
---|---|
Admin API 2.2.0 | https://github.com/Ed-Fi-Alliance-OSS/AdminAPI-2.x/tree/main/docs/api-specifications |
For the most accurate and detailed documentation of active endpoints in a version, configure and launch your application with SwaggerEnabled : true
(this is not recommended in production).
All functional endpoints require authentication to access. See Securing Admin API for details.
Endpoint URLs and Schemas
Table of Contents |
---|
Actions
title | Click to view /actions endpoints |
---|
v2/actions
GET
Retrieves all actions
[
{
"id": 0
"name": "string"
"uri": "string"
}
]
Applications
title | Click to view /applications endpoints |
---|
v2/applications/
Retrieves all applications
[
{
"id": 0,
"applicationName": "string",
"vendorId": 0,
"claimSetName": "string",
"profileIds": [],
"educationOrganizationIds": [],
"odsInstanceId": 0
}
]
v2/applications/{id}
Retrieves a specific application by id
{
"id": 0,
"applicationName": "string",
"vendorId": 0,
"claimSetName": "string",
"profileIds": [],
"educationOrganizationIds": [],
"odsInstanceId": 0
}
v2/applications/
Creates a new application
{
"applicationName": "string",
"vendorId": 0,
"claimSetName": "string",
"profileIds": [ 0 ],
"educationOrganizationIds": [ 0 ],
"odsInstanceId": 0
}
{
"id": 0,
"key": "string",
"secret": "string"
}
v2/applications/{id}
Updates a specific application by id
{
"id": 0,
"applicationName": "string",
"vendorId": 0,
"claimSetName": "string",
"profileIds": [ 0 ],
"educationOrganizationIds": [ 0 ],
"odsInstanceId": 0
}
HTTP response as documented below
v2/applications/{id}
Deletes an application by id
HTTP response as documented below
v2/applications/{id}/reset-credential
id
{
"id": 0,
"key": "string",
"secret": "string"
}
AuthStrategies
title | Click to view /authStrategies endpoints |
---|
v2/authStrategies
GET
Retrieves all auth strategies
[
{
"authStrategyId": 0
"authStrategyName": "string"
"displayName": "string"
}
]
ClaimSets
title | Click to view /claimSets endpoints |
---|
Note: Property names start with _ represents read-only properties.
Endpoint
HTTP Verb
Description
Request Schema
Response Schema (Success)
v2/claimSets
GET
Retrieves all claimsets
-
[
{
"id": 0,
"name": "string",
"_isSystemReserved": true,
"_applications": []
}
]
v2/claimSets
POST
Creates a new claimset.
{ "name": "string"}
"id": 0,
"name": "string",
"_isSystemReserved": false,
"_applications": []
}
v2/claimSets/{id}
GET
Retrieves a specific claimset by id
-
{ "id": 0, "name": "string", "_isSystemReserved": false, "_applications": [], "resourceClaims": [ {
"id": "string",
"name": "string", "read": true, "create": true, "update": true, "delete": true, "_defaultAuthStrategiesForCRUD": [ {
"actionName": string, "authStrategies": [], "isInheritedFromParent": true } ], "authStrategyOverridesForCRUD": [ {
"actionName": string,
"authStrategies": [],
"isInheritedFromParent": true } ], "children": [ "list of resource claims" ] } ] }
v2/claimSets/{id}
PUT
{
"id": 0,
"name": "string"
}
HTTP response as documented below
v2/claimSets/{id}
id
v2/claimSets/{claimSetId}/resourceClaimActions
resouceclaimId is required fields.
{
"resouceclaimId" : 0,
"resourceClaimActions":
{
"read": true,
"create": true,
"update": true,
"delete": true
}
}
HTTP response as documented below
resourceClaimActions/{resourceClaimid}
PUT
Updates the resourceclaimActions to a specific resource claim on a claimset. At least one action should be enabled (read, create, update, delete).
{
"resourceClaimActions":
{
"read": true,
"create": true,
"update": true,
"delete": true
}
}
HTTP response as documented below
{resourceClaimId}/overrideAuthStrategy
POST
Override the default authorization strategies on provided resource claim for a specific action.
ex: actionName = read, authStrategies= [ "Ownershipbased" ]
{
"actionName": string,
"authStrategies: []
}
HTTP response as documented below
{resourceClaimId}/resetAuthStrategies
POST
Reset to default authorization strategies on provided resource claim.
-
v2/claimSets/{claimSetId}/
resourceClaimActions/{resourceClaimId}
DELETE
Deletes a resource claims association from a claim set
-
v2/claimSets/copy
POST
Copy the existing claimset and create new.
{
"originalId": 0,
"name": "string"
}
v2/claimSets/import
Import new claimset
{ "name": "string", "resourceClaims": [ { "name": "string", "read": true, "create": true, "update": true, "delete": true, "authStrategyOverridesForCRUD": [ {
"actionName": string, "authStrategies": [] } ], "children": [ "list of resource claims" ] } ] }
Retrieves a specific claimset by id
"id": 0,
"name": "string",
"_isSystemReserved": false,
"_applications": [],
"resourceClaims": [
{
"id": "string",
"name": "string",
"read": true,
"create": true,
"update": true,
"delete": true,
"_defaultAuthStrategiesForCRUD": [
{
"actionName": string,
"authStrategies": [],
"isInheritedFromParent": true
}
],
"authStrategyOverridesForCRUD": [
{
"actionName": string,
"authStrategies": [],
"isInheritedFromParent": true
}
],
"children": [
"list of resource claims"
]
}
]
}
OdsInstances
title | Click to view /odsInstances endpoints |
---|
v2/odsInstances
GET
Retrieves all ODS Instances
[
{
"id": 0,
"name": "string",
"instanceType": "string"
}
]
Retrieves a specific ODS instance by id
{
"id": 0,
"name": "string",
"instanceType": "string",
"odsInstanceContexts": [
{
"id": 0,
"odsInstanceId": 0,
"contextKey": "string",
"contextValue": "string"
}],
"odsInstanceDerivatives": [
{
"id": 0,
"odsInstanceId": 0,
"derivativeType": "string"
}]
}
Creates a new ODS instance.
Note: Will validate the connection string to be proper format.
All the fields are required.
{
"name": "string"
"instanceType": "string",
"connectionString": "string"
}
Updates a specific ODS instance by id.
Note: Will validate the connection string to be proper format.
On update the connection string is optional.
If user is not intending to update the connection string value as part of update, then empty value will be passed. So that the existing connection string will be retained as plain text or encrypted value.
"name": "string"
"instanceType": "string",
"connectionString": "string"
}
Deletes an ODS instance by id
Retrieves list of applications assigned to a specific ODS instance.
{
"id": 0,
"applicationName": "string",
"vendorId": 0,
"claimSetName": "string",
"profileIds": [],
"educationOrganizationIds": [],
"odsInstanceId": 0
}
]
OdsInstanceContexts
title | Click to view /odsInstanceContexts endpoints |
---|
v2/odsInstanceContexts
GET
Retrieves all ODS Instance contexts
[
{
"id": 0,
"odsInstanceId": 0,
"contextKey": "string",
"contextValue": "string"
}
]
Retrieves a specific ODS instance context by id
{
"id": 0,
"odsInstanceId": 0,
"contextKey": "string",
"contextValue": "string"
}
Creates a new ODS instance context
All the fields are required.
ex: contextKey = "SchoolYear"
contextValue = "2023"
{
"odsInstanceId": 0
"contextKey": "string",
"contextValue": "string"
}
Updates a specific ODS instance context by id.
{
"odsInstanceId": 0
"contextKey": "string",
"contextValue": "string"
}
Deletes an ODS instance context by id
OdsInstanceDerivatives
title | Click to view /odsInstanceDerivatives endpoints |
---|
v2/odsInstanceDerivatives
GET
Retrieves all ODS Instance derivatives
[
{
"id": 0,
"odsInstanceId": 0,
"derivativeType": "string"
}
]
/{id}
Retrieves a specific ODS instance derivative by id
{
"id": 0,
"odsInstanceId": 0,
"derivativeType": "string"
}
Creates a new ODS instance derivative
All the fields are required.
Note: Will validate the connection string to be proper format.
Derivative types would be "ReadReplica" or "Snapshot"
{
"odsInstanceId": 0
"derivativeType": "string",
"connectionString": "string"
}
Updates a specific ODS instance derivative by id.
Note: Will validate the connection string to be proper format.
On update the connection string is optional.
If user is not intending to update the connection string value as part of update, then empty value will be passed. So that the existing connection string will be retained as plain text or encrypted value.
Derivative types would be "ReadReplica" or "Snapshot"
{
"odsInstanceId": 0
"derivativeType": "string",
"connectionString": "string"
}
Deletes an ODS instance derivative by id
Profiles
title | Click to view /profiles endpoints |
---|
v2/profiles
Retrieves all profiles
[
{
"id": 0,
"name":string
}
]
v2/profiles
Creates a new profile
{
"name": "string",
"definition": "string"
}
HTTP response as documented below
v2/profiles/{id}
Retrieves a specific profile by id
{
"id": 0,
"name":string,
"definition":string
}
v2/profiles/{id}
Updates a specific profile by id
{
"name": "string",
"definition": "string"
}
HTTP response as documented below
v2/profiles/{id}
Deletes a profile by id
HTTP response as documented below
ResourceClaims
title | Click to view /resource claims endpoints |
---|
v2/resourceClaims
Retrieves all resourceclaims
[
{
"id": 0
"name": "string",
"parentId": null,
"parentName": "",
"children": [
{
"id": 0
"name": "string",
"parentId": 0,
"parentName": "",
"children": []
}
]
}
]
v2/resourceClaims/{id}
Retrieves a specific resource claim by id
{
"id": 0
"name": "string",
"parentId": null,
"parentName": "",
"children": [
{
"id": 0
"name": "string",
"parentId": 0,
"parentName": "",
"children": []
}
]
}
Vendors
title | Click to view /vendors endpoints |
---|
v2/vendors
Retrieves all vendors
[
{
"id": 0,
"company": "string",
"namespacePrefixes": "string",
"contactName": "string",
"contactEmailAddress": "string"
}
]
v2/vendors
Creates a new vendor
{
"company": "string",
"namespacePrefixes": "string",
"contactName": "string",
"contactEmailAddress": "string"
}
HTTP response as documented below
v2/vendors/{id}
Retrieves a specific vendor by id
{
"id": 0,
"company": "string",
"namespacePrefixes": "string",
"contactName": "string",
"contactEmailAddress": "string"
}
v2/vendors/{id}
Updates a specific vendor by id
{
"company": "string",
"namespacePrefixes": "string",
"contactName": "string",
"contactEmailAddress": "string"
}
HTTP response as documented below
v2/vendors/{id}
Deletes a vendor by id
HTTP response as documented below
v2/vendors/{id}/applications
id
{
"id": 0,
"applicationName": "string",
"vendorId": 0,
"claimSetName": "string",
"profileIds": [],
"educationOrganizationIds": [],
"odsInstanceId": 0
}
]
The documentation can be found at https://{mydomain}/swagger/v2/swagger.json and the UI found at https://{mydomain}/adminapi/swagger/index.html.
All functional endpoints require authentication to access. See Securing Admin API for details.
Common Responses
Response Code | Description | Valid for Verbs | Notes |
---|---|---|---|
200 SUCCESS | Request was successful | ALL | |
201 CREATED | Resource was created successfully | POST | Response will also include a location header which directs to the new resource |
400 BAD REQUEST | Invalid request payload - See errors for details | POST, PUT | |
401 UNAUTHORIZED | Missing or invalid authentication token | ALL | |
403 FORBIDDEN | Authentication token is valid but resource is outside of authenticated scope | ALL | |
404 NOT FOUND | Resource with given id not found | ALL | |
500 INTERNAL SERVER ERROR | Unexpected error on the system - See error for details | ALL |
...