> ## Documentation Index
> Fetch the complete documentation index at: https://buttercms.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List All Tags

> Retrieve a complete list of blog post tags with optional recent post data for tag-based navigation.

Retrieve a complete list of all blog post tags in your organization, providing granular categorization and labeling information for your blog content. This endpoint is essential for building tag-based navigation, content discovery features, and detailed content organization systems.

**Tag Information**: Returns the tag name and URL-friendly slug for each tag that contains published posts. Tags offer more granular content categorization than categories, allowing for detailed topical organization and improved content discoverability.

**Recent Posts Integration**: Use the `include=recent_posts` parameter to enrich the response with each tag's most recent blog posts. This is particularly useful for creating tag cloud interfaces, topic-based landing pages, and tag archive pages that showcase recent activity for specific topics.


## OpenAPI

````yaml /api/openapi/read_api.yaml get /tags/
openapi: 3.1.0
info:
  title: ButterCMS Read API
  version: 2.0.0
  description: >
    Read endpoints for the ButterCMS API — Pages, Collections, Blog Posts, Blog
    Metadata, and Feeds.
  contact:
    email: support@buttercms.com
  license:
    name: ButterCMS Terms of Service
    url: https://buttercms.com/terms/
servers:
  - url: https://api.buttercms.com/v2
    description: ButterCMS API v2
security:
  - readTokenAuthHeader: []
  - readTokenAuthQuery: []
tags:
  - name: Pages
    description: >
      Retrieve pages from your ButterCMS account.


      **Single Pages**: Use `*` as the page_type to get Single Pages (those
      without a Page Type) which represent unique pages on your site like your
      Homepage. Useful for creating your sitemap.xml.


      **Page Type Pages**: Use the actual page type slug to get pages of that
      specific type. Page Types allow you to create many pages with the same
      structure.


      **Note:** The fields of a page are defined by you, they are customizable.
      Sample responses below contain a basic set of fields for illustrative
      purposes.
  - name: Collections
    description: >
      Retrieve collection items from your ButterCMS account. Collections are
      flexible, user-defined content structures with completely customizable
      field schemas.


      See also: Architecture & Performance for guidance on `levels`, pagination,
      and performance best practices.
  - name: Blog posts
    description: >
      Retrieve blog posts from your ButterCMS account. List blog posts with
      pagination and filtering options, or retrieve individual posts by slug.
  - name: Blog metadata
    description: >
      Retrieve blog-related metadata including authors, categories, and tags.
      These endpoints provide access to the organizational structure of your
      blog content.
  - name: Feeds and utilities
    description: >
      Generate XML feeds for content syndication and SEO.


      - **RSS Feed**: Fully generated RSS 2.0 feed for your blog

      - **Atom Feed**: Standards-compliant Atom 1.0 feed

      - **Sitemap**: XML sitemap for search engine discovery


      All feeds can be filtered by category or tag and include only published
      content from your organization.
  - name: Images - Info
    description: >
      ButterCMS has an integration with
      [Filestack](https://www.filestack.com/docs/api/processing/) for image
      transformations. You can leverage their robust set of image transformation
      capabilities.


      After you upload an image, to create a thumbnail, here's an example:


      - **Original URL**: `https://cdn.buttercms.com/3ccPHhYHTNK2zQ14gCOy`

      - **Thumbnail URL**:
      `https://cdn.buttercms.com/resize=width:100,height:100/3ccPHhYHTNK2zQ14gCOy`


      For complete transformation options and parameters, see the [full
      Filestack documentation](https://www.filestack.com/docs/api/processing/).
paths:
  /tags/:
    get:
      tags:
        - Blog metadata
      summary: List All Tags
      description: >
        Retrieve a complete list of all blog post tags in your organization,
        providing granular categorization and labeling information for your blog
        content. This endpoint is essential for building tag-based navigation,
        content discovery features, and detailed content organization systems.


        **Tag Information**: Returns the tag name and URL-friendly slug for each
        tag that contains published posts. Tags offer more granular content
        categorization than categories, allowing for detailed topical
        organization and improved content discoverability.


        **Recent Posts Integration**: Use the `include=recent_posts` parameter
        to enrich the response with each tag's most recent blog posts. This is
        particularly useful for creating tag cloud interfaces, topic-based
        landing pages, and tag archive pages that showcase recent activity for
        specific topics.
      operationId: listAllTags
      parameters:
        - $ref: '#/components/parameters/auth_token'
        - name: include
          in: query
          required: false
          schema:
            type: string
            enum:
              - recent_posts
          description: >
            Include additional data in the response.


            When set to `recent_posts`, each tag object will include a
            `recent_posts` array containing the latest blog posts tagged with
            that tag.
          example: recent_posts
        - name: locale
          in: query
          description: >
            Filter the embedded `recent_posts` list to posts in the given locale
            (e.g. `en`, `es`). The tag itself is shared across locales and is
            always returned. When omitted, defaults to your organization's
            default locale.


            Returns `400` if the value is not a locale configured on your
            organization.
          required: false
          schema:
            type: string
            maxLength: 10
          example: en
      responses:
        '200':
          description: Tags retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListTagsResponse'
              examples:
                basic_tags:
                  summary: Basic tags list
                  value:
                    data:
                      - name: test tag
                        slug: test-tag
                      - name: API Development
                        slug: api-development
                      - name: Tutorial
                        slug: tutorial
                      - name: Best Practices
                        slug: best-practices
                      - name: JavaScript
                        slug: javascript
                tags_with_posts:
                  summary: Tags with recent posts included
                  value:
                    data:
                      - name: API Development
                        slug: api-development
                        recent_posts:
                          - slug: rest-api-best-practices
                            title: REST API Best Practices for Modern Development
                            published: '2024-01-22T09:00:00.000Z'
                          - slug: graphql-vs-rest
                            title: 'GraphQL vs REST: Choosing the Right API'
                            published: '2024-01-18T14:30:00.000Z'
                      - name: JavaScript
                        slug: javascript
                        recent_posts:
                          - slug: es2024-features
                            title: New JavaScript Features in ES2024
                            published: '2024-01-20T11:00:00.000Z'
                          - slug: async-await-patterns
                            title: Advanced Async/Await Patterns
                            published: '2024-01-16T13:45:00.000Z'
        '401':
          $ref: '#/components/responses/UnauthorizedResponse'
      security:
        - readTokenAuthHeader: []
        - readTokenAuthQuery: []
components:
  parameters:
    auth_token:
      name: auth_token
      in: query
      required: false
      schema:
        type: string
      description: |
        Your ButterCMS read API token
      example: your_api_token
  schemas:
    ListTagsResponse:
      type: object
      description: Response structure for listing all tags
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/TagObjectWithPosts'
          description: Array of tag objects
    TagObjectWithPosts:
      type: object
      description: Tag information with optional recent posts
      properties:
        name:
          type: string
          description: Display name of the tag
          example: API Development
        slug:
          type: string
          description: URL-friendly slug of the tag
          example: api-development
        recent_posts:
          type: array
          items:
            $ref: '#/components/schemas/TagRecentPost'
          description: >-
            Array of recent posts with this tag (only included when
            include=recent_posts parameter is used)
    ErrorResponse:
      type: object
      properties:
        detail:
          type: string
          description: Error message describing what went wrong
          example: Authentication credentials were not provided
    TagRecentPost:
      type: object
      description: Simplified blog post information for tag's recent posts
      properties:
        slug:
          type: string
          description: Blog post slug/identifier
          example: rest-api-best-practices
        title:
          type: string
          description: Blog post title
          example: REST API Best Practices for Modern Development
        published:
          type: string
          format: date-time
          description: Publication date and time in ISO 8601 format
          example: '2024-01-22T09:00:00.000Z'
  responses:
    UnauthorizedResponse:
      description: Unauthorized - Invalid or missing API token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missing_token:
              summary: Missing API token
              value:
                detail: Authentication credentials were not provided
            invalid_token:
              summary: Invalid API token
              value:
                detail: Invalid token
  securitySchemes:
    readTokenAuthHeader:
      type: apiKey
      in: header
      name: Authorization
      description: |
        Set the `Authorization` header to `Token your_read_api_token`.

        Example: `Authorization: Token abc123def456`

        Note: The header value includes the `Token` prefix.

        You can access your API token from your settings page.
    readTokenAuthQuery:
      type: apiKey
      in: query
      name: auth_token
      description: >
        Pass your API token via the `auth_token` parameter on every request:
        `?auth_token=your_read_api_token`.


        You can access your API token from your settings page.


        Requests made with a missing or invalid token will get a 401
        Unauthorized response. All requests must be made over HTTPS.

````