dotCMS Tags API

Content tagging and labeling

Operations 13

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 /api/v2/tags List or search tags · List/Search Tags #
Ask an LLM
“Which tags contain the word market?”
“Can I list only global tags, or only tags on one site?”
Tell an agent
Search tags matching {filter}.
List tags on site {site}, page {page}.
POST /api/v2/tags Create one or more tags · Create tags #
Ask an LLM
“How do I create several tags in a single request?”
“What happens if I create a tag that already exists?”
Tell an agent
Create tags named summer-sale and holiday.
Add a new tag called press-release.
DELETE /api/v2/tags Delete several tags at once · Bulk delete tags #
Ask an LLM
“Can I delete a batch of tags by their IDs in one call?”
“Does bulk tag deletion fail if some IDs don't exist?”
Tell an agent destructive · confirm first
Delete all of these tags by ID in one go.
Bulk remove the unused tags from this list of IDs.
DELETE /api/v2/tags/{tagId} Delete a single tag · Delete tag #
Ask an LLM
“How do I delete one tag by its ID?”
“What permission is needed to remove a tag?”
Tell an agent destructive · confirm first
Delete tag {tagId}.
Remove the single tag with ID {tagId}.
GET /api/v2/tags/inode/{inode} Get the tags on a content item · Get tags by inode #
Ask an LLM
“What tags are attached to this piece of content?”
“Can I see tag relationships for a given content inode?”
Tell an agent
List the tags on content inode {inode}.
Show which tags are linked to {inode}.
DELETE /api/v2/tags/inode/{inode} Remove all tags from a content item · Delete tag-inode associations #
Ask an LLM
“Can I strip every tag off a piece of content without deleting the tags?”
“Does unlinking tags from content delete the tags themselves?”
Tell an agent destructive · confirm first
Remove all tag associations from content {inode}.
Untag content {inode} completely but keep the tags.
GET /api/v2/tags/export/template Download the CSV template for tag imports · Download tag import template #
Ask an LLM
“What format does a tag import CSV need to be in?”
“Is there a sample CSV I can fill in to import tags?”
Tell an agent
Download the tag import CSV template.
Get the example CSV with headers for importing tags.
GET /api/v2/tags/export Export tags to CSV or JSON · Export tags #
Ask an LLM
“Can I export all my tags to a CSV file?”
“Is it possible to export only the tags for one site as JSON?”
Tell an agent
Export tags as {format}.
Export tags for site {siteId} matching {filter}.
GET /api/v2/tags/{nameOrId} Look up a tag by name or ID · Get tag by name or ID #
Ask an LLM
“How do I look up a single tag by its name?”
“When two sites have the same tag name, how is the right one chosen?”
Tell an agent
Get tag {nameOrId}.
Look up tag {nameOrId} on site {siteId}.
GET /api/v2/tags/user/{userId} List tags owned by a user · Get tags by user ID #
Ask an LLM
“Which tags belong to a particular user?”
“Can I see the tags linked to a user when they were created?”
Tell an agent
List tags owned by user {userId}.
Show the personal tags of {userId}.
POST /api/v2/tags/import Import tags from a CSV file · Import tags from CSV file #
Ask an LLM
“Can I bulk import tags from a spreadsheet?”
“Will a tag import tell me which CSV rows failed and why?”
Tell an agent
Import the tags in this CSV file.
Upload this tag CSV and report any rows that failed.
PUT /api/v2/tags/tag/{nameOrId}/inode/{inode} Attach a tag to a content item · Link tags to inode #
Ask an LLM
“How do I tag a piece of content with an existing tag?”
“What happens if the tag name I link matches more than one tag?”
Tell an agent
Tag content {inode} with {nameOrId}.
Link tag {nameOrId} to inode {inode}.
PUT /api/v2/tags/{idOrName} Rename a tag or move it to another site · Update tag #
Ask an LLM
“Can I rename an existing tag?”
“How do I move a tag to a different site?”
Tell an agent
Rename tag {idOrName} to {tagName} on site {siteId}.
Reassign tag {idOrName} named {tagName} to site {siteId}.

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/dotcms:dotcms-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

dotcms-tags-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST Tags API
  version: '3'
  description: Content tagging and labeling
servers:
- url: /
  description: dotCMS Server
tags:
- name: Tags
  description: Content tagging and labeling
paths:
  /api/v2/tags:
    get:
      tags:
      - Tags
      summary: List/Search Tags
      description: Searches and lists tags with filtering, pagination, and sorting. The filter parameter performs a case-insensitive search with wildcards on both sides (e.g., "market" matches "Marketing", "marketplace", "supermarket"). When using the filter, results are ordered by match length (shortest first) to prioritize exact matches. The site parameter accepts either a site ID or site name for filtering by specific sites.
      operationId: listTags
      parameters:
      - name: filter
        in: query
        description: Tag name filter (LIKE search)
        schema:
          type: string
        example: market
      - name: global
        in: query
        description: Include system/global tags
        schema:
          type: boolean
          default: false
        example: true
      - name: site
        in: query
        description: Filter by site (ID, name, or SYSTEM_HOST)
        schema:
          type: string
        example: 48190c8c-42c4-46af-8d1a-0cd5db894797
      - name: page
        in: query
        description: Page number
        schema:
          type: integer
          format: int32
          default: 1
        example: 1
      - name: per_page
        in: query
        description: Items per page
        schema:
          type: integer
          format: int32
        example: 25
      - name: orderBy
        in: query
        description: Sort field
        schema:
          type: string
          default: tagname
        example: tagname
      - name: direction
        in: query
        description: Sort direction
        schema:
          type: string
          default: ASC
        example: ASC
      responses:
        '200':
          description: Tags retrieved successfully with pagination metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityPaginatedDataView'
        '400':
          description: Bad Request - Invalid parameters
          content:
            application/json: {}
        '401':
          description: Unauthorized - Authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - Insufficient permissions
          content:
            application/json: {}
        '500':
          description: Internal Server Error
          content:
            application/json: {}
    post:
      tags:
      - Tags
      summary: Create tags
      description: Creates one or more tags. Single tag = list with one element, multiple tags = list with multiple elements. This operation is idempotent - existing tags are returned without error.
      operationId: createTags
      requestBody:
        description: List of tag data to create. Single tag = list with one element, multiple tags = list with multiple elements.
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TagForm'
        required: true
      responses:
        '200':
          description: All submitted tags already existed. Response contains an empty 'created' list and all tags in 'duplicates'.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityTagCreateView'
        '201':
          description: At least one new tag was created. New tags appear in 'created', pre-existing ones in 'duplicates'.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityTagCreateView'
        '400':
          description: Bad Request - Invalid tag data with field-level error details
          content:
            application/json: {}
        '401':
          description: Unauthorized - Authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - User does not have access to Tags portlet
          content:
            application/json: {}
        '500':
          description: Internal Server Error - Database or system error
          content:
            application/json: {}
    delete:
      tags:
      - Tags
      summary: Bulk delete tags
      description: Deletes one or more tags by ID. Missing IDs are silently skipped — the operation is idempotent.
      operationId: bulkDeleteTags
      requestBody:
        description: List of tag IDs to delete
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        '200':
          description: Bulk delete completed. Check successCount, skippedCount, and fails for details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityBulkResultView'
        '400':
          description: Bad Request - invalid input
          content:
            application/json: {}
        '401':
          description: Unauthorized - authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - insufficient permissions to delete tags
          content:
            application/json: {}
        '500':
          description: Internal server error
          content:
            application/json: {}
  /api/v2/tags/{tagId}:
    delete:
      tags:
      - Tags
      summary: Delete tag
      description: Deletes a tag based on its ID. The tag must exist and the user must have appropriate permissions.
      operationId: deleteTag
      parameters:
      - name: tagId
        in: path
        description: ID of the tag to delete
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Tag deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityBooleanView'
        '401':
          description: Unauthorized - authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - insufficient permissions to delete tags
          content:
            application/json: {}
        '404':
          description: Tag not found
          content:
            application/json: {}
        '500':
          description: Internal server error
          content:
            application/json: {}
  /api/v2/tags/inode/{inode}:
    get:
      tags:
      - Tags
      summary: Get tags by inode
      description: Retrieves all tags associated with a given inode. Returns tag-inode relationships for the specified content.
      operationId: getTagsByInode
      parameters:
      - name: inode
        in: path
        description: Inode to retrieve tags for
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Tags retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityTagInodesMapView'
        '401':
          description: Unauthorized - authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - insufficient permissions to access tags
          content:
            application/json: {}
        '404':
          description: No tags found for the specified inode
          content:
            application/json: {}
        '500':
          description: Internal server error
          content:
            application/json: {}
    delete:
      tags:
      - Tags
      summary: Delete tag-inode associations
      description: Breaks the link between an inode and all its associated tags. Removes all tag associations for the specified content but does not delete the tags themselves.
      operationId: deleteTagInodeAssociations
      parameters:
      - name: inode
        in: path
        description: Inode to remove tag associations from
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Tag-inode associations deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityBooleanView'
        '401':
          description: Unauthorized - authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - insufficient permissions to modify tag associations
          content:
            application/json: {}
        '404':
          description: No tag associations found for the specified inode
          content:
            application/json: {}
        '500':
          description: Internal server error
          content:
            application/json: {}
  /api/v2/tags/export/template:
    get:
      tags:
      - Tags
      summary: Download tag import template
      description: Download a CSV template file with headers and example data for tag imports. No parameters required.
      operationId: downloadTagImportTemplate
      responses:
        '200':
          description: CSV template file download
          content:
            text/csv: {}
        '401':
          description: Unauthorized - Authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - Insufficient permissions
          content:
            application/json: {}
        '500':
          description: Template generation error
          content:
            application/json: {}
  /api/v2/tags/export:
    get:
      tags:
      - Tags
      summary: Export tags
      description: Export tags to CSV or JSON format. Supports the same filtering as list/search endpoint with configurable export format.
      operationId: exportTags
      parameters:
      - name: format
        in: query
        description: Export format
        schema:
          type: string
          enum:
          - csv
          - json
          default: csv
        example: csv
      - name: global
        in: query
        description: Include global tags
        schema:
          type: boolean
          default: false
        example: false
      - name: siteId
        in: query
        description: Filter by specific host/site
        schema:
          type: string
        example: 48190c8c-42c4-46af-8d1a-0cd5db894797
      - name: filter
        in: query
        description: Tag name filter (LIKE search)
        schema:
          type: string
        example: market
      responses:
        '200':
          description: File download initiated with appropriate content type
          content:
            text/csv: {}
            application/json: {}
        '400':
          description: Invalid parameters
          content:
            application/json: {}
        '401':
          description: Unauthorized - Authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - Insufficient permissions
          content:
            application/json: {}
        '500':
          description: Internal server error
          content:
            application/json: {}
  /api/v2/tags/{nameOrId}:
    get:
      tags:
      - Tags
      summary: Get tag by name or ID
      description: Retrieves a single tag by its name or UUID. For name-based searches, uses site context for disambiguation.
      operationId: getTagByNameOrId
      parameters:
      - name: nameOrId
        in: path
        description: Tag name or UUID
        required: true
        schema:
          type: string
      - name: siteId
        in: query
        description: Site ID for name-based searches. If not provided, uses current site context with SYSTEM_HOST fallback
        schema:
          type: string
      responses:
        '200':
          description: Tag found successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityRestTagView'
        '401':
          description: Unauthorized - Authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - User does not have access to Tags portlet
          content:
            application/json: {}
        '404':
          description: Tag not found
          content:
            application/json: {}
        '500':
          description: Internal Server Error
          content:
            application/json: {}
  /api/v2/tags/user/{userId}:
    get:
      tags:
      - Tags
      summary: Get tags by user ID
      description: Retrieves all tags owned by a specific user. Returns tags that were explicitly linked to the user during creation.
      operationId: getTagsByUserId
      parameters:
      - name: userId
        in: path
        description: User ID to retrieve tags for
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User tags retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityTagMapView'
        '401':
          description: Unauthorized - authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - insufficient permissions to access tags
          content:
            application/json: {}
        '404':
          description: No tags found for the specified user
          content:
            application/json: {}
        '500':
          description: Internal server error
          content:
            application/json: {}
  /api/v2/tags/import:
    post:
      tags:
      - Tags
      summary: Import tags from CSV file
      description: Imports tags from a CSV file with row-level error reporting. Returns detailed statistics and error information for each failed row.
      operationId: importTags
      requestBody:
        description: 'CSV file with tag data in format: tag_name,host_id'
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FormDataMultiPart'
        required: true
      responses:
        '200':
          description: Import completed with detailed results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityTagOperationView'
        '400':
          description: Bad Request - Invalid file format or content
          content:
            application/json: {}
        '401':
          description: Unauthorized - Authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - User does not have access to Tags portlet
          content:
            application/json: {}
        '500':
          description: Internal Server Error - Database or system error
          content:
            application/json: {}
  /api/v2/tags/tag/{nameOrId}/inode/{inode}:
    put:
      tags:
      - Tags
      summary: Link tags to inode
      description: Binds tags with a given inode. Lookup can be done via tag name or ID. If tag name matches multiple tags, all matching tags will be bound. Use tag ID for specific binding.
      operationId: linkTagsToInode
      parameters:
      - name: nameOrId
        in: path
        description: Name or UUID of the tag to link
        required: true
        schema:
          type: string
      - name: inode
        in: path
        description: Inode to link the tag(s) to
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Tags linked to inode successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityTagInodesMapView'
        '400':
          description: Bad request - invalid tag name/ID or inode
          content:
            application/json: {}
        '401':
          description: Unauthorized - authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - insufficient permissions to link tags
          content:
            application/json: {}
        '404':
          description: Tag not found by the specified name or ID
          content:
            application/json: {}
        '500':
          description: Internal server error
          content:
            application/json: {}
  /api/v2/tags/{idOrName}:
    put:
      tags:
      - Tags
      summary: Update tag
      description: Updates a tag's name and site assignment. You can identify the tag by its UUID or by its name. When using a tag name, you must specify which site's tag you want to update via the siteId query parameter.
      operationId: updateTag
      parameters:
      - name: idOrName
        in: path
        description: Tag UUID or tag name
        required: true
        schema:
          type: string
      - name: siteId
        in: query
        description: Site ID for name-based lookups. Required when idOrName is a tag name
        schema:
          type: string
      requestBody:
        description: Updated tag data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTagForm'
        required: true
      responses:
        '200':
          description: Tag updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityRestTagView'
        '400':
          description: Bad Request - Invalid input data
          content:
            application/json: {}
        '401':
          description: Unauthorized - Authentication required
          content:
            application/json: {}
        '403':
          description: Forbidden - User does not have access to Tags portlet
          content:
            application/json: {}
        '404':
          description: Tag not found
          content:
            application/json: {}
        '409':
          description: Conflict - Tag name already exists on target site
          content:
            application/json: {}
        '500':
          description: Internal Server Error - Database or system error
          content:
            application/json: {}
components:
  schemas:
    RestTag:
      type: object
      properties:
        label:
          type: string
        siteId:
          type: string
        siteName:
          type: string
        persona:
          type: boolean
        id:
          type: string
    Pagination:
      type: object
      properties:
        currentPage:
          type: integer
          format: int32
        perPage:
          type: integer
          format: int32
        totalEntries:
          type: integer
          format: int64
    ResponseEntityBulkResultView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          $ref: '#/components/schemas/BulkResultView'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    MessageBodyWorkers:
      type: object
    ResponseEntityTagMapView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/RestTag'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    ErrorEntity:
      type: object
      properties:
        errorCode:
          type: string
        message:
          type: string
        fieldName:
          type: string
    BodyPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            type:
              type: string
            subtype:
              type: string
            parameters:
              type: object
              additionalProperties:
                type: string
            wildcardType:
              type: boolean
            wildcardSubtype:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
    ResponseEntityTagInodesMapView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: array
          items:
            $ref: '#/components/schemas/TagInode'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    UpdateTagForm:
      required:
      - siteId
      - tagName
      type: object
      properties:
        siteId:
          type: string
        tagName:
          type: string
        tagId:
          type: string
        name:
          type: string
    FormDataContentDisposition:
      type: object
      properties:
        type:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
        fileName:
          type: string
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        readDate:
          type: string
          format: date-time
        size:
          type: integer
          format: int64
        name:
          type: string
    ContentDisposition:
      type: object
      properties:
        type:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
        fileName:
          type: string
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        readDate:
          type: string
          format: date-time
        size:
          type: integer
          format: int64
    ResponseEntityRestTagView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          $ref: '#/components/schemas/RestTag'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    MessageEntity:
      type: object
      properties:
        message:
          type: string
    FormDataBodyPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            type:
              type: string
            subtype:
              type: string
            parameters:
              type: object
              additionalProperties:
                type: string
            wildcardType:
              type: boolean
            wildcardSubtype:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        formDataContentDisposition:
          $ref: '#/components/schemas/FormDataContentDisposition'
        simple:
          type: boolean
        name:
          type: string
        value:
          type: string
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
    BulkResultView:
      type: object
      properties:
        successCount:
          type: integer
          format: int64
        skippedCount:
          type: integer
          format: int64
        fails:
          type: array
          items:
            $ref: '#/components/schemas/FailedResultView'
    ResponseEntityTagCreateView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/RestTag'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    TagInode:
      type: object
      properties:
        inode:
          type: string
        tagId:
          type: string
        fieldVarName:
          type: string
        modDate:
          type: string
          format: date-time
    ParameterizedHeader:
      type: object
      properties:
        value:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
    ResponseEntityPaginatedDataView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: object
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    MultiPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            type:
              type: string
            subtype:
              type: string
            parameters:
              type: object
              additionalProperties:
                type: string
            wildcardType:
              type: boolean
            wildcardSubtype:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        bodyParts:
          type: array
          items:
            $ref: '#/components/schemas/BodyPart'
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
    FailedResultView:
      type: object
      properties:
        element:
          type: string
        errorMessage:
          type: string
    TagForm:
      required:
      - name
      type: object
      properties:
        name:
          type: string
        siteId:
          type: string
        ownerId:
          type: string
        persona:
          type: boolean
    ResponseEntityTagOperationView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: object
          additionalProperties:
            type: object
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    ResponseEntityBooleanView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    FormDataMultiPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            type:
              type: string
            subtype:
              type: string
            parameters:
              type: object
              additionalProperties:
                type: string
            wildcardType:
              type: boolean
            wildcardSubtype:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        bodyParts:
          type: array
          items:
            $ref: '#/components/schemas/BodyPart'
        fields:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/FormDataBodyPart'
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'