University of Wisconsin-Madison Webhooks API

The webhooks API from University of Wisconsin-Madison — 7 operation(s) for webhooks.

Operations 16

GET /people/webhooks Get webhooks. #
POST /people/webhooks Create a webhook. #
GET /people/webhooks/{webhookId} Get a webhook. #
PATCH /people/webhooks/{webhookId} Update a webhook. #
DELETE /people/webhooks/{webhookId} Delete a webhook. #
POST /people/webhooks/{webhookId}/replay Replay events. #
GET /people/webhooks/{webhookId}/filters Get all filters for a webhook. #
POST /people/webhooks/{webhookId}/filters Create a filter for a webhook. #
GET /people/webhooks/{webhookId}/filters/{filterId} Get a filter for a webhook. #
PATCH /people/webhooks/{webhookId}/filters/{filterId} Update a filter for a webhook. #
DELETE /people/webhooks/{webhookId}/filters/{filterId} Delete a filter for a webhook. #
GET /people/webhooks/{webhookId}/relationshipFilters Get all relationship filters for a webhook. #
POST /people/webhooks/{webhookId}/relationshipFilters Create a relationship filter for a webhook. #
GET /people/webhooks/{webhookId}/relationshipFilters/{relationshipFilterId} Get a relationship filter for a webhook. #
PATCH /people/webhooks/{webhookId}/relationshipFilters/{relationshipFilterId} Update a relationship filter for a webhook. #
DELETE /people/webhooks/{webhookId}/relationshipFilters/{relationshipFilterId} Delete a relationship filter for a webhook. #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-person-api-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-mock-person-api-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-mock-person-api-certificates-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-hr-api-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-mock-hr-api-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-manifest-api-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-mock-manifest-api-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-enterprise-billing-api-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/json-schema/university-of-wisconsin-madison-course-search-api-schema.json

Other Resources

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/university-of-wisconsin-madison-webhooks-api"
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-wisconsin-madison-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: University Of Wisconsin Madison Webhooks API
  version: 1.0.0
  contact:
    name: DoIT Enterprise Integration API Team
    email: api@doit.wisc.edu
    url: https://go.wisc.edu/k701y6
  description: 'Operations tagged webhooks across 3 of this provider''s published API definitions: university-of-wisconsin-madison-mock-person-api-certificates-openapi.yml, university-of-wisconsin-madison-mock-person-api-openapi.yml, university-of-wisconsin-madison-person-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://mock.api.wisc.edu
- url: https://api.wisc.edu
security:
- OAuth2ClientCredentials: []
tags:
- name: webhooks
paths:
  /people/webhooks:
    get:
      description: Get a collection of webhooks. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information.
      summary: Get webhooks.
      operationId: get_webhooks
      tags:
      - webhooks
      responses:
        '200':
          description: A collection of webhooks.
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                - links
                properties:
                  data:
                    description: A collection of webhooks.
                    type: array
                    items:
                      description: A webhook represents the configuration for an application to subscribe to events from the Person API. Webhook events are HTTP requests that will be sent to a server when data changes about a person. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information.
                      type: object
                      required:
                      - type
                      - id
                      - attributes
                      - links
                      - relationships
                      properties:
                        type:
                          type: string
                          example: webhooks
                        id:
                          type: string
                          description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response.
                          example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b
                        attributes:
                          type: object
                          required:
                          - url
                          - expired
                          properties:
                            url:
                              type: string
                              format: url
                              example: https://department.wisc.edu/person-api-webhook
                              description: URL that accepts Person API webhook events. This URL must use HTTPS.
                            token:
                              type: string
                              readOnly: true
                              description: A secret token sent with each webhook event. A server must verify this token when receiving a webhook from the Person API to ensure it is authenticate. This token is only returned when creating a webhook and cannot be set by the client. It cannot be retrieved again in future requests.
                            expired:
                              type: boolean
                              readOnly: false
                              description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it.
                        links:
                          description: The link to access a resource itself
                          type: object
                          properties:
                            self:
                              type: string
                              example: https://api.wisc.edu/link/to/self
                        relationships:
                          type: object
                          required:
                          - replay
                          - webhookFilters
                          - webhookRelationshipFilters
                          properties:
                            replay:
                              description: A generic relationship object
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      example: https://api.wisc.edu/link/to/related/object
                                data:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      example: sampleType
                                    id:
                                      type: string
                                      example: sampleId
                            webhookFilters:
                              description: A generic relationship object
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      example: https://api.wisc.edu/link/to/related/object
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        example: sampleType
                                      id:
                                        type: string
                                        example: sampleId
                            webhookRelationshipFilters:
                              description: A generic relationship object
                              type: object
                              properties:
                                links:
                                  type: object
                                  properties:
                                    related:
                                      type: string
                                      example: https://api.wisc.edu/link/to/related/object
                                data:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      type:
                                        type: string
                                        example: sampleType
                                      id:
                                        type: string
                                        example: sampleId
                  links:
                    description: The link to access a resource itself
                    type: object
                    properties:
                      self:
                        type: string
                        example: https://api.wisc.edu/link/to/self
              examples:
                example-webhooks:
                  value:
                    data:
                    - attributes:
                        url: https://department.wisc.edu/person-api-webhook
                        expired: false
                      id: '100'
                      links:
                        self: https://api.wisc.edu/people/webhooks/100
                      type: webhooks
                      relationships:
                        replay:
                          links:
                            related: https://api.wisc.edu/people/webhooks/100/replay
                        webhookFilters:
                          data: []
                          links:
                            related: https://api.wisc.edu/people/webhooks/100/filters
                        webhookRelationshipFilters:
                          data: []
                          links:
                            related: https://api.wisc.edu/people/webhooks/100/relationshipFilters
                    links:
                      self: https://api.wisc.edu/people/webhooks
        '401':
          description: Incorrect or expired OAuth token.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                unauthorized-response:
                  value:
                    errors:
                    - status: 401
                      title: Unauthorized
                      detail: Invalid OAuth authentication - InvalidAccessToken
        '403':
          description: The API call is authenticated but the client isn't allowed to perform the requested operation. This can occur when trying to update a resource when granted read-only access.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                name-update-example:
                  value:
                    errors:
                    - status: 403
                      title: Forbidden
                      detail: Client is not allowed to create, update, or delete a person's name.
                no-access-example:
                  value:
                    errors:
                    - status: 403
                      title: Forbidden
                      detail: Requested method is forbidden for endpoint - GET - /people
        '406':
          description: Servers respond with a 406 Not Acceptable status code if a request’s Accept header contains the JSON:API media type and all instances of that media type are modified with media type parameters.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                not-acceptable-example:
                  value:
                    errors:
                    - status: 406
                      title: Not Acceptable
                      detail: Request's Accept header contained the JSON:API media type and all instances of that media type were modified with media type parameters.
        '429':
          description: The API quota has been exceeded.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                not-found-example:
                  value:
                    errors:
                    - status: 429
                      title: Too Many Requests
                      detail: The quota has been exceeded.
        '500':
          description: An unexpected error.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                not-found-example:
                  value:
                    errors:
                    - status: 500
                      title: Internal Server Error
                      detail: Something went wrong in the server-side.
    post:
      description: Create a webhook. A maximum of 5 webhooks per Developer Portal application are allowed. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information.
      summary: Create a webhook.
      operationId: create_webhook
      tags:
      - webhooks
      requestBody:
        description: A webhook request body.
        required: true
        content:
          application/vnd.api+json:
            schema:
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - type
                  - attributes
                  properties:
                    type:
                      type: string
                      example: webhooks
                      enum:
                      - webhooks
                    attributes:
                      type: object
                      properties:
                        url:
                          type: string
                          format: url
                          example: https://department.wisc.edu/person-api-webhook
                          description: URL that accepts Person API webhook events. This URL must use HTTPS.
                        expired:
                          type: boolean
                          example: false
                          description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it.
      responses:
        '201':
          description: A single just created webhook.
          content:
            application/vnd.api+json:
              schema:
                type: object
                required:
                - data
                - links
                properties:
                  data:
                    description: A webhook represents the configuration for an application to subscribe to events from the Person API. Webhook events are HTTP requests that will be sent to a server when data changes about a person. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information.
                    type: object
                    required:
                    - type
                    - id
                    - attributes
                    - links
                    - relationships
                    properties:
                      type:
                        type: string
                        example: webhooks
                      id:
                        type: string
                        description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response.
                        example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b
                      attributes:
                        type: object
                        required:
                        - url
                        - expired
                        properties:
                          url:
                            type: string
                            format: url
                            example: https://department.wisc.edu/person-api-webhook
                            description: URL that accepts Person API webhook events. This URL must use HTTPS.
                          token:
                            type: string
                            readOnly: true
                            description: A secret token sent with each webhook event. A server must verify this token when receiving a webhook from the Person API to ensure it is authenticate. This token is only returned when creating a webhook and cannot be set by the client. It cannot be retrieved again in future requests.
                          expired:
                            type: boolean
                            readOnly: false
                            description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it.
                      links:
                        description: The link to access a resource itself
                        type: object
                        properties:
                          self:
                            type: string
                            example: https://api.wisc.edu/link/to/self
                      relationships:
                        type: object
                        required:
                        - replay
                        - webhookFilters
                        - webhookRelationshipFilters
                        properties:
                          replay:
                            description: A generic relationship object
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    example: https://api.wisc.edu/link/to/related/object
                              data:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    example: sampleType
                                  id:
                                    type: string
                                    example: sampleId
                          webhookFilters:
                            description: A generic relationship object
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    example: https://api.wisc.edu/link/to/related/object
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      example: sampleType
                                    id:
                                      type: string
                                      example: sampleId
                          webhookRelationshipFilters:
                            description: A generic relationship object
                            type: object
                            properties:
                              links:
                                type: object
                                properties:
                                  related:
                                    type: string
                                    example: https://api.wisc.edu/link/to/related/object
                              data:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      example: sampleType
                                    id:
                                      type: string
                                      example: sampleId
                  links:
                    description: The link to access a resource itself
                    type: object
                    properties:
                      self:
                        type: string
                        example: https://api.wisc.edu/link/to/self
              examples:
                example-webhook:
                  value:
                    data:
                      attributes:
                        url: https://department.wisc.edu/person-api-webhook
                        token: 16f6f440-7317-41f2-9239-6207519b3ad0
                        expired: false
                      id: '100'
                      links:
                        self: https://api.wisc.edu/people/webhooks/100
                      type: webhooks
                      relationships:
                        replay:
                          links:
                            related: https://api.wisc.edu/people/webhooks/100/replay
                        webhookFilters:
                          data: []
                          links:
                            related: https://api.wisc.edu/people/webhooks/100/filters
                        webhookRelationshipFilters:
                          data: []
                          links:
                            related: https://api.wisc.edu/people/webhooks/100/relationshipFilters
                    links:
                      self: https://api.wisc.edu/people/webhooks/100
        '400':
          description: A bad request.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                application/vnd.api+json:
                  value:
                    errors:
                    - id: null
                      links: {}
                      meta: {}
                      source: {}
                      status: 400
                      title: Bad Request
                      detail: Invalid properties in query parameters - resource type 'people' has no attribute 'invalid'.
        '401':
          description: Incorrect or expired OAuth token.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                unauthorized-response:
                  value:
                    errors:
                    - status: 401
                      title: Unauthorized
                      detail: Invalid OAuth authentication - InvalidAccessToken
        '403':
          description: The API call is authenticated but the client isn't allowed to perform the requested operation. This can occur when trying to update a resource when granted read-only access.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                name-update-example:
                  value:
                    errors:
                    - status: 403
                      title: Forbidden
                      detail: Client is not allowed to create, update, or delete a person's name.
                no-access-example:
                  value:
                    errors:
                    - status: 403
                      title: Forbidden
                      detail: Requested method is forbidden for endpoint - GET - /people
        '406':
          description: Servers respond with a 406 Not Acceptable status code if a request’s Accept header contains the JSON:API media type and all instances of that media type are modified with media type parameters.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                not-acceptable-example:
                  value:
                    errors:
                    - status: 406
                      title: Not Acceptable
                      detail: Request's Accept header contained the JSON:API media type and all instances of that media type were modified with media type parameters.
        '415':
          description: 'Request includes a body but not the valid JSON API Content-Type header: application/vnd.api+json'
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      properties:
                        status:
                          type: integer
                          example: 400
                        title:
                          type: string
                          example: Error title
                        detail:
                          type: string
                          example: Additional details about the error
                        links:
                          type: object
                        meta:
                          type: object
                        source:
                          type: object
              examples:
                unsupported-media-type-example:
                  value:
                    errors:
                    - status: 415
                      title: Unsupported Media Type
                      detail: Requests with a body must include the Content-Type header with a value of application/vnd.api+json
        '429':
          description: The API quota has been exceeded.
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      description: An error
                      type: object
                      

# --- truncated at 32 KB (241 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-wisconsin-madison/refs/heads/main/openapi/university-of-wisconsin-madison-webhooks-api-openapi.yml