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

# Search blog topics

> Search for blog topics by various criteria. See the options below for details about filtering. Supports paging for the case where a large number of topics match the criteria. Some parameters support "range" filters via double-underscored param suffixes, like `__gt`. If a parameter supports a filter type of 'gt', that means you can append a double-underscore and 'gt' to the parameter name to find all items greater than a specified value.



## OpenAPI

````yaml specs/legacy/v3/blog-topics-v3.json GET /blogs/v3/topics/search
openapi: 3.0.1
info:
  title: HubSpot Blog Topics API v3
  description: >-
    Use the blog topics API to create and manage blog topics in a HubSpot
    account.
  version: v3
  x-hubspot-product-tier: Marketing Hub
  x-hubspot-documentation-banner: Content API
servers:
  - url: https://api.hubapi.com
security: []
tags:
  - name: Blog Topics
    description: Blog topics operations
paths:
  /blogs/v3/topics/search:
    get:
      tags:
        - Blog Topics
      summary: Search blog topics
      description: >-
        Search for blog topics by various criteria. See the options below for
        details about filtering. Supports paging for the case where a large
        number of topics match the criteria. Some parameters support "range"
        filters via double-underscored param suffixes, like `__gt`. If a
        parameter supports a filter type of 'gt', that means you can append a
        double-underscore and 'gt' to the parameter name to find all items
        greater than a specified value.
      operationId: searchBlogTopics
      parameters:
        - name: id
          in: query
          description: >-
            Search for topics by id. Supports exact value matching and the 'in'
            range filter (e.g. `id__in=348109009,348109019`)
          schema:
            type: string
        - name: name
          in: query
          description: >-
            Search for topics by name. Supports exact value matching, 'contains'
            searching, and 'icontains' case-insensitive searching (e.g.
            `name__contains=topic1`)
          schema:
            type: string
        - name: slug
          in: query
          description: Search for topics by slug. Supports exact value matching
          schema:
            type: string
        - name: created
          in: query
          description: >-
            Filter results by creation date, in milliseconds since the epoch.
            Supports exact value matching and the following range filters:
            range, gt, gte, lt, lte
          schema:
            type: integer
            format: int64
        - name: limit
          in: query
          description: The maximum number of items to return. Defaults to 100.
          schema:
            type: integer
            default: 100
        - name: offset
          in: query
          description: >-
            The offset from the beginning of the result set from which to start
            returning results. Used for paging. Defaults to 0.
          schema:
            type: integer
            default: 0
        - name: casing
          in: query
          description: >-
            Use the casing=snake parameter to change the API's casing for all
            query parameters (including those above) and JSON fields (below) to
            snake_case, rather than camelCase, which is the default. This option
            is provided for backwards-compatibility and ease of migration from
            Content v2 APIs, which used snake_case.
          schema:
            type: string
            enum:
              - snake
        - name: q
          in: query
          description: Search for topics whose names or url slugs contain the given string.
          schema:
            type: string
        - name: active
          in: query
          description: >-
            Filter topics by whether or not they are associated with any
            published blog posts (true or false).
          schema:
            type: boolean
        - name: blog
          in: query
          description: Filter topics by a blog they are used on (value is a blog ID).
          schema:
            type: integer
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogTopicSearchResponse'
              example:
                limit: 100
                objects:
                  - associatedBlogIds: []
                    created: 1435001222059
                    deletedAt: 0
                    description: tester9
                    id: 2986692016
                    livePosts: 0
                    name: tester9
                    portalId: 62515
                    slug: tester9
                    status: inactive
                    totalPosts: 0
                    updated: 1435001222059
                  - associatedBlogIds: []
                    created: 1435000911447
                    deletedAt: 0
                    description: tester7
                    id: 3002998727
                    livePosts: 0
                    name: tester7
                    portalId: 62515
                    slug: tester7
                    status: inactive
                    totalPosts: 0
                    updated: 1435000911447
                  - associatedBlogIds: []
                    created: 1435001176206
                    deletedAt: 0
                    description: tester8
                    id: 3009829029
                    livePosts: 0
                    name: tester8
                    portalId: 62515
                    slug: tester8
                    status: inactive
                    totalPosts: 0
                    updated: 1435001176206
                offset: 0
                total: 3
                totalCount: 3
        default:
          $ref: '#/components/responses/Error'
      security:
        - oauth2_legacy:
            - content
        - private_apps_legacy:
            - content
components:
  schemas:
    BlogTopicSearchResponse:
      type: object
      properties:
        objects:
          type: array
          items:
            $ref: '#/components/schemas/BlogTopic'
        limit:
          type: integer
        offset:
          type: integer
        total:
          type: integer
        totalCount:
          type: integer
    BlogTopic:
      type: object
      properties:
        id:
          type: integer
          format: int64
          description: The unique id of the topic
        portalId:
          type: integer
          description: The hub id
        name:
          type: string
          description: The topic name
        slug:
          type: string
          description: The URL-friendly version of the topic, used in blog urls
        description:
          type: string
          description: The topic description
        created:
          type: integer
          format: int64
          description: When the topic was first created, in milliseconds since the epoch
        updated:
          type: integer
          format: int64
          description: When the topic was last updated, in milliseconds since the epoch
        deletedAt:
          type: integer
          format: int64
          description: >-
            When the topic was deleted, in milliseconds since the epoch. Zero if
            the topic was never deleted. Use a DELETE request to properly soft
            delete a topic - do not set this value directly.
        totalPosts:
          type: integer
          nullable: true
          description: >-
            The total count of posts (including drafts) associated with this
            topic.
        livePosts:
          type: integer
          nullable: true
          description: The total count of published posts associated with this topic.
        lastUsed:
          type: integer
          format: int64
          nullable: true
          description: >-
            The most recent publish date of a blog post associated with this
            topic, in milliseconds since the epoch.
        associatedBlogIds:
          type: array
          items:
            type: integer
          description: A list of the blog IDs where this topic has been used.
        publicUrl:
          type: string
          nullable: true
          description: The public URL for the topic
        status:
          type: string
          description: The status of the topic
    Error:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: >-
            A human readable message describing the error along with remediation
            steps where appropriate
        correlationId:
          type: string
          description: >-
            A unique identifier for the request. Include this value with any
            error reports or support tickets
        category:
          type: string
          description: The error category
        links:
          type: object
          additionalProperties:
            type: string
          description: >-
            A map of link names to associated URIs containing documentation
            about the error or recommended remediation steps
  responses:
    Error:
      description: An error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    oauth2_legacy:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hubspot.com/oauth/authorize
          tokenUrl: https://api.hubapi.com/oauth/v1/token
          scopes:
            content: Read from and write to my Content
    private_apps_legacy:
      type: apiKey
      name: private-app-legacy
      in: header

````