Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: updates for GitHub generated documentation
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:


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

Expand
titleClick to view /actions endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/actions

Status
colourBlue
titleGET

Retrieves all actions

-
[
{
  "id": 0
  "name": "string"
  "uri": "string"
  }
]

Applications

Expand
titleClick to view /applications endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/applications/

Status
colourBlue
titleGET

Retrieves all applications

-|
[
 {
"id": 0,
  "applicationName": "string",
   "vendorId": 0,
  "claimSetName": "string",
"profileIds": [],
  "educationOrganizationIds": [],
"odsInstanceId": 0
}
]
v2/applications/{id}

Status
colourBlue
titleGET

Retrieves a specific application by id 

-
{
"id": 0,
  "applicationName": "string",
 "vendorId": 0,
  "claimSetName": "string",
 "profileIds": [],
"educationOrganizationIds": [],
"odsInstanceId": 0
}
v2/applications/
StatuscolourGreentitlePOST

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}
StatuscolourYellowtitlePUT

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}
StatuscolourRedtitleDELETE

Deletes an application by id 

-
HTTP response as documented below
v2/applications/{id}/reset-credential
StatuscolourYellowtitlePUTResets an application credentials by id -
{
"id": 0,
  "key": "string",
  "secret": "string"
}

AuthStrategies

Expand
titleClick to view /authStrategies endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/authStrategies
Status
colourBlue
titleGET

Retrieves all auth strategies

-
[
{
  "authStrategyId": 0
  "authStrategyName": "string"
  "displayName": "string"
  }
]

ClaimSets

Expand
titleClick to view /claimSets endpoints
Note: Property names start with _ represents read-only properties.
Endpoint
HTTP Verb
Description
Request Schema
Response Schema (Success)
v2/claimSets
Status
colourBlue
titleGET

Retrieves all claimsets

-
[
  {
    "id": 0,
    "name": "string",
    "_isSystemReserved": true,
    "_applications": []
  }
]
v2/claimSets
StatuscolourGreentitlePOST

Creates a new claimset.

{ "name": "string"}
{
  "id": 0,
  "name": "string",
"_isSystemReserved": false,
"_applications": []
}
v2/claimSets/{id}
Status
colourBlue
titleGET

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}
StatuscolourYellowtitlePUTUpdate the claim set name.
{ 
"id": 0,
"name": "string"
}
HTTP response as documented below
v2/claimSets/{id}
StatuscolourRedtitleDELETEDeletes a claimset by id -HTTP response as documented below
v2/claimSets/{claimSetId}/resourceClaimActions
StatuscolourGreentitlePOSTAdd resourceclaimaction association to claim set. At least one action should be enabled (read, create, update, delete). 
resouceclaimId is required fields.
{
"resouceclaimId" : 0,
"resourceClaimActions":
 { 
  "read": true,
  "create": true,
  "update": true,
    "delete": true
  }   
}

HTTP response as documented below

v2/claimSets/{claimSetId}/
resourceClaimActions/{resourceClaimid}
StatuscolourYellowtitlePUT

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
v2/claimSets/{claimSetId}/resourceClaimActions/
{resourceClaimId}/overrideAuthStrategy
StatuscolourGreentitlePOST

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

v2/claimSets/{claimSetId}/resourceClaimActions/
{resourceClaimId}/resetAuthStrategies
StatuscolourGreentitlePOST

Reset to default authorization strategies on provided resource claim.

-
HTTP response as documented below
v2/claimSets/{claimSetId}/
resourceClaimActions/{resourceClaimId}
StatuscolourRedtitleDELETE

Deletes a resource claims association from a claim set

-
HTTP response as documented below
v2/claimSets/copy
StatuscolourGreentitlePOST

Copy the existing claimset and create new.

{
 "originalId": 0,
 "name": "string"
}
HTTP response as documented below
v2/claimSets/import
StatuscolourGreentitlePOST

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" ] } ] }
HTTP response as documented belowv2/claimSets/{id}/export

Status
colourBlue
titleGET

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

Expand
titleClick to view /odsInstances endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/odsInstances
Status
colourBlue
titleGET

Retrieves all ODS Instances

-
[
{
  "id": 0,
  "name": "string",
  "instanceType": "string"
  }
]
v2/odsInstances/{id}

Status
colourBlue
titleGET

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 StatuscolourGreentitlePOST

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"
}
HTTP response as documented belowv2/odsInstances/{id} StatuscolourYellowtitlePUT

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"
}HTTP response as documented belowv2/odsInstances/{id} StatuscolourRedtitleDELETE

Deletes an ODS instance by id

-HTTP response as documented belowv2/odsInstances/{id}/applications

Status
colourBlue
titleGET

Retrieves list of applications assigned to a specific ODS instance. 

-[
  {
      "id": 0,
      "applicationName": "string",
      "vendorId": 0,
      "claimSetName": "string",
      "profileIds": [],
      "educationOrganizationIds": [],
      "odsInstanceId": 0
   }
]

OdsInstanceContexts

Expand
titleClick to view /odsInstanceContexts endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/odsInstanceContexts
Status
colourBlue
titleGET

Retrieves all ODS Instance contexts

-
[
{
  "id": 0,
"odsInstanceId": 0,
  "contextKey": "string",
  "contextValue": "string"
  }
]
v2/odsInstanceContexts/{id}

Status
colourBlue
titleGET

Retrieves a specific ODS instance  context by id

-
{
  "id": 0,
"odsInstanceId": 0,
  "contextKey": "string",
  "contextValue": "string"
}
v2/odsInstanceContexts StatuscolourGreentitlePOST

Creates a new ODS instance context

All the fields are required.

ex: contextKey = "SchoolYear"

contextValue = "2023"

{    
"odsInstanceId": 0
"contextKey": "string",
"contextValue": "string"
}
HTTP response as documented belowv2/odsInstanceContexts/{id} StatuscolourYellowtitlePUT

Updates a specific ODS instance context by id.

{
"odsInstanceId": 0
"contextKey": "string",
"contextValue": "string"
}
HTTP response as documented belowv2/odsInstanceContexts/{id} StatuscolourRedtitleDELETE

Deletes an ODS instance context by id

-HTTP response as documented below

OdsInstanceDerivatives

Expand
titleClick to view /odsInstanceDerivatives endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/odsInstanceDerivatives
Status
colourBlue
titleGET

Retrieves all ODS Instance derivatives

-
[
{
  "id": 0,
"odsInstanceId": 0,
  "derivativeType": "string"
}
]
v2/odsInstanceDerivatives
/{id}

Status
colourBlue
titleGET

Retrieves a specific ODS instance derivative by id

-
{
  "id": 0,
"odsInstanceId": 0,
  "derivativeType": "string"
}
v2/odsInstanceDerivatives StatuscolourGreentitlePOST

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"
}
HTTP response as documented belowv2/odsInstanceDerivatives/{id} StatuscolourYellowtitlePUT

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"
}
HTTP response as documented belowv2/odsInstanceDerivatives/{id} StatuscolourRedtitleDELETE

Deletes an ODS instance derivative by id

-HTTP response as documented below

Profiles

Expand
titleClick to view /profiles endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/profiles

Status
colourBlue
titleGET

Retrieves all profiles

-
[
  {
  "id": 0,
  "name":string
  }
]
v2/profiles
StatuscolourGreentitlePOST

Creates a new profile

{
"name": "string",
"definition": "string"
}
HTTP response as documented below
v2/profiles/{id}

Status
colourBlue
titleGET

Retrieves a specific profile by id 

-
{
  "id": 0,
"name":string,
"definition":string
}
v2/profiles/{id}
StatuscolourYellowtitlePUT

Updates a specific profile by id

{
"name": "string",
"definition": "string"
}
HTTP response as documented below
v2/profiles/{id}
StatuscolourRedtitleDELETE

Deletes a profile by id 

-
HTTP response as documented below

ResourceClaims

Expand
titleClick to view /resource claims endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/resourceClaims

Status
colourBlue
titleGET

Retrieves all resourceclaims

-
[
{
  "id": 0
  "name": "string",
  "parentId": null,
  "parentName": "",
  "children": [
    {
  "id": 0
"name": "string",
"parentId": 0,
"parentName": "",
"children": []
}
  ]
}
]
v2/resourceClaims/{id}

Status
colourBlue
titleGET

Retrieves a specific resource claim by id 

-
 {
  "id": 0
  "name": "string",
"parentId": null,
  "parentName": "",
  "children": [
{
    "id": 0
"name": "string",
"parentId": 0,
"parentName": "",
"children": []
}
  ]
}

Vendors

Expand
titleClick to view /vendors endpoints
EndpointHTTP VerbDescriptionRequest SchemaResponse Schema (Success)
v2/vendors

Status
colourBlue
titleGET

Retrieves all vendors

-
[
  {
  "id": 0,
    "company": "string",
    "namespacePrefixes": "string",
    "contactName": "string",
    "contactEmailAddress": "string"
  }
]
v2/vendors
StatuscolourGreentitlePOST

Creates a new vendor

{
"company": "string",
"namespacePrefixes": "string",
  "contactName": "string",
  "contactEmailAddress": "string"
}
HTTP response as documented below
v2/vendors/{id}

Status
colourBlue
titleGET

Retrieves a specific vendor by id 

-
{
"id": 0,
  "company": "string",
  "namespacePrefixes": "string",
  "contactName": "string",
  "contactEmailAddress": "string"
}
v2/vendors/{id}
StatuscolourYellowtitlePUT

Updates a specific vendor by id

{
  "company": "string",
  "namespacePrefixes": "string",
  "contactName": "string",
  "contactEmailAddress": "string"
}
HTTP response as documented below
v2/vendors/{id}
StatuscolourRedtitleDELETE

Deletes a vendor by id 

-
HTTP response as documented below
v2/vendors/{id}/applications

Status
colourBlue
titleGET

Retrieves all applications associated with vendor of 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

DescriptionValid for VerbsNotes
200 SUCCESS
Request was successfulALL
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 detailsPOST, PUT
401 UNAUTHORIZED
Missing or invalid authentication tokenALL
403 FORBIDDEN
Authentication token is valid but resource is outside of authenticated scopeALL
404 NOT FOUND
Resource with given id  not foundALL
500 INTERNAL SERVER ERROR
Unexpected error on the system - See error for detailsALL


...