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

# Map an audience

> The channels an audience also watches, grouped by shared commenters, with people counts. Built from real YouTube comment data; takes a few seconds the first time.

Scope: `exploration:read`.



## OpenAPI

````yaml /api-reference/openapi.json post /exploration/map
openapi: 3.1.0
info:
  title: Fandom API
  version: 1.0.0
  description: >-
    Campaigns, targeting, audiences, data stores, brands and Audience
    Exploration. The same operations are available as MCP tools at /mcp.
servers:
  - url: https://fandom-api-preview.vercel.app/api/v1
  - url: https://www.fandom.ai/api/v1
security:
  - bearerAuth: []
tags:
  - name: Workspace
    description: What's in the workspace.
  - name: Campaigns
    description: Campaigns, as the app's Marketing section shows them.
  - name: Targeting
    description: Keywords, segments, topics and websites for each audience on a campaign.
  - name: Google Ads
    description: Connected accounts, performance, and creating campaigns in Google Ads.
  - name: Audiences
    description: Saved audiences you can attach to campaigns.
  - name: Data stores
    description: >-
      YouTube channels and videos, with their comments, that audiences are built
      from.
  - name: Brands
    description: Brands that campaigns belong to.
  - name: Audience Exploration
    description: >-
      Who an audience is on YouTube: the channels they watch and how they group.
      Invite-only for now.
paths:
  /exploration/map:
    post:
      tags:
        - Audience Exploration
      summary: Map an audience
      description: >-
        The channels an audience also watches, grouped by shared commenters,
        with people counts. Built from real YouTube comment data; takes a few
        seconds the first time.


        Scope: `exploration:read`.
      operationId: build_exploration_map
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sources:
                  type: array
                  items:
                    anyOf:
                      - type: object
                        properties:
                          type:
                            type: string
                            const: channel
                          channelId:
                            type: string
                            pattern: ^UC[A-Za-z0-9_-]{22}$
                            description: >-
                              YouTube channel id, e.g.
                              `UCX6OQ3DkcsbYNE6H8uQQuVA`.
                        required:
                          - type
                          - channelId
                        additionalProperties: false
                      - type: object
                        properties:
                          type:
                            type: string
                            const: query
                          query:
                            type: string
                            minLength: 2
                            maxLength: 200
                            description: Describe the audience in plain words.
                        required:
                          - type
                          - query
                        additionalProperties: false
                      - type: object
                        properties:
                          type:
                            type: string
                            const: brand
                          brandId:
                            type: string
                            pattern: ^[a-f0-9]{24}$
                            description: Brand id.
                        required:
                          - type
                          - brandId
                        additionalProperties: false
                      - type: object
                        properties:
                          type:
                            type: string
                            const: audience
                          audienceId:
                            type: string
                            pattern: ^[a-f0-9]{24}$
                            description: Audience id.
                        required:
                          - type
                          - audienceId
                        additionalProperties: false
                  minItems: 1
                  maxItems: 8
                  description: What to map. Combine up to 8.
                size:
                  type: integer
                  minimum: 40
                  maximum: 160
                  description: Most channels on the map. Default 110.
              required:
                - sources
              additionalProperties: false
            example:
              sources:
                - type: channel
                  channelId: UCX6OQ3DkcsbYNE6H8uQQuVA
              size: 110
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  title:
                    type: string
                  builtAt:
                    type: string
                  notes:
                    type: array
                    items:
                      type: string
                    description: Coverage caveats worth showing to people.
                  audience:
                    anyOf:
                      - type: object
                        properties:
                          corePeople:
                            type: number
                          totalPeople:
                            type: number
                          totalComments:
                            type: number
                        required:
                          - corePeople
                          - totalPeople
                          - totalComments
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      People counts. Null when they could not be measured in
                      time.
                  groups:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        name:
                          type: string
                        kind:
                          type: string
                          enum:
                            - core
                            - adjacent
                            - unconnected
                          description: >-
                            `core` is the audience you asked about; `adjacent`
                            groups share its commenters.
                        themes:
                          type: array
                          items:
                            type: string
                        relevance:
                          type:
                            - number
                            - 'null'
                        channelIds:
                          type: array
                          items:
                            type: string
                        people:
                          type:
                            - number
                            - 'null'
                          description: Distinct commenters (sampled, then scaled).
                        reach:
                          type:
                            - number
                            - 'null'
                          description: Share of the core audience found here, 0–1.
                        concentration:
                          type:
                            - number
                            - 'null'
                          description: >-
                            Share of these people who are in the core audience,
                            0–1.
                        fanDensity:
                          type:
                            - number
                            - 'null'
                          description: >-
                            How over-represented the core audience is here (1.3
                            = 30% more than elsewhere on the map). Null for the
                            core itself.
                      required:
                        - id
                        - name
                        - kind
                        - themes
                        - relevance
                        - channelIds
                        - people
                        - reach
                        - concentration
                        - fanDensity
                      additionalProperties: false
                  channels:
                    type: array
                    items:
                      type: object
                      properties:
                        channelId:
                          type: string
                        title:
                          type: string
                        handle:
                          type:
                            - string
                            - 'null'
                        imageUrl:
                          type: string
                        subscribers:
                          type: number
                        country:
                          type:
                            - string
                            - 'null'
                        groupId:
                          type: number
                        seed:
                          type: boolean
                          description: One of the channels the map was built from.
                        relevance:
                          type:
                            - number
                            - 'null'
                        sharedCommenters:
                          type: number
                        audienceThemes:
                          type: array
                          items:
                            type: string
                        contentThemes:
                          type: array
                          items:
                            type: string
                        people:
                          type:
                            - number
                            - 'null'
                          description: Distinct commenters (sampled, then scaled).
                        reach:
                          type:
                            - number
                            - 'null'
                          description: Share of the core audience found here, 0–1.
                        concentration:
                          type:
                            - number
                            - 'null'
                          description: >-
                            Share of these people who are in the core audience,
                            0–1.
                        fanDensity:
                          type:
                            - number
                            - 'null'
                          description: >-
                            How over-represented the core audience is here (1.3
                            = 30% more than elsewhere on the map). Null for the
                            core itself.
                      required:
                        - channelId
                        - title
                        - handle
                        - imageUrl
                        - subscribers
                        - country
                        - groupId
                        - seed
                        - relevance
                        - sharedCommenters
                        - audienceThemes
                        - contentThemes
                        - people
                        - reach
                        - concentration
                        - fanDensity
                      additionalProperties: false
                required:
                  - title
                  - builtAt
                  - notes
                  - audience
                  - groups
                  - channels
                additionalProperties: false
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  responses:
    BadRequest:
      description: >-
        The request is missing something or has a bad value. The message says
        what.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: No API key, or the key is wrong or revoked.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: >-
        The key doesn't have the scope, or isn't allowed this campaign or
        account.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: More than 120 requests in a minute. Wait and retry.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Stable, machine-readable.
              examples:
                - not_found
            message:
              type: string
              description: Plain-language explanation.
            requestId:
              type: string
              description: Quote this when asking for help.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An API key from Settings → API access, starting with `fnd_`.

````

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