Detect a niche
curl --request POST \
--url https://api.sigmora.org/v1/niches/detect \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"businessName": "PocketLedger",
"businessDescription": "A budgeting app that finds forgotten subscriptions and helps young professionals save their first emergency fund.",
"audience": "Young professionals in their first five years of work",
"keywords": [
"budgeting",
"subscriptions",
"emergency fund"
]
}
'import requests
url = "https://api.sigmora.org/v1/niches/detect"
payload = {
"businessName": "PocketLedger",
"businessDescription": "A budgeting app that finds forgotten subscriptions and helps young professionals save their first emergency fund.",
"audience": "Young professionals in their first five years of work",
"keywords": ["budgeting", "subscriptions", "emergency fund"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
businessName: 'PocketLedger',
businessDescription: 'A budgeting app that finds forgotten subscriptions and helps young professionals save their first emergency fund.',
audience: 'Young professionals in their first five years of work',
keywords: ['budgeting', 'subscriptions', 'emergency fund']
})
};
fetch('https://api.sigmora.org/v1/niches/detect', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"niche": {
"id": "<string>",
"label": "<string>",
"themeIds": [
"<string>"
],
"rootThemeIds": [
"<string>"
],
"confidence": 0.5,
"status": "classified"
},
"classification": {
"themeIds": [
"<string>"
],
"rootThemeIds": [
"<string>"
],
"primaryThemeId": "<string>",
"themeAssignments": [
{
"themeId": "<string>",
"rootThemeId": "<string>",
"confidence": 0.5,
"method": "provider-category",
"reasons": [
"<string>"
]
}
],
"themeTaxonomyVersion": "<string>",
"themeTaggedAt": "2023-11-07T05:31:56Z",
"themeTaggingStatus": "classified",
"themes": [
{
"id": "iab:3.1:391",
"name": "Personal Finance",
"rootId": "<string>",
"path": [
"<string>"
],
"taxonomyVersion": "<string>",
"economics": {},
"parentId": "<string>"
}
]
}
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}Detect a niche
Turn customer business details into a canonical niche profile. Returns a reusable IAB theme profile for onboarding, discovery and strategy. The deterministic result is immediate and explainable; low-evidence inputs return needs-review instead of inventing a niche.
POST
/
v1
/
niches
/
detect
Detect a niche
curl --request POST \
--url https://api.sigmora.org/v1/niches/detect \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"businessName": "PocketLedger",
"businessDescription": "A budgeting app that finds forgotten subscriptions and helps young professionals save their first emergency fund.",
"audience": "Young professionals in their first five years of work",
"keywords": [
"budgeting",
"subscriptions",
"emergency fund"
]
}
'import requests
url = "https://api.sigmora.org/v1/niches/detect"
payload = {
"businessName": "PocketLedger",
"businessDescription": "A budgeting app that finds forgotten subscriptions and helps young professionals save their first emergency fund.",
"audience": "Young professionals in their first five years of work",
"keywords": ["budgeting", "subscriptions", "emergency fund"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
businessName: 'PocketLedger',
businessDescription: 'A budgeting app that finds forgotten subscriptions and helps young professionals save their first emergency fund.',
audience: 'Young professionals in their first five years of work',
keywords: ['budgeting', 'subscriptions', 'emergency fund']
})
};
fetch('https://api.sigmora.org/v1/niches/detect', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"niche": {
"id": "<string>",
"label": "<string>",
"themeIds": [
"<string>"
],
"rootThemeIds": [
"<string>"
],
"confidence": 0.5,
"status": "classified"
},
"classification": {
"themeIds": [
"<string>"
],
"rootThemeIds": [
"<string>"
],
"primaryThemeId": "<string>",
"themeAssignments": [
{
"themeId": "<string>",
"rootThemeId": "<string>",
"confidence": 0.5,
"method": "provider-category",
"reasons": [
"<string>"
]
}
],
"themeTaxonomyVersion": "<string>",
"themeTaggedAt": "2023-11-07T05:31:56Z",
"themeTaggingStatus": "classified",
"themes": [
{
"id": "iab:3.1:391",
"name": "Personal Finance",
"rootId": "<string>",
"path": [
"<string>"
],
"taxonomyVersion": "<string>",
"economics": {},
"parentId": "<string>"
}
]
}
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}{
"success": false,
"error": "<string>",
"code": "invalid_request",
"details": "<unknown>",
"requestId": "<string>",
"timestamp": "2023-11-07T05:31:56Z"
}Authorizations
A workspace API key.
Body
application/json
What the business makes, teaches, or sells. This is the only required field.
Required string length:
3 - 10000Business or creator name.
Required string length:
1 - 300Plain-language product names or descriptions; no product ids are required.
Maximum array length:
100Required string length:
1 - 500Plain-language services the business provides.
Maximum array length:
100Required string length:
1 - 500Who the business serves.
Required string length:
1 - 2000Existing public channel or profile bio.
Required string length:
1 - 5000Terms the business wants to be found for.
Maximum array length:
100Required string length:
1 - 200Provider categories already associated with the business or channel.
Maximum array length:
20Show child attributes
Show child attributes