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

# Create Monitored Topics

> Creates one or more Monitored Topics, each owned by the given user. New topics are not bound to any campaign yet. Returns one result per requested element, in request order: the saved Monitored Topic, or the reason that element was not applied (access, plan cap, not found). Other elements are unaffected.



## OpenAPI

````yaml https://api.goextrovert.com/client/v2/docs-json post /client/v2/monitored-topics
openapi: 3.1.0
info:
  title: Extrovert Client API
  description: >-
    Public API for Extrovert platform integration. Use your API key for
    authentication.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.goextrovert.com/
    description: API Server
security: []
tags: []
paths:
  /client/v2/monitored-topics:
    post:
      tags:
        - Monitored Topics
      summary: Create Monitored Topics
      description: >-
        Creates one or more Monitored Topics, each owned by the given user. New
        topics are not bound to any campaign yet. Returns one result per
        requested element, in request order: the saved Monitored Topic, or the
        reason that element was not applied (access, plan cap, not found). Other
        elements are unaffected.
      operationId: RelevantPostTagClientApiController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRequestDto5'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateResponseDto5'
        '401':
          description: Invalid or missing API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientApiErrorResponseDto'
      security:
        - api-key: []
components:
  schemas:
    CreateRequestDto5:
      type: object
      properties:
        items:
          type: array
          minItems: 1
          maxItems: 25
          items:
            type: object
            properties:
              name:
                type: string
                minLength: 1
                description: >-
                  Topic name also feeds search-string generation with its
                  description; it is not only a display label.
                examples:
                  - AI agents
                  - B2B SaaS pricing
              description:
                type: string
                minLength: 1
                maxLength: 400
                description: >-
                  Matching scope and exclusions (up to 400 characters); used
                  with the name to generate Topic-campaign searches and classify
                  posts. Editing a bound topic regenerates its campaign's full
                  topic set before an atomic save.
              ownerId:
                type: string
                format: uuid
                description: >-
                  Owner user ID. You may use your own account; access to another
                  owner requires permitted workspace customization access to
                  that creator or access through a campaign shared by that
                  owner. Workspace membership alone is not sufficient.
                examples:
                  - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
            required:
              - name
              - description
              - ownerId
          description: >-
            Elements to apply, 1 to 25. Each element is applied on its own and
            gets its own result, in the same order; a failed element does not
            affect the others.
      required:
        - items
    CreateResponseDto5:
      type: object
      properties:
        status:
          type: string
          const: success
          description: Response status
        data:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
                minimum: 0
                maximum: 9007199254740991
                description: Position of the element in the request list, starting at 0.
              id:
                description: >-
                  Element ID. Present for every updated or deleted element, and
                  for a created element once it was saved.
                type: string
                format: uuid
              item:
                description: The element as saved. Absent when the element failed.
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Monitored Topic ID.
                    examples:
                      - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                  updatedAt:
                    type: string
                    description: >-
                      Timestamp of the most recent update to the Monitored
                      Topic.
                    examples:
                      - '2025-06-30T14:02:07.456Z'
                      - '2025-07-03T08:30:00.000Z'
                  createdAt:
                    type: string
                    description: Timestamp when the Monitored Topic was created.
                    examples:
                      - '2025-06-30T14:02:07.456Z'
                      - '2025-07-03T08:30:00.000Z'
                  name:
                    type: string
                    description: Short topic name (e.g. 'AI agents', 'B2B SaaS pricing').
                  description:
                    type: string
                    description: >-
                      Describe what makes a post qualify for this topic — what
                      it should be about, and what should be excluded. Used by
                      the AI matcher when scanning posts.
                  campaign:
                    description: >-
                      Topic campaign this Monitored Topic is bound to, if any -
                      only `id` and `name` are exposed. Omitted in JSON when the
                      topic is not bound to a campaign.
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Stable Extrovert entity ID.
                        examples:
                          - 8d256aa6-9b12-49a7-93ee-bf41634b5b60
                      name:
                        type: string
                        description: Customer-facing entity name.
                    required:
                      - id
                      - name
                required:
                  - id
                  - updatedAt
                  - createdAt
                  - name
                  - description
              error:
                description: >-
                  Why this element was not applied. Absent when the element
                  succeeded; the other elements are unaffected.
                type: object
                properties:
                  code:
                    type: string
                    description: >-
                      Status name of the failure, e.g. `NOT_FOUND`,
                      `PERMISSION_DENIED`, `INVALID_ARGUMENT`, `INTERNAL`.
                  message:
                    type: string
                    description: Human-readable reason this element was not applied.
                required:
                  - code
                  - message
            required:
              - index
          description: One result per requested Monitored Topic, in request order.
        message:
          type: string
          description: Success message
          examples:
            - Operation completed successfully
      required:
        - status
        - data
        - message
    ClientApiErrorResponseDto:
      type: object
      properties:
        status:
          type: string
          description: Response status
          example: error
          enum:
            - error
        data:
          type: object
          description: Response data
          example: null
          nullable: true
        message:
          type: string
          description: Error message
          example: An error occurred while processing the request
      required:
        - status
        - data
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: X-API-Key
      description: API Key for authentication

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.