Densify Subscriptions Tags API

The Subscriptions Tags API from Densify — 3 operation(s) for subscriptions tags.

Operations 8

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /subscriptions/{platformType}/tags List subscription tags for a platform · List tags in the platform catalog #
Ask an LLM
“Which tags are in the containers catalog for subscriptions?”
“Can I list only global tags?”
Tell an agent
List tags in the {platformType} catalog.
Show only {type}-scoped tags for {platformType}, owned by {owner}.
POST /subscriptions/{platformType}/tags Add tags to a catalog in bulk · Add tags (bulk; all-or-nothing) #
Ask an LLM
“How do I add resource tags to the subscription catalog?”
“Can a non-admin create global tags?”
Tell an agent
Add new tags to the {platformType} catalog.
Register several resource tags in the {platformType} subscription catalog.
PUT /subscriptions/{platformType}/tags Replace several tags at once · Replace tags (bulk PUT; all-or-nothing) #
Ask an LLM
“Can I edit multiple catalog tags in one request?”
“Is a bulk tag replace all-or-nothing?”
Tell an agent
Replace a batch of tags in the {platformType} catalog.
Overwrite multiple {platformType} catalog tags in one all-or-nothing edit.
DELETE /subscriptions/{platformType}/tags Delete several tags at once · Delete tags (bulk; independent per entry) #
Ask an LLM
“Can I delete a list of catalog tags in one call?”
“What if some tags in a bulk delete are still used by subscriptions?”
Tell an agent destructive · confirm first
Delete a list of tags from the {platformType} catalog.
Remove multiple tags from {platformType} in one request.
GET /subscriptions/{platformType}/tags/{tagRef} Get one catalog tag · Get a tag by ID #
Ask an LLM
“How do I look up a single tag by its ID?”
“Which attribute does a specific catalog tag map to?”
Tell an agent
Get tag {tagRef} from the {platformType} catalog.
Show the details of {platformType} catalog tag {tagRef}.
PUT /subscriptions/{platformType}/tags/{tagRef} Replace a single tag · Replace a tag by ID (full PUT) #
Ask an LLM
“How do I rename one catalog tag or change its attribute?”
“Can I promote a private tag to global?”
Tell an agent
Replace tag {tagRef} in {platformType} with name {tagName} and attribute {attributeName}.
Set tag {tagRef} in {platformType} to {tagName} on attribute {attributeName} with key {key}.
DELETE /subscriptions/{platformType}/tags/{tagRef} Delete one tag · Delete a tag by ID #
Ask an LLM
“How do I remove a single tag from the catalog?”
“What happens if I delete a tag a subscription still uses?”
Tell an agent destructive · confirm first
Delete tag {tagRef} from the {platformType} catalog.
Remove the single tag {tagRef} from {platformType}.
GET /subscriptions/tags List tags (default cloud alias) · List tags (alias of cloud) #
Ask an LLM
“Can I list catalog tags without naming the platform?”
“Is there a short endpoint for cloud tags?”
Tell an agent
List tags using the default cloud alias.
Show cloud catalog tags without specifying a platform.

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/densify:densify-subscriptions-tags-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

densify-subscriptions-tags-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kubex Subscriptions Tags API
  version: 1.0.0
  description: 'Catalog of system attribute *tags* that subscriptions can reference via `tagReferences`.

    Each platform has its own catalog (`cloud` or `containers`); only matching-platform

    subscriptions can reference tags from that catalog. Comparisons on tags are **string /

    lexicographic**, not numeric. The alias without `platformType` behaves like `cloud`.'
servers:
- url: https://{host}
  variables:
    host:
      default: api.example.com
tags:
- name: Subscriptions Tags
paths:
  /subscriptions/{platformType}/tags:
    get:
      tags:
      - Subscriptions Tags
      operationId: listSubscriptionTags
      summary: List tags in the platform catalog
      description: Returns global/private tags. Use `type` and (admin only) `owner` to filter.
      parameters:
      - $ref: '#/components/parameters/platformType'
      - $ref: '#/components/parameters/type'
      - $ref: '#/components/parameters/owner'
      responses:
        '200':
          description: Tag list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubscriptionTag'
        '400':
          description: Bad Request (e.g., non-admin querying another user with `type=owner`).
        '401':
          description: Authentication failed.
        '404':
          description: Not found.
        '415':
          description: Unsupported media type.
        '500':
          description: Server error.
    post:
      tags:
      - Subscriptions Tags
      operationId: addSubscriptionTags
      summary: Add tags (bulk; all-or-nothing)
      description: 'Adds one or more tags. Admins may create **global** (owner empty) or private tags;

        non-admins can only create **private** (owner auto-set to their username).

        Uniqueness: `attributeName` must be unique per catalog; `tagName` and `aliasName`

        must be unique per ownership scope (global vs owner).'
      parameters:
      - $ref: '#/components/parameters/platformType'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/SubscriptionTagCreate'
      responses:
        '200':
          description: Created entries (IDs and names)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CreateResult'
        '400':
          description: Validation/logic error; entire batch rolled back.
        '401':
          description: Authentication failed.
        '415':
          description: Unsupported media type.
        '500':
          description: Server error.
    put:
      tags:
      - Subscriptions Tags
      operationId: replaceSubscriptionTags
      summary: Replace tags (bulk PUT; all-or-nothing)
      description: 'Replace parameters for existing tags. **Supply all parameters** for each tag;

        PUT acts as delete+replace. Admins may promote private→global by setting `owner: ""`.'
      parameters:
      - $ref: '#/components/parameters/platformType'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/SubscriptionTagUpdate'
      responses:
        '200':
          description: Updated entries (per-item message)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UpdateResult'
        '400':
          description: Validation/logic error; entire batch rolled back.
        '401':
          description: Authentication failed.
        '415':
          description: Unsupported media type.
        '500':
          description: Server error.
    delete:
      tags:
      - Subscriptions Tags
      operationId: deleteSubscriptionTags
      summary: Delete tags (bulk; independent per entry)
      description: 'Deletes a collection of tags by `tagRef`. If **all** succeed, returns 204.

        If any fail (e.g., tag is referenced by subscriptions), returns an array of

        per-entry results with status/messages; other entries may still delete.'
      parameters:
      - $ref: '#/components/parameters/platformType'
      responses:
        '204':
          description: No Content (all deletes succeeded).
        '200':
          description: Per-entry delete results (partial/mixed outcomes)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeleteResult'
        '401':
          description: Authentication failed.
        '404':
          description: Not found.
        '415':
          description: Unsupported media type.
        '500':
          description: Server error.
  /subscriptions/{platformType}/tags/{tagRef}:
    get:
      tags:
      - Subscriptions Tags
      operationId: getSubscriptionTag
      summary: Get a tag by ID
      parameters:
      - $ref: '#/components/parameters/platformType'
      - $ref: '#/components/parameters/tagRef'
      responses:
        '200':
          description: Tag
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionTag'
        '401':
          description: Authentication failed.
        '404':
          description: Not found / not visible.
        '415':
          description: Unsupported media type.
        '500':
          description: Server error.
    put:
      tags:
      - Subscriptions Tags
      operationId: replaceSubscriptionTag
      summary: Replace a tag by ID (full PUT)
      description: '**All parameters must be supplied.** Admin may promote private→global by setting `owner: ""`.'
      parameters:
      - $ref: '#/components/parameters/platformType'
      - $ref: '#/components/parameters/tagRef'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionTagPut'
      responses:
        '200':
          description: Updated entry (with message)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResult'
        '400':
          description: Validation/logic error.
        '401':
          description: Authentication failed.
        '404':
          description: Not found / not visible.
        '415':
          description: Unsupported media type.
        '500':
          description: Server error.
    delete:
      tags:
      - Subscriptions Tags
      operationId: deleteSubscriptionTag
      summary: Delete a tag by ID
      description: '204 on success; 404 if not found. If referenced by subscriptions (or other

        errors), returns an object with `tagRef`, `message`, `status`.'
      parameters:
      - $ref: '#/components/parameters/platformType'
      - $ref: '#/components/parameters/tagRef'
      responses:
        '204':
          description: No Content.
        '404':
          description: Not found.
        '200':
          description: In-use error payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResult'
        '401':
          description: Authentication failed.
        '415':
          description: Unsupported media type.
        '500':
          description: Server error.
  /subscriptions/tags:
    get:
      tags:
      - Subscriptions Tags
      operationId: listSubscriptionTagsDefaultPlatform
      summary: List tags (alias of cloud)
      responses:
        '200':
          description: Tag list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubscriptionTag'
components:
  schemas:
    UpdateResult:
      type: object
      properties:
        tagRef:
          type: string
        tagName:
          type: string
        message:
          type: string
    SubscriptionTag:
      type: object
      description: Subscriptions attribute tag entry.
      properties:
        tagRef:
          type: string
          description: Unique reference ID.
        tagName:
          type: string
          description: Tag name (unique per scope).
        attributeName:
          type: string
          description: Must be a Kubex standard attribute or technology-specific ('Resource Tags' / 'Container Labels').
        aliasName:
          type: string
          description: Display alias (scope-unique per rules).
        technology:
          type: string
          description: Technology for resource attributes.
          enum:
          - AWS
          - CONTAINER
        key:
          type: string
          description: Key used with technology-specific resource attributes.
        owner:
          type: string
          description: Empty = global; otherwise username for private tag.
        message:
          type: string
          description: Status message (on error).
        status:
          type: integer
          description: HTTP-like status code (200, 204, 400, 401, 404, 415, 500).
    DeleteResult:
      type: object
      properties:
        tagRef:
          type: string
        message:
          type: string
        status:
          type: integer
          description: HTTP-like code (e.g., 200, 204, 404).
    SubscriptionTagUpdate:
      type: object
      properties:
        tagRef:
          type: string
        tagName:
          type: string
        attributeName:
          type: string
        aliasName:
          type: string
        key:
          type: string
        technology:
          type: string
          enum:
          - AWS
          - CONTAINER
        owner:
          type: string
      required:
      - tagRef
      - tagName
      - attributeName
      description: Supply **all** parameters; PUT is delete+replace.
    SubscriptionTagPut:
      type: object
      properties:
        tagName:
          type: string
        attributeName:
          type: string
        aliasName:
          type: string
        key:
          type: string
        technology:
          type: string
          enum:
          - AWS
          - CONTAINER
        owner:
          type: string
      required:
      - tagName
      - attributeName
      description: Supply **all** parameters; PUT is delete+replace.
    SubscriptionTagCreate:
      type: object
      properties:
        tagName:
          type: string
        attributeName:
          type: string
        aliasName:
          type: string
        key:
          type: string
          description: Required with technology for resource attributes.
        technology:
          type: string
          enum:
          - AWS
          - CONTAINER
        owner:
          type: string
          description: Omit/empty for global (admin only); otherwise username for private.
      required:
      - tagName
      - attributeName
      description: 'For "Resource Tags"/"Container Labels", specify both `key` and `technology`.

        '
    CreateResult:
      type: object
      properties:
        tagRef:
          type: string
        tagName:
          type: string
  parameters:
    owner:
      name: owner
      in: query
      required: false
      description: Username to scope `type=owner` queries (admins only for others).
      schema:
        type: string
    platformType:
      name: platformType
      in: path
      required: true
      description: Platform catalog (`cloud` or `containers`).
      schema:
        type: string
        enum:
        - cloud
        - containers
    type:
      name: type
      in: query
      required: false
      description: "Which tags to return:\n- `all` (default) → global + your private (admins see all)\n- `global` → all global\n- `owner` → user-specific; combine with `owner=` (admins can query any user) \n"
      schema:
        type: string
        enum:
        - all
        - global
        - owner
    tagRef:
      name: tagRef
      in: path
      required: true
      description: Unique tag identifier.
      schema:
        type: string