External API docs

Detect tech stack

Submit async technology detection tasks for known company domains, then poll and retrieve final results after processing completes.

Overview

Use this endpoint to detect whether a company uses a specific technology (for example Shopify, HubSpot, or Klaviyo) when you already know the company's domain.

This is an asynchronous workflow: submit a batch, poll batch status, then fetch task results.

Before you start

Make sure you have:

  • an Openmart account
  • an API key
  • one or more company domains to check
  • a technology identifier (for example shopify or hubspot)
  • a tool to send API requests, such as Postman or curl
1

Example 1: Detect Shopify usage for a domain

Use this example to check one company domain for one technology.

Endpoint
POST https://api.openmart.ai/api/v1/task/batch/find_tech

Parameters

Parameter
domain
Type
string
Required
Yes
Example
"bluebottlecoffee.com"
Description
The company domain to check.
Parameter
tech_type
Type
string
Required
Yes
Example
"shopify"
Description
The technology identifier to detect.
Parameter
company_name
Type
string
Required
No
Example
"Blue Bottle Coffee"
Description
Optional company name hint to improve matching.

cURL request

cURL
curl --request POST \
  --url https://api.openmart.ai/api/v1/task/batch/find_tech \
  --header 'Accept: application/json' \
  --header 'X-API-Key: <your_api_key>' \
  --header 'Content-Type: application/json' \
  --data '[
    {
      "domain": "bluebottlecoffee.com",
      "company_name": "Blue Bottle Coffee",
      "tech_type": "shopify"
    }
  ]'

Response details

This request returns a batch_id. Poll batch status until ready, then fetch task results by task ID.

Key elements of the API response

Response element
batch_id
Description
The ID for this batch. Use it to poll for readiness.
Response element
submit_for
Description
The task type submitted (for example find_tech).
Response element
status.batch_ready
Description
When true, the batch has produced task IDs and you can fetch results.
2

Example 2: Check multiple domains in one batch

Use this example to submit multiple tasks in one batch so you can process domains together.

Endpoint
POST https://api.openmart.ai/api/v1/task/batch/find_tech

Parameters

Parameter
domain
Type
string
Required
Yes
Example
"allbirds.com"
Description
The company domain to check.
Parameter
tech_type
Type
string
Required
Yes
Example
"hubspot"
Description
The technology identifier to detect.
Parameter
tracking_id
Type
string
Required
No
Example
"allbirds-hubspot"
Description
Optional client-defined ID to correlate results later.

cURL request

cURL
curl --request POST \
  --url https://api.openmart.ai/api/v1/task/batch/find_tech \
  --header 'Accept: application/json' \
  --header 'X-API-Key: <your_api_key>' \
  --header 'Content-Type: application/json' \
  --data '[
    {
      "domain": "bluebottlecoffee.com",
      "tech_type": "hubspot",
      "tracking_id": "bluebottle-hubspot"
    },
    {
      "domain": "allbirds.com",
      "tech_type": "hubspot",
      "tracking_id": "allbirds-hubspot"
    }
  ]'

All request parameters

Request body for POST /api/v1/task/batch/find_tech. Send a JSON array of task objects. Each field below describes a property on one task object.

Most common parameters

These are the fields most teams set for day-to-day technology detection.

domainstringRequired: Yes
Example: "bluebottlecoffee.com"

Company domain to check.

cURL example
cURL
curl --request POST \
  --url https://api.openmart.ai/api/v1/task/batch/find_tech \
  --header 'Accept: application/json' \
  --header 'X-API-Key: <your_api_key>' \
  --header 'Content-Type: application/json' \
  --data '[{"domain":"bluebottlecoffee.com","tech_type":"shopify"}]'
tech_typestringRequired: Yes
Example: "shopify"

Technology identifier to detect.

cURL example
cURL
curl --request POST \
  --url https://api.openmart.ai/api/v1/task/batch/find_tech \
  --header 'Accept: application/json' \
  --header 'X-API-Key: <your_api_key>' \
  --header 'Content-Type: application/json' \
  --data '[{"domain":"bluebottlecoffee.com","tech_type":"shopify"}]'
company_namestringRequired: No
Example: "Blue Bottle Coffee"

Optional company name hint to improve matching.

cURL example
cURL
curl --request POST \
  --url https://api.openmart.ai/api/v1/task/batch/find_tech \
  --header 'Accept: application/json' \
  --header 'X-API-Key: <your_api_key>' \
  --header 'Content-Type: application/json' \
  --data '[{"domain":"bluebottlecoffee.com","company_name":"Blue Bottle Coffee","tech_type":"shopify"}]'

Optional metadata

Use these fields to correlate responses back to your internal records.

tracking_idstringRequired: No
Example: "customer-42"

Optional client-defined tracking key returned with results.

cURL example
cURL
curl --request POST \
  --url https://api.openmart.ai/api/v1/task/batch/find_tech \
  --header 'Accept: application/json' \
  --header 'X-API-Key: <your_api_key>' \
  --header 'Content-Type: application/json' \
  --data '[{"domain":"bluebottlecoffee.com","tech_type":"shopify","tracking_id":"customer-42"}]'
# Detect Tech Stack

## Endpoint

POST https://api.openmart.ai/api/v1/task/batch/find_tech

## Description

Submit async technology detection tasks for known company domains. Returns a batch_id. This is an asynchronous workflow.

## Authentication

Header: `X-API-Key: <your_api_key>`

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| domain | string | Yes | Company domain to check. |
| tech_type | string | Yes | Technology identifier to detect (e.g. shopify, hubspot, klaviyo). |
| company_name | string | No | Optional company name hint. |
| tracking_id | string | No | Optional client-defined tracking key returned with results. |

## Example Request (single domain)

```bash
curl -X POST "https://api.openmart.ai/api/v1/task/batch/find_tech" \
  -H "Accept: application/json" \
  -H "X-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "domain": "bluebottlecoffee.com",
      "company_name": "Blue Bottle Coffee",
      "tech_type": "shopify"
    }
  ]'
```

## Example Request (multiple domains)

```bash
curl -X POST "https://api.openmart.ai/api/v1/task/batch/find_tech" \
  -H "Accept: application/json" \
  -H "X-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '[
    {"domain": "bluebottlecoffee.com", "tech_type": "hubspot", "tracking_id": "bluebottle-hubspot"},
    {"domain": "allbirds.com", "tech_type": "hubspot", "tracking_id": "allbirds-hubspot"}
  ]'
```

## Async workflow

1. Submit → receive batch_id
2. Poll: GET /api/v1/task/batch/<batch_id>/status → wait until batch_ready is true
3. Get IDs: GET /api/v1/task/batch/<batch_id>/task_ids?status=COMPLETED
4. Get results: GET /api/v1/task/<task_id>