> ## 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.

# Create a new blog topic

> Create a new blog topic.



## OpenAPI

````yaml specs/legacy/v3/blog-topics-v3.json POST /blogs/v3/topics
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:
    post:
      tags:
        - Blog Topics
      summary: Create a new blog topic
      description: Create a new blog topic.
      operationId: createBlogTopic
      parameters:
        - name: casing
          in: query
          description: >-
            Use the casing=snake parameter to change the API's casing for
            allowed 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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewBlogTopic'
            example:
              name: Hey A New Topic
              description: This is a topic description
      responses:
        '201':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlogTopic'
              example:
                id: 349001123123123
                portalId: 62515
                name: Hey a new topic
                slug: hey-a-new-topic
                description: This is a topic description
                created: 1381896200000
                updated: 1381896200000
                deletedAt: 0
                totalPosts: null
                livePosts: null
                lastUsed: null
                associatedBlogIds: []
                publicUrl: null
                status: inactive
        default:
          $ref: '#/components/responses/Error'
      security:
        - oauth2_legacy:
            - content
        - private_apps_legacy:
            - content
components:
  schemas:
    NewBlogTopic:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: The topic name
        description:
          type: string
          description: The topic description
    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

````