University of Waikato Identity Provider (uowidp)

The university's own OpenID Connect 1.0 provider, on its own API gateway at api.svc.waikato.ac.nz/uowidp/v1. Verified live 2026-09-01: the discovery document returns HTTP 200 declaring issuer https://api.svc.waikato.ac.nz/uowidp/v1, authorization, token, logout and JWKS endpoints, scopes_supported [openid, profile, email], response types [code, id_token, code id_token], RS256 id_token signing and client_secret_post client authentication; the JWKS returns a live RSA signing key. It is a real institution surface with real consumers — the ITS-built Blazor timetable declares client_id timetable-prod in its own appsettings.json, and my.waikato.ac.nz (SITS:Vision) redirects here with client_id SITS-Prod. The provider fronts the university's Microsoft Entra ID tenant: userinfo_endpoint is graph.microsoft.com/v1.0/me and the claim set carries Entra's oid and ver. Client registration is closed — no registration_endpoint, no dynamic client registration, no documentation page. This is the one machine-readable contract on this estate that the institution both operates and publishes.

Operations 6

GET /.well-known/openid-configuration OpenID Provider metadata #
GET /oidc/keys JSON Web Key Set #
GET /auth Authorization endpoint #
POST /token Token endpoint #
GET /logout End-session endpoint #
GET /login Sign-in interface #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/uowidp"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-waikato-uowidp-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: University of Waikato Identity Provider (uowidp)
  version: v1
  summary: OpenID Connect provider operated by the University of Waikato on its own API gateway.
  description: >-
    OpenID Connect 1.0 provider operated by the University of Waikato (Te Whare Wananga o Waikato)
    at https://api.svc.waikato.ac.nz/uowidp/v1. Every path, parameter and supported value in this
    document is transcribed from the institution's OWN published discovery document at
    /uowidp/v1/.well-known/openid-configuration, fetched live 2026-09-01 (HTTP 200), and from its
    live JWKS at /uowidp/v1/oidc/keys (HTTP 200). Nothing here is inferred from the OpenID Connect
    specification beyond what that document declares.

    This is a University of Waikato surface, not a vendor's: the issuer, the authorization,
    token, logout and JWKS endpoints are all on the institution's own registrable domain, and the
    provider is consumed by the institution's own applications — the ITS-built Blazor timetable
    (client_id `timetable-prod`, declared in https://timetable.waikato.ac.nz/appsettings.json)
    and the MyWaikato SITS:Vision student portal (client_id `SITS-Prod`, observed in the live
    authorization redirect from https://my.waikato.ac.nz). The `userinfo_endpoint` the discovery
    document advertises is https://graph.microsoft.com/v1.0/me and the claim set (`oid`, `ver`)
    is Microsoft Entra ID's, so the provider fronts the university's Entra ID tenant
    (220f5dc3-9452-48e5-9b4f-888df42f7a2d) rather than holding its own user store.

    Client registration is not open. There is no self-serve developer programme, no published
    client-registration endpoint and no documentation page; the endpoints below are discoverable
    and callable, but obtaining a client_id requires an arrangement with University of Waikato
    ITS. Recorded here because a published, machine-readable discovery document IS a contract,
    and it is one of the few this institution operates itself.
  contact:
    name: University of Waikato ITS
    url: https://www.waikato.ac.nz/students/it-services/
    email: help@waikato.ac.nz
  termsOfService: https://www.waikato.ac.nz/copyright-and-disclaimer/
  license:
    name: No licence published for this interface
    identifier: NOASSERTION
  x-operator: institution
  x-provenance:
    generated: '2026-09-01'
    method: derived
    source: https://api.svc.waikato.ac.nz/uowidp/v1/.well-known/openid-configuration
    note: >-
      Derived by API Evangelist from the institution's own live OIDC discovery document and JWKS.
      The University of Waikato does not publish an OpenAPI for this service; this document is not
      theirs and must not be credited to them as a published specification.
servers:
- url: https://api.svc.waikato.ac.nz/uowidp/v1
  description: Production issuer, declared as `issuer` in the discovery document.
externalDocs:
  description: Live OpenID Provider discovery document
  url: https://api.svc.waikato.ac.nz/uowidp/v1/.well-known/openid-configuration
tags:
- name: Discovery
  description: OpenID Provider metadata and signing keys.
- name: Authentication
  description: Authorization Code and hybrid flows against the university identity provider.
- name: Session
  description: Front-channel session termination.
paths:
  /.well-known/openid-configuration:
    get:
      tags: [Discovery]
      operationId: getOpenIdConfiguration
      summary: OpenID Provider metadata
      description: >-
        Returns the OpenID Connect Discovery 1.0 metadata document for the University of Waikato
        identity provider. Verified live 2026-09-01, HTTP 200, 868 bytes, application/json.
      security: []
      responses:
        '200':
          description: Provider metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenIdProviderMetadata'
              examples:
                live:
                  summary: Response captured 2026-09-01
                  externalValue: ../examples/university-of-waikato-uowidp-discovery-example.json
  /oidc/keys:
    get:
      tags: [Discovery]
      operationId: getJwks
      summary: JSON Web Key Set
      description: >-
        Returns the RSA signing keys used to verify id_tokens issued by this provider. Declared as
        `jwks_uri` in the discovery document. Verified live 2026-09-01, HTTP 200, 2871 bytes.
      security: []
      responses:
        '200':
          description: JSON Web Key Set.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JsonWebKeySet'
  /auth:
    get:
      tags: [Authentication]
      operationId: authorize
      summary: Authorization endpoint
      description: >-
        OpenID Connect authorization endpoint. Declared as `authorization_endpoint`. Called with a
        registered `client_id`; observed live in production redirects from my.waikato.ac.nz
        (client_id `SITS-Prod`) and configured for timetable.waikato.ac.nz (`timetable-prod`).
        Probed without parameters on 2026-09-01 and returned HTTP 401 — the endpoint is live and
        rejects unregistered/unparameterised callers.
      security: []
      parameters:
      - name: response_type
        in: query
        required: true
        description: One of the values in `response_types_supported`.
        schema:
          type: string
          enum: [code, id_token, code id_token]
      - name: client_id
        in: query
        required: true
        description: Client identifier issued by University of Waikato ITS. Not self-serve.
        schema: {type: string}
      - name: redirect_uri
        in: query
        required: true
        schema: {type: string, format: uri}
      - name: scope
        in: query
        required: true
        description: Space-delimited; values from `scopes_supported`.
        schema:
          type: string
          examples: ['openid', 'openid profile email']
      - name: state
        in: query
        required: false
        schema: {type: string}
      - name: nonce
        in: query
        required: false
        schema: {type: string}
      - name: response_mode
        in: query
        required: false
        schema:
          type: string
          enum: [query, fragment, form_post]
      responses:
        '302':
          description: Redirect to the university sign-in interface, or back to `redirect_uri` with a code.
          headers:
            Location:
              schema: {type: string, format: uri}
        '401':
          description: Unauthenticated or unrecognised client.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
  /token:
    post:
      tags: [Authentication]
      operationId: exchangeToken
      summary: Token endpoint
      description: >-
        Exchanges an authorization code for an id_token. Declared as `token_endpoint`.
        `token_endpoint_auth_methods_supported` is `["client_secret_post"]`, so client credentials
        are sent in the form body, not the Authorization header. id_tokens are signed RS256.
        A GET probe on 2026-09-01 returned HTTP 404 from the gateway — the endpoint accepts POST only.
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenRequest'
      responses:
        '200':
          description: Token response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
        '400':
          description: Invalid grant or malformed request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayError'
  /logout:
    get:
      tags: [Session]
      operationId: endSession
      summary: End-session endpoint
      description: >-
        Front-channel logout. Declared as `end_session_endpoint`;
        `frontchannel_logout_supported` is true and `http_logout_supported` is false. Verified
        live 2026-09-01, HTTP 302.
      security: []
      parameters:
      - name: post_logout_redirect_uri
        in: query
        required: false
        schema: {type: string, format: uri}
      - name: id_token_hint
        in: query
        required: false
        schema: {type: string}
      responses:
        '302':
          description: Redirect after session termination.
  /login:
    get:
      tags: [Authentication]
      operationId: getLoginInterface
      summary: Sign-in interface
      description: >-
        Serves the University of Waikato sign-in interface. Verified live 2026-09-01, HTTP 200;
        reached in production as the target of an authorization request from my.waikato.ac.nz.
        Not declared in the discovery document — recorded from live observation.
      security: []
      responses:
        '200':
          description: HTML sign-in page.
          content:
            text/html: {}
components:
  securitySchemes:
    uowidp:
      type: openIdConnect
      openIdConnectUrl: https://api.svc.waikato.ac.nz/uowidp/v1/.well-known/openid-configuration
      description: >-
        OpenID Connect against the University of Waikato identity provider. Clients are registered
        by University of Waikato ITS; there is no dynamic client registration endpoint in the
        discovery document.
  schemas:
    OpenIdProviderMetadata:
      type: object
      description: OpenID Connect Discovery 1.0 metadata as published by this provider.
      required: [issuer, authorization_endpoint, token_endpoint, jwks_uri]
      properties:
        issuer: {type: string, format: uri, const: https://api.svc.waikato.ac.nz/uowidp/v1}
        authorization_endpoint: {type: string, format: uri}
        token_endpoint: {type: string, format: uri}
        end_session_endpoint: {type: string, format: uri}
        jwks_uri: {type: string, format: uri}
        userinfo_endpoint:
          type: string
          format: uri
          description: >-
            Advertised as https://graph.microsoft.com/v1.0/me — Microsoft Graph, not a University
            of Waikato host. Userinfo is served by the university's Entra ID tenant.
        scopes_supported:
          type: array
          items: {type: string, enum: [openid, profile, email]}
        response_types_supported:
          type: array
          items: {type: string, enum: [code, id_token, code id_token]}
        response_modes_supported:
          type: array
          items: {type: string, enum: [query, fragment, form_post]}
        id_token_signing_alg_values_supported:
          type: array
          items: {type: string, enum: [RS256]}
        token_endpoint_auth_methods_supported:
          type: array
          items: {type: string, enum: [client_secret_post]}
        claims_supported:
          type: array
          items: {type: string, enum: [iss, aud, nbf, exp, iat, nonce, Username, name, ver, oid, sub]}
        request_uri_parameter_supported: {type: boolean, const: false}
        http_logout_supported: {type: boolean, const: false}
        frontchannel_logout_supported: {type: boolean, const: true}
    JsonWebKeySet:
      type: object
      required: [keys]
      properties:
        keys:
          type: array
          items:
            type: object
            required: [kty, use, kid, e, n]
            properties:
              kty: {type: string, const: RSA}
              use: {type: string, const: sig}
              kid: {type: string}
              e: {type: string}
              n: {type: string}
    TokenRequest:
      type: object
      required: [grant_type, code, redirect_uri, client_id, client_secret]
      properties:
        grant_type: {type: string, const: authorization_code}
        code: {type: string}
        redirect_uri: {type: string, format: uri}
        client_id: {type: string}
        client_secret:
          type: string
          description: Sent in the body — `token_endpoint_auth_methods_supported` is client_secret_post.
    TokenResponse:
      type: object
      properties:
        id_token: {type: string, description: RS256-signed JWT.}
        token_type: {type: string}
        expires_in: {type: integer}
    GatewayError:
      type: object
      description: >-
        Error envelope returned by the api.svc.waikato.ac.nz gateway. Captured live 2026-09-01
        from an unrouted path.
      required: [statusCode, message]
      properties:
        statusCode: {type: integer, examples: [404]}
        message: {type: string, examples: ['Resource not found']}
security:
- uowidp: []