3GPP TS 29.222 CAPIF Events API

API for event subscription management. An OpenAPI 3.0.0 document with 2 path(s), API version 1.4.0, published verbatim by 3GPP in 3GPP TS 29.222 as part of the CAPIF (Common API Framework) suite and mirrored in the public 3GPP Forge GitLab repository.

OpenAPI Specification

3gpp-ts29222-capif-events-api.yml Raw ↑
openapi: 3.0.0

info:
  title: CAPIF_Events_API
  description: |
    API for event subscription management.  
    © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).  
    All rights reserved.
  version: "1.4.0"

externalDocs:
  description: 3GPP TS 29.222 V19.5.0 Common API Framework for 3GPP Northbound APIs
  url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/

servers:
  - url: '{apiRoot}/capif-events/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 7.5 of 3GPP TS 29.222

paths:
  /{subscriberId}/subscriptions:
    post:
      summary: Create a new CAPIFs Event Subscription.
      operationId: CreateEventSubsc
      tags:
        - CAPIFs Events Subscriptions (Collection)
      parameters:
        - name: subscriberId
          in: path
          description: Identifier of the Subscriber
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventSubscription'
      responses:
        '201':
          description: Created (Successful creation of subscription).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
          headers:
            Location:
              description: >
                Contains the URI of the newly created resource, according to the structure.
              required: true
              schema:
                type: string
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'
      callbacks:
        notificationDestination:
          '{$request.body#/notificationDestination}':
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/EventNotification'
              responses:
                '204':
                  description: No Content (successful notification).
                '307':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/307'
                '308':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/308'
                '400':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/400'
                '401':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/401'
                '403':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/403'
                '404':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/404'
                '411':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/411'
                '413':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/413'
                '415':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/415'
                '429':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/429'
                '500':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/500'
                '503':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/503'
                default:
                  $ref: 'TS29122_CommonData.yaml#/components/responses/default'

  /{subscriberId}/subscriptions/{subscriptionId}:
    delete:
      summary: Delete an existing Individual CAPIF Events Subscription resource.
      operationId: DeleteIndEventSubsc
      tags:
        - Individual CAPIFs Events Subscription (Document)
      parameters:
        - name: subscriberId
          in: path
          description: Identifier of the Subscriber
          required: true
          schema:
            type: string
        - name: subscriptionId
          in: path
          description: Identifier of an individual Events Subscription
          required: true
          schema:
            type: string
      responses:
        '204':
          description: >
            No Content. The Individual CAPIF Events Subscription resource is successfully deleted.
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

    put:
      summary: Update an existing Individual CAPIF Events Subscription resource.
      operationId: UpdateIndEventSubsc
      tags:
        - Individual CAPIFs Events Subscription (Document)
      parameters:
        - name: subscriberId
          in: path
          description: Identifier of the Subscriber
          required: true
          schema:
            type: string
        - name: subscriptionId
          in: path
          description: Identifier of the individual Subscriber
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventSubscription'
      responses:
        '200':
          description: OK (Successful update of the subscription).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
        '204':
          description: No Content. (Successful update of the subscription).
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

    patch:
      summary: Modify an existing Individual CAPIF Events Subscription resource.
      operationId: ModifyIndEventSubsc
      tags:
        - Individual CAPIFs Events Subscription (Document)
      parameters:
        - name: subscriberId
          in: path
          description: Identifier of the Subscriber
          required: true
          schema:
            type: string
        - name: subscriptionId
          in: path
          description: Identifier of the individual Subscriber
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/EventSubscriptionPatch'
      responses:
        '200':
          description: OK (Successful modification of the subscription).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
        '204':
          description: No Content (Successful modification of the subscription).
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

components:
  schemas:
    EventSubscription:
      type: object
      description: Represents a CAPIF Events Subscription.
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/CAPIFEvent'
          minItems: 1
          description: Subscribed events.
        eventFilters:
          type: array
          items:
            $ref: '#/components/schemas/CAPIFEventFilter'
          minItems: 1
          description: Subscribed event filters.
        eventReq:
          $ref: 'TS29523_Npcf_EventExposure.yaml#/components/schemas/ReportingInformation'
        notificationDestination:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri'
        requestTestNotification:
          type: boolean
          description: >
            Set to true by Subscriber to request the CAPIF core function to send a
            test notification as defined in in clause 7.6. Set to false or omitted otherwise.
        websockNotifConfig:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/WebsockNotifConfig'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - events
        - notificationDestination

    EventNotification:
      type: object
      description: Represents a CAPIF Events Notification.
      properties:
        subscriptionId:
          type: string
          description: >
            Identifier of the subscription resource to which the notification
            is related.
        events:
          $ref: '#/components/schemas/CAPIFEvent'
        eventDetail:
          $ref: '#/components/schemas/CAPIFEventDetail'
      required:
        - subscriptionId
        - events

    CAPIFEventFilter:
      type: object
      description: Represents a CAPIF event filter.
      properties:
        apiIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Identifier of the service API.
        apiInvokerIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Identity of the API invoker.
        aefIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Identifier of the API exposing function.

    CAPIFEventDetail:
      type: object
      description: Represents the CAPIF event related details.
      properties:
        serviceAPIDescriptions:
          type: array
          items:
            $ref: 'TS29222_CAPIF_Publish_Service_API.yaml#/components/schemas/ServiceAPIDescription'
          minItems: 1
          description: Description of the service API as published by the APF.
        apiIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Identifier of the service API.
        apiInvokerIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Identity of the API invoker.
        accCtrlPolList:
          $ref: '#/components/schemas/AccessControlPolicyListExt'
        invocationLogs:
          type: array
          items:
            $ref: 'TS29222_CAPIF_Logging_API_Invocation_API.yaml#/components/schemas/InvocationLog'
          minItems: 1
          description: Invocation logs.
        apiTopoHide:
          $ref: '#/components/schemas/TopologyHiding'
        onboardingCriteria:
          type: array
          items:
            $ref: 'TS29222_CAPIF_API_Invoker_Management_API.yaml#/components/schemas/OnboardingCriteria'
          minItems: 1
        onboardedCount:
          type: array
          items:
            $ref: '#/components/schemas/ApiInvokerCount'
          minItems: 1
        discoveryCount:
          type: array
          items:
            $ref: '#/components/schemas/DiscoveryCount'
          minItems: 1

    AccessControlPolicyListExt:
      description: Represents the extension for access control policies.
      allOf:
        - $ref: 'TS29222_CAPIF_Access_Control_Policy_API.yaml#/components/schemas/AccessControlPolicyList'
        - type: object
          properties:
            apiId:
              type: string
      required:
        - apiId

    TopologyHiding:
      type: object
      description: Represents the routing rules information of a service API.
      properties:
        apiId:
          type: string
        routingRules:
          type: array
          items:
            $ref: 'TS29222_CAPIF_Routing_Info_API.yaml#/components/schemas/RoutingRule'
          minItems: 1
      required:
        - apiId
        - routingRules

    EventSubscriptionPatch:
      type: object
      description: >
        Represents the parameters to request the modification of a CAPIF Events Subscription
        resource.
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/CAPIFEvent'
          minItems: 1
          description: Subscribed events.
        eventFilters:
          type: array
          items:
            $ref: '#/components/schemas/CAPIFEventFilter'
          minItems: 1
          description: Subscribed event filters.
        eventReq:
          $ref: 'TS29523_Npcf_EventExposure.yaml#/components/schemas/ReportingInformation'
        notificationDestination:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri'

    ApiInvokerCount:
      type: object
      description: Represents the count data for onboarding.
      properties:
        apiId:
          type: string
        count:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
      required:
        - apiId
        - count

    DiscoveryCount:
      type: object
      description: Represents the count data for discovery.
      properties:
        apiId:
          type: string
        discoveryReqCount:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        discoveryRspCount:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
      required:
        - apiId
      anyOf:
        - required: [discoveryReqCount]
        - required: [discoveryRspCount]

    CAPIFEvent:
      anyOf:
      - type: string
        enum:
          - SERVICE_API_AVAILABLE
          - SERVICE_API_UNAVAILABLE
          - SERVICE_API_UPDATE
          - API_INVOKER_ONBOARDED
          - API_INVOKER_OFFBOARDED
          - SERVICE_API_INVOCATION_SUCCESS
          - SERVICE_API_INVOCATION_FAILURE
          - ACCESS_CONTROL_POLICY_UPDATE
          - ACCESS_CONTROL_POLICY_UNAVAILABLE
          - API_INVOKER_AUTHORIZATION_REVOKED
          - API_INVOKER_UPDATED
          - API_TOPOLOGY_HIDING_CREATED
          - API_TOPOLOGY_HIDING_REVOKED
          - API_INVOKER_ONBOARDING_CRITERIA_FAILED
          - SERVICE_API_ONBOARDED_BY_API_INVOKERS_COUNT
          - SERVICE_API_DISCOVERY_BY_API_INVOKERS_COUNT
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration but is not used to encode
          content defined in the present version of this API.
      description: |
        Describes the CAPIF event.  
        Possible values are:
        - SERVICE_API_AVAILABLE:
          Events related to the availability of service APIs after the service APIs are
          published.
        - SERVICE_API_UNAVAILABLE:
          Events related to the unavailability of service APIs after the service APIs are
          unpublished.
        - SERVICE_API_UPDATE: Events related to change in service API information.
        - API_INVOKER_ONBOARDED: Events related to API invoker onboarded to CAPIF.
        - API_INVOKER_OFFBOARDED: Events related to API invoker offboarded from CAPIF.
        - SERVICE_API_INVOCATION_SUCCESS:
          Events related to the successful invocation of service APIs.
        - SERVICE_API_INVOCATION_FAILURE: Events related to the failed invocation of service APIs.
        - ACCESS_CONTROL_POLICY_UPDATE:
          Events related to the update for the access control policy related to the service APIs.
        - ACCESS_CONTROL_POLICY_UNAVAILABLE:
          Events related to the unavailability of the access control policy related to
          the service APIs.
        - API_INVOKER_AUTHORIZATION_REVOKED: Events related to the revocation of the authorization
          of API invokers to access the service APIs.
        - API_INVOKER_UPDATED: Events related to API invoker profile updated to CAPIF.
        - API_TOPOLOGY_HIDING_CREATED:
          Events related to the creation or update of the API topology hiding
          information of the service APIs after the service APIs are published.
        - API_TOPOLOGY_HIDING_REVOKED:
          Events related to the revocation of the API topology hiding information of
          the service APIs after the service APIs are unpublished.
        - API_INVOKER_ONBOARDING_CRITERIA_FAILED: Events related to API Invoker onboarding criteria
          failed to be met. 
        - SERVICE_API_ONBOARDED_BY_API_INVOKERS_COUNT: Events related to the number of times the
          API Invokers requested to onboard the targeted service API(s).
        - SERVICE_API_DISCOVERY_BY_API_INVOKERS_COUNT: Events related to the number of times the
          API Invokers requested and/or received the targeted service API(s)during the
          discovery service.