Qloo Analysis API

Features for anaylzing and comparing entities.

Operations 1

GET /v2/analysis/compare Analysis Compare #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/qloo-com:qloo-com-analysis-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

qloo-com-analysis-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Qloo Analysis API
  version: '2.0'
  description: Qloo's API
  contact:
    name: Support
    email: support@qloo.com
servers:
- url: https://api.qloo.com
  description: Production Qloo API server
security:
- ApiKey: []
tags:
- name: Analysis
  description: Features for anaylzing and comparing entities.
paths:
  /v2/analysis/compare:
    get:
      summary: Analysis Compare
      x-readme-title: Analysis Compare
      operationId: analysis-compare
      description: Analyze and compare two groups of entities.
      tags:
      - Analysis
      parameters:
      - name: a.signal.interests.entities
        in: query
        required: true
        description: The first group of entities to base the comparison on.
        schema:
          type: array
          items:
            type: string
        examples:
          example1:
            value:
            - entity5
      - name: b.signal.interests.entities
        in: query
        required: true
        description: The second group of entities to base the comparison on.
        schema:
          type: array
          items:
            type: string
        examples:
          example1:
            value:
            - entity5
      - name: filter.type
        in: query
        required: false
        description: The category to search against.
        style: form
        explode: false
        schema:
          type: array
          items:
            description: 'Qloo Types supported by Insights API. Note: `urn:entity:locality` is partially supported and only allows `signal.interests.entities` when the provided entities are localities.

              '
            type: string
            enum:
            - urn:entity:artist
            - urn:entity:book
            - urn:entity:brand
            - urn:entity:locality
            - urn:entity:movie
            - urn:entity:person
            - urn:entity:place
            - urn:entity:podcast
            - urn:entity:tv_show
            - urn:entity:videogame
            - urn:heatmap
            - urn:entity:audience
            x-enum-descriptions:
            - Artist
            - Book
            - Brand
            - Locality (partially supported)
            - Movie
            - Person
            - Place
            - Podcast
            - TV show
            - Videogame
            - Heatmap
            - Audience (deprecated)
            examples:
            - summary: Artist type
              value: urn:entity:artist
            - summary: TV show type
              value: urn:entity:tv_show
        examples:
          movie-and-tv:
            value:
            - urn:entity:movie
            - urn:entity:tv_show
      - name: filter.entities.query
        in: query
        description: 'A query string used to search for entity IDs to filter results. This allows

          you to supply a human-readable term which the system resolves to one or more

          matching entity identifiers.

          '
        required: false
        schema:
          type: string
          examples:
          - restaurant
      - name: filter.exclude.entities.query
        in: query
        description: 'This parameter can only be supplied when using POST HTTP method, since it requires JSON encoded body.

          The value for `filter.exclude.entities.query` is a JSON array with objects containing the `name` and `address` properties.

          For a fuzzier search, just include an array of strings.

          When supplied, it overwrites the `filter.exclude.entities` object with resolved entity IDs.

          The response will contain a path `query.entities.exclude`, with partial Qloo entities that were matched by the query.

          If no entities are found, the API will throw a `400` error.

          '
        required: false
        style: form
        explode: false
        schema:
          type: array
          items:
            oneOf:
            - type: object
              properties:
                name:
                  type: string
                address:
                  type: string
            - type: string
          examples:
          - name: Balthazar
            address: 80 Spring St, New York
          - Balthazar
      - name: filter.location.query
        in: query
        description: "A text-based name lookup used to search for one or more named `urn:entity:locality` Qloo IDs for filtering requests. This parameter performs fuzzy text matching only — it will not work with a UUID or Qloo entity ID. To pass a locality ID directly, use `filter.location` instead.\n  - For **GET requests**: Provide a single locality query as a string.\n  - For **POST requests**:\n    - You can still send a single locality as a string.\n    - Or you can send an array of locality names to query multiple localities\nat once. When multiple localities are provided, their geographic shapes are merged, and the system returns results with the highest affinities across the combined area.\nLocality queries are fuzzy-matched and case-insensitive. Examples include `New York City`, `Garden City`, `New York`, `Los Angeles`, `Lower East Side`, and AKAs like `The Big Apple`. When a single locality is supplied, the response JSON includes `query.locality.signal` with the matched Qloo entity. If multiple are supplied, this field is omitted. By default, the API includes a tuning that also captures nearby entities just outside the official boundaries of the locality. To turn this off and limit results strictly to within the locality, set `filter.location.radius=0`. If no localities are found, the API returns a 400 error.\n"
        required: false
        schema:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        examples:
          singleLocality:
            summary: A single locality string
            value: New York City
          multipleLocalities:
            summary: An array of locality strings (POST only)
            value:
            - Miami
            - Miami Beach
      - name: filter.location.radius
        in: query
        description: 'Filter by the radius (in meters) when also supplying `filter.location` or `filter.location.query`.

          When a locality is passed via `filter.location` or `filter.location.query` and this parameter is **not provided**, the API expands the locality boundary by the lesser of 10% of the locality''s diameter or 2,414 meters (~1.5 miles).

          Setting this parameter to **0** disables this padding and restricts results strictly to within the locality boundary.

          A larger value pads the boundary by that radius in meters.

          '
        required: false
        schema:
          type: integer
          default: 15000
          maximum: 800000
        examples:
          defaultRadius:
            summary: Custom radius in meters
            value: 10000
          disableTuning:
            summary: Turn off default tuning behavior
            value: 0
      - name: filter.exclude.location.query
        in: query
        description: "A query used to exclude results based on one or more named `urn:entity:locality` Qloo IDs, resolved from fuzzy-matched locality names.   This is equivalent to passing the resolved Locality Qloo ID(s) into `filter.exclude.location`.\n- For **GET requests**: Provide a single locality query as a string. - For **POST requests**:\n  - You can still send a single locality as a string.\n  - Or send an array of locality names to exclude multiple areas at once. When\nmultiple localities are provided, their geographic shapes are merged, and the system excludes results from across the combined area.\nLocality queries are case-insensitive and support common AKAs (e.g., `The Big Apple` for New York).   When a single locality is supplied, the response includes `query.locality.exclude.signal` with the matched Qloo entity.   If multiple are supplied, this field is omitted. If no localities are matched, the API returns a 400 error.\n"
        required: false
        schema:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        examples:
          singleLocality:
            summary: A single locality to exclude
            value: Williamsburg
          multipleLocalities:
            summary: Multiple localities to exclude (POST only)
            value:
            - Chelsea
            - SoHo
      - name: filter.exclude.location.radius
        in: query
        description: 'Radius (in meters) to apply when excluding a location defined by

          `filter.exclude.location.id` or `filter.exclude.location.query`. A value of

          `0` restricts exclusion strictly to the boundary; a positive value expands the

          exclusion zone.

          '
        required: false
        schema:
          type: integer
          examples:
          - 10000
      - name: filter.subtype
        in: query
        required: false
        description: Subtype to filter on.
        schema:
          type: string
          enum:
          - urn:tag:occupation
          - urn:tag:genre
        examples:
          genre-example:
            value: urn:tag:genre
      - name: model
        in: query
        required: false
        description: Model to base results on.
        schema:
          type: string
          enum:
          - descriptive
          - predictive
        examples:
          descriptive-example:
            value: descriptive
      - name: page
        in: query
        description: The page number
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 100
          default: 1
        examples:
          default:
            value: 1
      - name: take
        in: query
        required: false
        description: 'The number of results to return. Default is `20`. The maximum allowed is `50`.

          To retrieve additional results, use the `page` parameter to access the next page of results. This is the recommended approach for pagination.

          For specific cases, the `offset` parameter can be used with `take` to skip a set number of results.

          '
        schema:
          type: integer
          default: 20
          minimum: 1
          maximum: 50
          examples:
          - 10
      - name: offset
        in: query
        description: The number of results to skip, starting from 0. Allows arbitrary offsets but is less commonly used than `page`.
        schema:
          type: integer
          examples:
          - 5
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    success:
                      type: boolean
                      examples:
                      - summary: Indicates the request was successful
                        value: true
                    duration:
                      type: number
                      format: float
                      examples:
                      - summary: Time taken to process the request (in seconds)
                        value: 0.1
                - type: object
                  properties:
                    results:
                      type: array
                      items:
                        oneOf:
                        - $include#1: ./Common.yml
                          $include#2: ./UniqueToArtist.yml
                        - $include#1: ./Common.yml
                          $include#2: ./UniqueToGeolocational.yml
                        - $include#1: ./Common.yml
                          $include#2: ./UniqueToMovie.yml
                        - $include#1: ./Common.yml
                          $include#2: ./UniqueToTV.yml
                        - $include#1: ./Common.yml
                          $include#2: ./UniqueToVideogame.yml
                      examples:
                      - $include: ../../examples/entity.yml
        '404':
          description: No results
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: number
                    description: HTTP error code
                  reason:
                    type: string
                    description: Description of error code
                  message:
                    type: string
                    description: Detailed description of why the request failed, where available.
                examples:
                - code: 400
                  reason: Bad Request
                  message: entity_ids must be specified.
        '429':
          description: Rate limit exceeded
          headers: {}
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: number
                    description: HTTP error code
                  reason:
                    type: string
                    description: Description of error code
                  message:
                    type: string
                    description: Detailed description of why the request failed, where available.
                examples:
                - code: 400
                  reason: Bad Request
                  message: entity_ids must be specified.
components:
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Api-Key
x-provenance:
  method: searched
  source: https://docs.qloo.com/reference
  harvested: '2026-10-21'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://docs.qloo.com/reference/analysis-compare.md
  - https://docs.qloo.com/reference/api-information.md
  - https://docs.qloo.com/reference/get-audience-types.md
  - https://docs.qloo.com/reference/get-audiences.md
  - https://docs.qloo.com/reference/get-entities.md
  - https://docs.qloo.com/reference/get-search.md
  - https://docs.qloo.com/reference/get-tag-types.md
  - https://docs.qloo.com/reference/get-trending.md
  - https://docs.qloo.com/reference/insights-api-deep-dive.md
  - https://docs.qloo.com/reference/search-tags.md
  merge:
    pages: 10
    deduped: 9
    conflicts_kept_first: 0