Skip to main content
POST
https://searchcompany-main.up.railway.app
/
api
/
products
curl -X POST https://searchcompany-main.up.railway.app/api/products \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "business_id": "nike-123456",
    "name": "Running Shoes",
    "url": "https://nike.com/running-shoes"
  }'
{
  "status": "success",
  "product": {
    "id": 1,
    "business_id": "nike-123456",
    "item_id": "running-shoes",
    "name": "Running Shoes",
    "url": "https://nike.com/running-shoes"
  },
  "message": "Product 'Running Shoes' added. Visibility analysis started."
}
Adds a new product to a business and automatically triggers prompt generation and visibility analysis in the background.

Use Cases

This endpoint is called from:
  1. Settings - Tracking: “Add Product” button
  2. Sidebar: “Add New Product” in business switcher
  3. Onboarding: Step 2 when adding products

Request Body

business_id
string
required
The Clerk organization slug (e.g., “nike-123456”)
name
string
required
Product display name (e.g., “Running Shoes”)
url
string
required
Product page URL (e.g., “https://nike.com/running-shoes”)

Response

status
string
"success" if product was created
product
object
The created product object
message
string
Confirmation message

Product Object

FieldTypeDescription
idintegerDatabase ID
business_idstringOrganization slug
item_idstringGenerated slug from name
namestringProduct display name
urlstringProduct page URL
curl -X POST https://searchcompany-main.up.railway.app/api/products \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "business_id": "nike-123456",
    "name": "Running Shoes",
    "url": "https://nike.com/running-shoes"
  }'
{
  "status": "success",
  "product": {
    "id": 1,
    "business_id": "nike-123456",
    "item_id": "running-shoes",
    "name": "Running Shoes",
    "url": "https://nike.com/running-shoes"
  },
  "message": "Product 'Running Shoes' added. Visibility analysis started."
}

Background Processing

After the product is created, the following happens in the background:
  1. Prompt Generation: ~100 prompts are generated for the product
  2. Visibility Analysis: Each prompt is checked against 8 AI platforms
  3. Score Calculation: Visibility scores are calculated and stored
This typically takes 3-8 minutes to complete.

Errors

StatusDescription
400Missing required fields
409Product with this name already exists
500Database error