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

# Similar companies API (deep)

<Panel>
  <Note>
    Cost: **25 credits**
  </Note>
</Panel>

<Warning>
  This is async API. Use the [`/jobs/{jobId}`](/api-reference/jobs/status) endpoint to check job status and retrieve results.
</Warning>

Asynchronous version of [Similar companies API](/api-reference/tools/similar-companies) which offers more detailed analysis, additional `language` parameter support and results list of **max 25 similar companies.**

<Note>On average, it takes 2-5 minutes to complete the job. You can run **max 10 concurrent jobs** per account.</Note>

Creates an asynchronous job to find similar companies based on a given company URL and optional `language` parameter. Returns a job ID that can be used to check the status and retrieve results when the analysis is complete.

<Tip>If you want to research companies based on a specific language, use optional `language` parameter.</Tip>

Each item of the complete analysis results list includes company:

* name,
* URL,
* description,
* similarity score (from 0 to 1, where 1 is the most similar).

<Note>
  This API endpoint automatically manages proxy and CAPTCHA solving.
</Note>

<Warning>
  Job results are **available for 24 hours** after the job is completed.
</Warning>

### Optional

You can use optional `language` parameter to research companies based on a specific language. If provided, the analysis will run research focusing on keywords in the specified language. Helps to narrow the search results to a specific language/region.

Supported languages: `en`, `es`, `de`, `fr`, `pt`, `it`, `nl`, `pl`, `tr`.

| Code | Language   |
| ---- | ---------- |
| en   | English    |
| es   | Spanish    |
| de   | German     |
| fr   | French     |
| pt   | Portuguese |
| it   | Italian    |
| nl   | Dutch      |
| pl   | Polish     |
| tr   | Turkish    |

### Example workflow

<Steps>
  <Step title="Create job">
    Make a `POST /companies/similar/deep` request including `url` parameter (and optional `language` parameter if needed).
  </Step>

  <Step title="Check status">
    Make a `GET /jobs/{jobId}` request to check job status. It usually takes 2-5 minutes to complete the job. Until the job is completed, the response will include `status: "pending"` or `status: "processing"`.
  </Step>

  <Step title="Retrieve results">
    When the job is completed (`status: "completed"`), you will receive results in the response to your request for check status (`GET /jobs/{jobId}`). Job results are **available for 24 hours**.
  </Step>
</Steps>


## OpenAPI

````yaml api-reference/openapi-0.yaml post /companies/similar/deep
openapi: 3.1.0
info:
  title: Workfloows API
  version: '0'
  description: >
    ## Introduction


    This API provides a growing collection of powerful tools and endpoints 

    commonly used in automation workflows. It's designed for individual
    automators, 

    agencies, and app builders who want to streamline processes and connect
    systems.


    ## Authentication


    All requests require an API key, which must be included in the `x-api-key`
    header.


    ```

    x-api-key: <your_api_key>

    ```


    If the API key is missing or invalid, a `401 Unauthorized` response will be
    returned.
servers:
  - url: https://api.workfloo.ws/v0
security: []
paths:
  /companies/similar/deep:
    post:
      tags:
        - Scrape
      summary: Similar companies API (deep)
      operationId: similarCompaniesDeep
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - url
              properties:
                url:
                  type: string
                  format: uri
                  description: >-
                    Target URL to find similar companies for (including
                    protocol)
                  example: https://workfloows.com
                language:
                  type: string
                  description: Target language for analysis (optional)
                  enum:
                    - en
                    - es
                    - de
                    - fr
                    - pt
                    - it
                    - nl
                    - pl
                    - tr
                  example: en
      responses:
        '200':
          description: Job created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  response:
                    type: object
                    properties:
                      success:
                        type: boolean
                        description: Whether the job was created successfully
                      job:
                        type: object
                        properties:
                          id:
                            type: string
                            description: Unique job identifier
                          limits:
                            type: object
                            properties:
                              current:
                                type: number
                                description: Current number of active jobs
                              remaining:
                                type: number
                                description: Remaining job slots available
                              max:
                                type: number
                                description: Maximum allowed active jobs
              examples:
                success:
                  summary: Job created successfully
                  value:
                    response:
                      success: true
                      job:
                        id: 550e8400-e29b-41d4-a716-446655440000
                        limits:
                          current: 1
                          remaining: 9
                          max: 10
        '400':
          description: Invalid input or missing/invalid URL
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message describing why the request failed
              examples:
                invalidJson:
                  summary: Invalid JSON
                  value:
                    error: >-
                      Invalid JSON body. Please provide a valid JSON object with
                      a 'url' field.
                missingUrl:
                  summary: Missing URL
                  value:
                    error: URL is required in the request body.
                invalidUrl:
                  summary: Invalid URL
                  value:
                    error: >-
                      Invalid URL format. Provide a valid URL (e.g.,
                      https://example.com).
                invalidLanguage:
                  summary: Invalid language
                  value:
                    error: >-
                      Invalid language parameter. Language must be one of: 'en',
                      'es', 'de', 'fr', 'pt', 'it', 'nl', 'pl', 'tr'.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              examples:
                insufficientCredits:
                  summary: Insufficient credits
                  value:
                    error: Insufficient credits.
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          description: Job limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              examples:
                jobLimitExceeded:
                  summary: Job limit exceeded
                  value:
                    error: >-
                      Maximum number of active jobs reached. Please wait for
                      your current jobs to complete before creating new ones.
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - apiKeyAuth: []
components:
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
          examples:
            unauthorized:
              summary: Unauthorized
              value:
                error: Unauthorized.
            apiKeyRequired:
              summary: API Key required
              value:
                error: Unauthorized. API key is required.
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
          examples:
            invalidApiKey:
              summary: Invalid API key
              value:
                error: Invalid API key.
            apiKeyNotFound:
              summary: API Key not found
              value:
                error: API Key not found.
            rateLimitExceeded:
              summary: Rate limit exceeded
              value:
                error: Rate limit exceeded.
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
          examples:
            userNotFound:
              summary: User not found
              value:
                error: User not found.
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
                example: An error occurred while processing your request.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````