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 |
Please note these important details for changes between Admin API v1 and Admin API v2:
Admin API v2For 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.
title | Important Information for Admin API v2.0 |
---|
.
x is only compatible with the ODS/API 7.x line of products.For ODS/API 3.4-6.1 support with Admin API, please see the Admin API v1 line.
Endpoint URLs and Schemas
Actions
title | Click to view /actions endpoints |
---|
v2/actions
Status | ||||
---|---|---|---|---|
|
Retrieves all actions
[
{
"id": 0
"name": "string"
"uri": "string"
}
]
Applications
title | Click to view /applications endpoints |
---|
v2/applications
Status | ||||
---|---|---|---|---|
|
Retrieves all applications
[
{
"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}
Status | ||||
---|---|---|---|---|
|
Retrieves a specific application by id
{
"id": 0,
"applicationName": "string",
"vendorId": 0,
"claimSetName": "string",
"profileIds": [],
"educationOrganizationIds": [],
"odsInstanceId": 0
}
v2/applications/{id}
Updates a specific application by id
{
"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"
}
AuthorizationStrategies
title | Click to view /authorizationStrategies endpoints |
---|
v2/authorizationStrategies
Status | ||||
---|---|---|---|---|
|
Retrieves all auth strategies
[
{
"id": 0
"name": "string"
"displayName": "string"
}
]
ClaimSets
title | Click to view /claimSets endpoints |
---|
Endpoint
HTTP Verb
Description
Request Schema
Response Schema (Success)
v2/claimSets
Status | ||||
---|---|---|---|---|
|
Retrieves all claimsets
-
[
{
"id": 0,
"name": "string",
"_isSystemReserved": true,
"_applications": []
}
]
v2/claimSets
Creates a new claimset.
{ "name": "string"}
HTTP response as documented below
v2/claimSets/{id}
Status | ||||
---|---|---|---|---|
|
Retrieves a specific claimset by id
-
{ "id": 0, "name": "string", "_isSystemReserved": false, "_applications": [], "resourceClaims": [ {
"id": "string",
"name": "string",
"actions": [
{
"name": "string",
"enabled": true
}
], "_defaultAuthorizationStrategies": [ {
"actionId": 0,
"actionName": string, "authorizationStrategies": [
{
"authStrategyId: 0,
"authStrategyName": "string",
"isInheritedFromParent": true
}] } ], "authorizationStrategyOverridesForCRUD": [ {
"actionId": 0,
"actionName": string,
"authorizationStrategies": [
{
"authStrategyId: 0,
"authStrategyName": "string",
"isInheritedFromParent": true
}] } ], "children": [ "list of resource claims" ] } ] }
v2/claimSets/{id}
{
"name": "string"
}
HTTP response as documented below
v2/claimSets/{id}
id
v2/claimSets/{claimSetId}/resourceClaimActions
resouceclaimId is required fields.
{
"resouceclaimId" : 0,
"resourceClaimActions":
[
{
"name": "string",
"enabled": true
}
]
}
HTTP response as documented below
resourceClaimActions/{resourceClaimId}
Updates the resourceclaimActions to a specific resource claim on a claimset. At least one action should be enabled. Valid actions are read, create, update, delete, readchanges.
{
"resourceClaimActions": [
{
"name": "string",
"enabled": true
}
]
}
HTTP response as documented below
{resourceClaimId}/overrideAuthorizationStrategy
Override the default authorization strategies on provided resource claim for a specific action.
ex: actionName = read, authorizationStrategies= [ "Ownershipbased" ]
{
"actionName": string,
"authorizationStrategies: []
}
HTTP response as documented below
{resourceClaimId}/resetAuthorizationStrategies
Reset to default authorization strategies on provided resource claim.
-
v2/claimSets/{claimSetId}/
resourceClaimActions/{resourceClaimId}
Deletes a resource claims association from a claim set
-
v2/claimSets/copy
Copy the existing claimset and create new.
{
"originalId": 0,
"name": "string"
}
v2/claimSets/import
Import new claimset
{ "name": "string", "resourceClaims": [ { "name": "string",
"actions": [
{
"name": "read",
"enabled": true
},
{
"name": "create",
"enabled": true
},
{
"name": "update",
"enabled": true
},
{
"name": "delete",
"enabled": true
},
{
"name": "readChanges",
"enabled": true
}
],
"authorizationStrategyOverridesForCRUD": [ {
"actionName": string, "authorizationStrategies": [] } ], "children": [ "list of resource claims" ] } ] }
v2/claimSets/{id}/export
Status | ||||
---|---|---|---|---|
|
Retrieves a specific claimset by id
{
"id": 0,
"name": "string",
"_isSystemReserved": false,
"_applications": [],
"resourceClaims": [
{
"id": "string",
"name": "string",
"actions": [
{
"name": "read",
"enabled": true
},
{
"name": "create",
"enabled": true
},
{
"name": "update",
"enabled": true
},
{
"name": "delete",
"enabled": true
},
{
"name": "readChanges",
"enabled": true
}
],
"_defaultAuthorizationStrategiesForCRUD": [
{
"actionId": 0,
"actionName": string,
"authorizationStrategies": [
{
"authStrategyId: 0,
"authStrategyName": "string",
"isInheritedFromParent": true
}]
}
],
"authorizationStrategyOverridesForCRUD": [
{
"actionId": 0,
"actionName": string,
"authorizationStrategies": [
{
"authStrategyId: 0,
"authStrategyName": "string",
"isInheritedFromParent": true
}]
}
],
"children": [
"list of resource claims"
]
}
]
}
OdsInstances
title | Click to view /odsInstances endpoints |
---|
v2/odsInstances
Status | ||||
---|---|---|---|---|
|
Retrieves all ODS Instances
[
{
"id": 0,
"name": "string",
"instanceType": "string"
}
]
v2/odsInstances
Creates a new ODS instance.
Note: Will validate the connection string to be proper format.
Only 'name' and 'connectionString' are required fields.
instanceType is used to, for example, document the database segmentation strategy being used. It is not restricted to a set of possible values.
{
"name": "string"
"instanceType": "string",
"connectionString": "string"
}
v2/odsInstances/{id}
Status | ||||
---|---|---|---|---|
|
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"
}]
}
v2/odsInstances/{id}
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"
}
v2/odsInstances/{id}
Deletes an ODS instance by id
v2/odsInstances/{id}/applications
Status | ||||
---|---|---|---|---|
|
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
Status | ||||
---|---|---|---|---|
|
Retrieves all ODS Instance contexts
[
{
"id": 0,
"odsInstanceId": 0,
"contextKey": "string",
"contextValue": "string"
}
]
v2/odsInstanceContexts
Creates a new ODS instance context
All the fields are required.
ex: contextKey = "SchoolYear"
contextValue = "2023"
{
"odsInstanceId": 0
"contextKey": "string",
"contextValue": "string"
}
v2/odsInstanceContexts/{id}
Status | ||||
---|---|---|---|---|
|
Retrieves a specific ODS instance context by id
{
"id": 0,
"odsInstanceId": 0,
"contextKey": "string",
"contextValue": "string"
}
v2/odsInstanceContexts/{id}
Updates a specific ODS instance context by id.
{
"odsInstanceId": 0
"contextKey": "string",
"contextValue": "string"
}
v2/odsInstanceContexts/{id}
Deletes an ODS instance context by id
OdsInstanceDerivatives
title | Click to view /odsInstanceDerivatives endpoints |
---|
v2/odsInstanceDerivatives
Status | ||||
---|---|---|---|---|
|
Retrieves all ODS Instance derivatives
[
{
"id": 0,
"odsInstanceId": 0,
"derivativeType": "string"
}
]
v2/odsInstanceDerivatives
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"
}
/{id}
Status | ||||
---|---|---|---|---|
|
Retrieves a specific ODS instance derivative by id
{
"id": 0,
"odsInstanceId": 0,
"derivativeType": "string"
}
v2/odsInstanceDerivatives/{id}
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"
}
v2/odsInstanceDerivatives/{id}
Deletes an ODS instance derivative by id
Profiles
title | Click to view /profiles endpoints |
---|
v2/profiles
Status | ||||
---|---|---|---|---|
|
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}
Status | ||||
---|---|---|---|---|
|
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 /resourceClaims endpoints |
---|
v2/resourceClaims
Status | ||||
---|---|---|---|---|
|
Retrieves all resourceclaims
[
{
"id": 0
"name": "string",
"parentId": null,
"parentName": "",
"children": [
{
"id": 0
"name": "string",
"parentId": 0,
"parentName": "",
"children": []
}
]
}
]
v2/resourceClaims/{id}
Status | ||||
---|---|---|---|---|
|
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
Status | ||||
---|---|---|---|---|
|
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}
Status | ||||
---|---|---|---|---|
|
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
Status | ||||
---|---|---|---|---|
|
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 |
...