Deutsche Telekom ApiSubscription API

After an API is successful subscribed, you are able to use the API. It is only possible to subscribe to the entire API. It is not possible to subscribe only to a single resource

Operations 6

GET /applications/{applicationId}/apisubscriptions Find all ApiSubscriptions #
POST /applications/{applicationId}/apisubscriptions Create an ApiSubscription #
GET /applications/{applicationId}/apisubscriptions/{apiSubscriptionName} Find an existing ApiSubscription #
PUT /applications/{applicationId}/apisubscriptions/{apiSubscriptionName} Update an existing ApiSubscription #
DELETE /applications/{applicationId}/apisubscriptions/{apiSubscriptionName} Delete an ApiSubscription #
GET /applications/{applicationId}/apisubscriptions/{apiSubscriptionName}/status Find an existing ApiSubscription and return its status #

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/deutsche-telekom-apisubscription-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

deutsche-telekom-apisubscription-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Stargate API Subscription API
  description: "API of the TARDIS control plane. With this API, you can manage your\nApiExposures and ApiSubscriptions. \nThis is a **read-only** API. You can only read the resources. \nFor creating and updating resources, you may use the Rover-API.\n\n**Important:** \n- You may use this API by subscribing to it by using the usual process. \nYou **do not** need to add `scopes` as the default scope is set to `tardis:user:read`.\nIf you require more permissions, please contact the TARDIS team.\n\n- This is a Team-API and may be used by any team using TARDIS. \nIn the future, you can simply use your Team-credentials to access this API.\n"
  contact:
    name: TARDIS
    url: https://developer.telekom.de/docs/src/tardis_customer_handbook/support/
    email: FMB_TARDIS_Support@telekom.de
  version: 2.0.0
  x-api-category: TARDIS
servers:
- url: https://api.telekom.de/stargate/v2
security:
- OAuth2:
  - tardis:admin:all
tags:
- name: ApiSubscription
  description: 'After an API is successful subscribed, you are able to use the API. It is

    only possible to subscribe to the entire API. It is not possible to

    subscribe only to a single resource

    '
paths:
  /applications/{applicationId}/apisubscriptions:
    get:
      tags:
      - ApiSubscription
      summary: Find all ApiSubscriptions
      description: Find all ApiSubscriptions of this application
      operationId: getAllApiSubscriptions
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - $ref: common.yaml#/components/parameters/Limit
      - $ref: common.yaml#/components/parameters/Offset
      - $ref: common.yaml#/components/parameters/Sort
      responses:
        '200':
          description: OK
          headers:
            X-Total-Count:
              $ref: common.yaml#/components/headers/XTotalCount
            X-Result-Count:
              $ref: common.yaml#/components/headers/XResultCount
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSubscriptionListResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read
        - tardis:user:obfuscated
    post:
      deprecated: true
      tags:
      - ApiSubscription
      summary: Create an ApiSubscription
      description: 'Creating and updating resources is asynchronous, which is why the status

        is given as an answer to a POST/PUT request, since it is possible that

        the resource to be created has not yet been processed at the time the

        response is created. If the status after creation is in state

        "Processing", the resource must be queried with GET to see whether it

        was created successfully or whether errors/warnings are written in the

        status. If the creation/update is incorrect, the processing status will

        be set to blocked. Otherwise to "failed". Status 201 means, that we

        accepted the request and there are no syntactic or semantic errors, but

        there can occur failures in the after processing. That will be shown in

        the status if you request the appropriate resource.

        '
      operationId: createApiSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSubscriptionCreateRequest'
      responses:
        '202':
          description: ACCEPTED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSubscriptionResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
        - tardis:user:all
  /applications/{applicationId}/apisubscriptions/{apiSubscriptionName}:
    get:
      tags:
      - ApiSubscription
      summary: Find an existing ApiSubscription
      description: Find an existing ApiSubscription
      operationId: getApiSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: apiSubscriptionName
        description: The name of the ApiSubscription
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSubscriptionResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read
        - tardis:user:obfuscated
    put:
      deprecated: true
      tags:
      - ApiSubscription
      summary: Update an existing ApiSubscription
      description: 'Creating and updating resources is asynchronous, which is why the status

        is given as an answer to a POST/PUT request, since it is possible that

        the resource to be created has not yet been processed at the time the

        response is created. If the status after creation is in state

        "Processing", the resource must be queried with GET to see whether it

        was created successfully or whether errors/warnings are written in the

        status. If the creation/update is incorrect, the processing status will

        be set to blocked. Otherwise to "failed". Status 201 means, that we

        accepted the request and there are no syntactic or semantic errors, but

        there can occur failures in the after processing. That will be shown in

        the status if you request the appropriate resource.

        '
      operationId: updateApiSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: apiSubscriptionName
        in: path
        description: The name of the ApiSubscription
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSubscriptionUpdateRequest'
      responses:
        '200':
          description: UPDATE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSubscriptionResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
        - tardis:user:all
    delete:
      deprecated: true
      tags:
      - ApiSubscription
      summary: Delete an ApiSubscription
      description: Delete an ApiSubscription
      operationId: deleteApiSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: apiSubscriptionName
        in: path
        description: The name of the ApiSubscription
        required: true
        schema:
          type: string
      responses:
        '204':
          description: DELETED
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
        - tardis:user:all
  /applications/{applicationId}/apisubscriptions/{apiSubscriptionName}/status:
    get:
      tags:
      - ApiSubscription
      summary: Find an existing ApiSubscription and return its status
      description: Find an existing ApiSubscription and return its status
      operationId: getApiSubscriptionStatus
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: apiSubscriptionName
        description: The name of the ApiSubscription
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: common.yaml#/components/schemas/ResourceStatusResponse
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read
        - tardis:user:obfuscated
components:
  schemas:
    Approval:
      type: object
      readOnly: true
      required:
      - status
      - comment
      properties:
        status:
          type: string
          example: granted
        comment:
          type: string
          example: trusted team
        decider:
          type: string
          example: hyperion@telekom.de
        timestamp:
          type: string
          format: date-time
          example: '2022-09-28T16:05:46.384Z'
    SubscriptionFailover:
      type: array
      readOnly: true
      items:
        type: object
        properties:
          zone:
            type: string
            readOnly: true
            example: aws
          gatewayUrl:
            type: string
            readOnly: true
            example: https://stargate-playground.live.dhei.telekom.de/eni/echo/v1
    BasicAuth:
      type: object
      required:
      - type
      - username
      - password
      properties:
        type:
          type: string
          enum:
          - basicAuth
        username:
          type: string
        password:
          type: string
    ApiSubscriptionCreateRequest:
      required:
      - basePath
      type: object
      allOf:
      - $ref: '#/components/schemas/ApiSubscription'
    SubscriberSecurity:
      discriminator:
        propertyName: type
        mapping:
          oauth2: '#/components/schemas/OAuth2'
          basicAuth: '#/components/schemas/BasicAuth'
      oneOf:
      - $ref: '#/components/schemas/OAuth2'
      - $ref: '#/components/schemas/BasicAuth'
    ApiSubscription:
      type: object
      properties:
        basePath:
          description: Must match pattern ^\/[a-zA-Z0-9\/-]*$
          type: string
          example: /my-hub/my-app/v1
          pattern: ^\/[a-zA-Z0-9\/-]*$
        security:
          $ref: '#/components/schemas/SubscriberSecurity'
    ApiSubscriptionResponse:
      type: object
      readOnly: true
      allOf:
      - $ref: '#/components/schemas/ApiSubscription'
      - properties:
          name:
            type: string
            readOnly: true
            example: eni-echo-v1
          zone:
            type: string
            readOnly: true
          gatewayUrl:
            type: string
            readOnly: true
            example: https://stargate-playground.live.dhei.telekom.de/eni/echo/v1
          status:
            $ref: common.yaml#/components/schemas/Status
          application:
            $ref: common.yaml#/components/schemas/ApplicationRef
          team:
            $ref: common.yaml#/components/schemas/TeamRef
          approval:
            $ref: '#/components/schemas/Approval'
          failover:
            $ref: '#/components/schemas/SubscriptionFailover'
    ApiSubscriptionUpdateRequest:
      required:
      - basePath
      type: object
      allOf:
      - $ref: '#/components/schemas/ApiSubscription'
    OAuth2:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - oauth2
        tokenEndpoint:
          type: string
        clientId:
          type: string
        clientSecret:
          type: string
        scopes:
          type: array
          items:
            type: string
        username:
          type: string
        password:
          type: string
        refreshToken:
          type: string
        grantType:
          type: string
        tokenRequest:
          type: string
          enum:
          - body
          - header
          description: Specifies if the authentication data should be sent to the external IDP via headers or in the body of the request
    ApiSubscriptionListResponse:
      properties:
        paging:
          $ref: common.yaml#/components/schemas/Paging
        _links:
          $ref: common.yaml#/components/schemas/Links
        items:
          type: array
          items:
            $ref: '#/components/schemas/ApiSubscriptionResponse'