Creates an organization details record in clerk_organization_details table and a business entity in the entities table. This is called during onboarding after the Clerk organization is created.
What This Does
- Creates organization metadata in
clerk_organization_details (links Clerk org to database)
- Gets/creates ranking score in the pre-payment rankings database (32-49 range)
- Creates business entity in
entities table (needed for visibility tracking)
- Updates Clerk metadata with business info for frontend access
Request Body
The name of the business (e.g., βNikeβ, βAcme Corpβ)
The main website URL for the business
Type of tracking: "business" or "product"
The Clerk organization ID (e.g., org_2abc123)
The Clerk user ID who created the business
The Clerk organization slug (e.g., nike-123456). Used to create the entity in the entities table.
Response
Database record ID in clerk_organization_details
Unique identifier (UUID v4)
ISO 8601 timestamp of creation
Pre-payment AI visibility ranking score (32-49)
The UUID of the created entity in the entities table
The entity_id is created here so that Materialize Score can immediately copy the ranking score to the main database after onboarding completes.
curl -X POST https://searchcompany-main.up.railway.app/api/business \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"business_name": "Nike",
"business_url": "https://nike.com",
"tracking_type": "business",
"clerk_org_id": "org_2abc123",
"clerk_user_id": "user_2xyz789",
"org_slug": "nike-123456"
}'
{
"id": 42,
"business_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"business_name": "Nike",
"created_at": "2024-01-15T10:30:00Z",
"ranking_score": 38,
"entity_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}