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

# Market Map

> Generates a long list of companies operating in a given market, enriched with structured data.
Supports filtering by geography, company type, employee count, funding stage, financial metrics, and more.
Returns a `request_id` for async polling.


## Overview

The Market Map API generates a long list of companies operating in a given market (e.g., *"AI-powered CRM software"*), enriched with structured data. Optionally, you can refine the output by specifying keywords, sample companies, geography, company type, employee count, funding stage, and more. Returns request\_id as a response.

## Endpoint Details

* Method: POST
* Endpoint: `/api/enterprise/market-map/enrich/`

## Authentication Requirements

* Include a valid JWT token in your request header
* If you don't have a token yet, you can get one from the `/auth/token/` endpoint first.

## Request

#### Header Parameters

<ParamField header="Authorization" type="string" required>
  JWT token obtained from the Authentication request
</ParamField>

### Body Parameters

<ParamField body="topic" type="string" required>
  The market or product category to map (e.g. `"AI-powered CRM software"`)
</ParamField>

<ParamField body="parameters" type="object">
  Filter parameters object. All fields inside are optional, but **must always be included in the request body** — send empty values (`""`, `[]`, `{}`) for any fields you do not want to filter on.

  <ParamField body="detailed_query" type="string">
    A more descriptive query to refine the market map scope
  </ParamField>

  <ParamField body="keywords" type="string[]">
    Keywords used to identify and filter relevant companies.
  </ParamField>

  <ParamField body="sample_companies" type="string[]">
    Permalinks of representative companies or their complete URLs to anchor the market map.
  </ParamField>

  <ParamField body="geography" type="string[]">
    Geographic scope. It should be a comma separated list of ISO country codes. (Eg.. `["USA", "GBR"]`)
  </ParamField>

  <ParamField body="company_type" type="string[]">
    Type of company to include. Accepted values: `"private"`, `"public"`, `"all"`
  </ParamField>

  <ParamField body="employee_count" type="string[]">
    Filter by employee headcount range. Pass an empty array to include all headcounts.

    Supporting array values: `1-10`, `11-50`, `51-100`, `101-250`, `251-500`, `501-1000`, `1001-5000`, `5001-10000`, `10000+`
  </ParamField>

  <ParamField body="founded_year" type="object">
    Filter by company founding year.

    <ParamField body="from" type="integer">
      Minimum founding year (inclusive), e.g. `2010`
    </ParamField>

    <ParamField body="to" type="integer">
      Maximum founding year (inclusive), e.g. `2020`
    </ParamField>
  </ParamField>

  <ParamField body="funding_stage" type="string[]">
    Filter by funding stage (e.g. `"Series A"`, `"Series B"`). Pass an empty array to include all stages.

    Supporting array values: `Non-Equity Assistance`, `Angel round`, `Pre-seed`, `Seed`, `Series A`, `Series B`, `Series C`, `Series D`, `Series E`, `Series F`, `Series G`, `Series H`, `Series I`, `Series J`, `Corporate-Funded`, `Debt-Funded`, `Private equity round`, `Others`
  </ParamField>

  <ParamField body="total_funding" type="object">
    Filter by total funding amount raised (in USD).

    <ParamField body="from" type="number">
      Minimum total funding in USD, e.g. `1000000`
    </ParamField>

    <ParamField body="to" type="number">
      Maximum total funding in USD, e.g. `50000000`
    </ParamField>
  </ParamField>

  <ParamField body="last_funding_round" type="object">
    Filter by last funding round amount (in USD).

    <ParamField body="from" type="number">
      Minimum last funding round in USD, e.g. `500000`
    </ParamField>

    <ParamField body="to" type="number">
      Maximum last funding round in USD, e.g. `20000000`
    </ParamField>
  </ParamField>

  <ParamField body="revenue" type="object">
    Filter by annual revenue (in USD).

    <ParamField body="from" type="number">
      Minimum annual revenue in USD, e.g. `500000`
    </ParamField>

    <ParamField body="to" type="number">
      Maximum annual revenue in USD, e.g. `10000000`
    </ParamField>
  </ParamField>

  <ParamField body="ebitda" type="object">
    Filter by EBITDA (in USD).

    <ParamField body="from" type="number">
      Minimum EBITDA in USD
    </ParamField>

    <ParamField body="to" type="number">
      Maximum EBITDA in USD
    </ParamField>
  </ParamField>

  <ParamField body="net_income" type="object">
    Filter by net income (in USD).

    <ParamField body="from" type="number">
      Minimum net income in USD
    </ParamField>

    <ParamField body="to" type="number">
      Maximum net income in USD
    </ParamField>
  </ParamField>

  <ParamField body="ev_ebitda" type="object">
    Filter by EV/EBITDA multiple.

    <ParamField body="from" type="number">
      Minimum EV/EBITDA multiple
    </ParamField>

    <ParamField body="to" type="number">
      Maximum EV/EBITDA multiple
    </ParamField>
  </ParamField>
</ParamField>

### Response

A successful response returns a `request_id` that can be used to track the status of the request.

#### Successful Response Fields

<ResponseField name="request_id" type="string">
  Unique identifier for the request posted. Use this with the `/api/enterprise/request/status/` endpoint to check the status
</ResponseField>

<ResponseExample>
  ```json 202 theme={"system"}
  {
      "request_id": "ed2ce223-3bd2-4a08-855f-79751bf1bd92",
      "status": "PENDING"
  }
  ```
</ResponseExample>


## OpenAPI

````yaml POST /api/enterprise/market-map/enrich/
openapi: 3.0.3
info:
  title: Wokelo API
  description: >
    Wokelo provides four categories of APIs for company and market intelligence:


    1. **Enrichment** – Company and Industry data using Wokelo database and
    alternative data. Supports multi-company requests.

    2. **Discovery** – Workflows for specific use-cases such as market map,
    target screening, and buyer screening.

    3. **Monitoring** – Real-time news monitoring for companies.

    4. **Workflow Automation** – Wokelo and custom research workflows executed
    within notebooks.


    Enrichment and Discovery APIs are managed through async requests; use the
    Supporting APIs to track status and export results in JSON.

    Workflow APIs are executed within notebooks and support export to PDF, PPT,
    DOC, or JSON.


    **Authentication:** All endpoints (except `/auth/token/`) require a Bearer
    JWT token in the `Authorization` header.
  version: 1.0.0
  contact:
    url: https://docs.wokelo.ai/contact
servers:
  - url: https://api.wokelo.ai
    description: Production server
security: []
tags:
  - name: Authentication
    description: Obtain JWT tokens for API access
  - name: Enrichment
    description: Retrieve structured data for companies and industries
  - name: Discovery
    description: Identify companies via market maps, buyer and target screening
  - name: Monitoring
    description: Real-time company news monitoring
  - name: Workflow Automation
    description: Research notebooks for companies, industries, and custom workflows
  - name: Supporting APIs
    description: >-
      Utility endpoints for search, file upload, request management, and report
      retrieval
externalDocs:
  description: Official Wokelo API Documentation
  url: https://docs.wokelo.ai/overview
paths:
  /api/enterprise/market-map/enrich/:
    post:
      tags:
        - Discovery
      summary: Market Map
      description: >
        Generates a long list of companies operating in a given market, enriched
        with structured data.

        Supports filtering by geography, company type, employee count, funding
        stage, financial metrics, and more.

        Returns a `request_id` for async polling.
      operationId: marketMap
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - topic
              properties:
                topic:
                  type: string
                  example: AI-powered CRM software
                parameters:
                  type: object
                  description: >-
                    Optional filter parameters object. Send empty object if no
                    filters needed.
                  default: {}
                  properties:
                    detailed_query:
                      type: string
                      default: ''
                      example: ''
                    keywords:
                      type: array
                      items:
                        type: string
                      default: []
                      example: []
                    sample_companies:
                      type: array
                      items:
                        type: string
                      default: []
                      example: []
                    geography:
                      type: array
                      items:
                        type: string
                      default: []
                      example: []
                    company_type:
                      type: string
                      enum:
                        - private
                        - public
                        - all
                      default: ''
                      example: ''
                    employee_count:
                      type: array
                      description: >-
                        Filter by employee headcount range. Pass an empty array
                        to include all headcounts.
                      uniqueItems: true
                      items:
                        type: string
                        enum:
                          - 1-10
                          - 11-50
                          - 51-100
                          - 101-250
                          - 251-500
                          - 501-1000
                          - 1001-5000
                          - 5001-10000
                          - 10000+
                      default: []
                      example: []
                    founded_year:
                      type: object
                      description: >-
                        Filter by company founding year. Accepts `from` and/or
                        `to` integer values.
                      properties:
                        from:
                          type: integer
                          description: Minimum founding year (inclusive)
                        to:
                          type: integer
                          description: Maximum founding year (inclusive)
                      default: {}
                      example: {}
                    funding_stage:
                      type: array
                      description: >-
                        Filter by funding stage. Pass an empty array to include
                        all stages.
                      uniqueItems: true
                      items:
                        type: string
                        enum:
                          - Non-Equity Assistance
                          - Angel round
                          - Pre-seed
                          - Seed
                          - Series A
                          - Series B
                          - Series C
                          - Series D
                          - Series E
                          - Series F
                          - Series G
                          - Series H
                          - Series I
                          - Series J
                          - Corporate-Funded
                          - Debt-Funded
                          - Private equity round
                          - Others
                      default: []
                      example: []
                    total_funding:
                      type: object
                      description: >-
                        Filter by total funding amount raised. Accepts `from`
                        and/or `to` values.
                      properties:
                        from:
                          type: number
                          description: Minimum total funding in USD
                        to:
                          type: number
                          description: Maximum total funding in USD
                      default: {}
                      example: {}
                    last_funding_round:
                      type: object
                      description: >-
                        Filter by last funding round amount. Accepts `from`
                        and/or `to` values.
                      properties:
                        from:
                          type: number
                          description: Minimum last funding round in USD
                        to:
                          type: number
                          description: Maximum last funding round in USD
                      default: {}
                      example: {}
                    revenue:
                      type: object
                      description: >-
                        Filter by annual revenue. Accepts `from` and/or `to`
                        values.
                      properties:
                        from:
                          type: number
                          description: Minimum annual revenue in USD
                        to:
                          type: number
                          description: Maximum annual revenue in USD
                      default: {}
                      example: {}
                    ebitda:
                      type: object
                      description: Filter by EBITDA. Accepts `from` and/or `to` values.
                      properties:
                        from:
                          type: number
                          description: Minimum EBITDA in USD
                        to:
                          type: number
                          description: Maximum EBITDA in USD
                      default: {}
                      example: {}
                    net_income:
                      type: object
                      description: Filter by net income. Accepts `from` and/or `to` values.
                      properties:
                        from:
                          type: number
                          description: Minimum net income in USD
                        to:
                          type: number
                          description: Maximum net income in USD
                      default: {}
                      example: {}
                    ev_ebitda:
                      type: object
                      description: >-
                        Filter by EV/EBITDA multiple. Accepts `from` and/or `to`
                        values.
                      properties:
                        from:
                          type: number
                          description: Minimum EV/EBITDA multiple
                        to:
                          type: number
                          description: Maximum EV/EBITDA multiple
                      default: {}
                      example: {}
              example:
                topic: AI-powered CRM software
                parameters:
                  detailed_query: ''
                  keywords: []
                  sample_companies: []
                  geography: []
                  company_type: ''
                  employee_count: []
                  founded_year: {}
                  funding_stage: []
                  total_funding: {}
                  last_funding_round: {}
                  revenue: {}
                  ebitda: {}
                  net_income: {}
                  ev_ebitda: {}
      responses:
        '202':
          description: Request accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    AsyncResponse:
      type: object
      properties:
        request_id:
          type: string
          format: uuid
          example: 931643e9-b6c7-45d4-9ba9-bd3b534221e7
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
          example: PENDING
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token obtained from the `/auth/token/` endpoint.

````