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:


Please note these important details for changes between Admin API v1 and Admin API v2:

Admin API v2

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.

Info
titleImportant 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.
  • The response wrapper from Admin API v1 has been removed and objects are returned directly from their endpoint.
  • Property names which start with an underscore ("_") represents read-only properties.
  • Endpoint URLs and Schemas

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

    Status
    colourBlue
    titleGET

    Retrieves a specific application by id 

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

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

    AuthorizationStrategies

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

    Retrieves all auth strategies

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

    ClaimSets

    Expand
    titleClick to view /claimSets endpoints
    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"}
    HTTP response as documented below
    v2/claimSets/{id}
    Status
    colourBlue
    titleGET

    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}
    StatuscolourYellowtitlePUTUpdate the claim set name.
    {
    "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. Valid actions are read, create, update, delete, readchanges.
    resouceclaimId is required fields.
    {
    "resouceclaimId" : 0,
    "resourceClaimActions":
    [
    {
        "name": "string",
        "enabled": 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. Valid actions are read, create, update, delete, readchanges. 

    {   
    "resourceClaimActions": [    
      { 
        "name": "string",
        "enabled": true
      }
     ]
    }
    HTTP response as documented below
    v2/claimSets/{claimSetId}/resourceClaimActions/
    {resourceClaimId}/overrideAuthorizationStrategy
    StatuscolourGreentitlePOST

    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

    v2/claimSets/{claimSetId}/resourceClaimActions/
    {resourceClaimId}/resetAuthorizationStrategies
    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",       
    "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" ] } ] }
    HTTP response as documented below
    v2/claimSets/{id}/export

    Status
    colourBlue
    titleGET

    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

    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
    StatuscolourGreentitlePOST

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

    Deletes an ODS instance by id

    -HTTP response as documented below
    v2/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
    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 below
    v2/odsInstanceContexts/{id}

    Status
    colourBlue
    titleGET

    Retrieves a specific ODS instance  context by id

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

    Updates a specific ODS instance context by id.

    {
    "odsInstanceId": 0
    "contextKey": "string",
    "contextValue": "string"
    }
    HTTP response as documented below
    v2/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
    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}

    Status
    colourBlue
    titleGET

    Retrieves a specific ODS instance derivative by id

    -
    {
      "id": 0,
    "odsInstanceId": 0,
      "derivativeType": "string"
    }
    v2/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 below
    v2/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 /resourceClaims 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


    ...