Market niches API
Explore research universes and compare certified strategies through their evidence.
/api/nichesExplore market niches
A niche groups a research universe by market characteristics or qualifying channel episodes. Browse public niches and their coverage and certification counts.
Parameters
regimestring · query · optional- Target market regime filter.
assetTypestring · query · optional- Asset-type filter.
countrystring · query · optional- Country-code filter.
exchangestring · query · optional- Exchange filter.
limitinteger · query · optional- Positive whole number, up to nine digits. Defaults to 200; values above 500 are capped at 500. Zero, negative, decimal and repeated values are rejected.
Behaviour and limits
- Use a non-null nicheKey from the response to request niche detail.
- Null metrics mean data has not been computed or does not apply; they are not zero.
- No cursor or page parameter is supported. Filters narrow the returned collection.
Error responses
400- invalid_niche_filter
500- failed_to_fetch_niches
Validation may also return a general request error. See error handling and rate limits.
curl --fail-with-body 'https://api.weavers.app/api/niches?limit=5'const response = await fetch("https://api.weavers.app/api/niches?limit=5", {
signal: AbortSignal.timeout(15000),
});
if (!response.ok) {
throw new Error(`Weavers API returned ${response.status}`);
}
const data = await response.json();
console.log(data);import json
from urllib.request import urlopen
with urlopen("https://api.weavers.app/api/niches?limit=5", timeout=15) as response:
data = json.load(response)
print(data){
"niches": [
{
"nicheId": 1,
"nicheKey": "example-niche",
"displayName": "Example research niche",
"source": "platform",
"visibility": "public",
"membershipKind": "static",
"targetRegime": null,
"assetType": "ETF",
"countryCode": "US",
"exchange": null,
"certifiedCount": 0,
"liveCount": 0,
"medianDailyDollarVolume": null,
"realizedVolatility": null,
"crossSectionalDispersion": null,
"historyDepthDays": null,
"pricedConstituentCount": null,
"metricsAsOfDate": null
}
]
}Example data is illustrative. Additional response fields may be present. Empty lists are valid responses.
Response fields
| Field | Type | Meaning |
|---|---|---|
niches | object[] | See the nested fields below. |
niches[].nicheId | integer | Niche identifier. |
niches[].nicheKey | string | null | Public detail key; may be null for older entries. |
niches[].displayName | string | Niche name. |
niches[].source | string | Origin of the niche definition. |
niches[].visibility | string | Only public niches are returned. |
niches[].targetRegime | string | null | Target market regime; may be null for channel episodes. |
niches[].membershipKind | string | Static universe or membership during qualifying channel episodes. |
niches[].assetType | string | null | Asset class. |
niches[].countryCode | string | null | Country code. |
niches[].exchange | string | null | Exchange. |
niches[].certifiedCount | integer | Number of certified members. |
niches[].liveCount | integer | Number of live members. |
niches[].medianDailyDollarVolume | number | null | Median daily dollar volume when computed. |
niches[].realizedVolatility | number | null | Stored realized-volatility metric. Interpret with its research context. |
niches[].crossSectionalDispersion | number | null | Stored cross-sectional dispersion metric. |
niches[].historyDepthDays | integer | null | Available history in days. |
niches[].pricedConstituentCount | integer | null | Constituents with prices. |
niches[].metricsAsOfDate | string | null | Calendar date in YYYY-MM-DD format. |
/api/niches/{nicheKey}Inspect a niche's certified set
Read a public niche's research context and its certified strategies, with evidence, disclosures and limitations alongside each strategy.
Parameters
nicheKeystring · path · required- Public key returned by the niche list. Lowercase letters, digits, hyphens and underscores; at most 190 characters.
sortstring · query · optional- Evidence dimension to sort by. Missing values sort last.
directionstring · query · optional- Defaults to desc for evidence dimensions and asc for certified_at.
Behaviour and limits
- Replace example-niche with a real nicheKey.
- The complete certified set is returned; there is currently no pagination on this route.
- There is no composite quality score. The reference benchmark is currently null.
Error responses
400- invalid_niche_key, invalid_niche_sort or invalid_niche_sort_direction
404- niche_not_found
500- failed_to_fetch_niche_detail
Validation may also return a general request error. See error handling and rate limits.
curl --fail-with-body 'https://api.weavers.app/api/niches/example-niche?sort=sample_depth&direction=desc'const response = await fetch("https://api.weavers.app/api/niches/example-niche?sort=sample_depth&direction=desc", {
signal: AbortSignal.timeout(15000),
});
if (!response.ok) {
throw new Error(`Weavers API returned ${response.status}`);
}
const data = await response.json();
console.log(data);import json
from urllib.request import urlopen
with urlopen("https://api.weavers.app/api/niches/example-niche?sort=sample_depth&direction=desc", timeout=15) as response:
data = json.load(response)
print(data){
"niche": {
"nicheId": 1,
"nicheKey": "example-niche",
"displayName": "Example research niche",
"source": "platform",
"visibility": "public",
"membershipKind": "static",
"targetRegime": null,
"assetType": "ETF",
"countryCode": "US",
"exchange": null,
"certifiedCount": 0,
"liveCount": 0,
"medianDailyDollarVolume": null,
"realizedVolatility": null,
"crossSectionalDispersion": null,
"historyDepthDays": null,
"pricedConstituentCount": null,
"metricsAsOfDate": null,
"themeTags": [],
"description": "Illustrative research universe.",
"certifiedDefinition": "Use the certification definition returned by the API.",
"sort": {
"key": "sample_depth",
"direction": "desc"
},
"certifiedStrategies": [],
"reference": null
}
}Example data is illustrative. Additional response fields may be present. Empty lists are valid responses.
Response fields
| Field | Type | Meaning |
|---|---|---|
niche | object | See the nested fields below. |
niche.nicheId | integer | Niche identifier. |
niche.nicheKey | string | null | Public detail key; may be null for older entries. |
niche.displayName | string | Niche name. |
niche.source | string | Origin of the niche definition. |
niche.visibility | string | Only public niches are returned. |
niche.targetRegime | string | null | Target market regime; may be null for channel episodes. |
niche.membershipKind | string | Static universe or membership during qualifying channel episodes. |
niche.assetType | string | null | Asset class. |
niche.countryCode | string | null | Country code. |
niche.exchange | string | null | Exchange. |
niche.certifiedCount | integer | Number of certified members. |
niche.liveCount | integer | Number of live members. |
niche.medianDailyDollarVolume | number | null | Median daily dollar volume when computed. |
niche.realizedVolatility | number | null | Stored realized-volatility metric. Interpret with its research context. |
niche.crossSectionalDispersion | number | null | Stored cross-sectional dispersion metric. |
niche.historyDepthDays | integer | null | Available history in days. |
niche.pricedConstituentCount | integer | null | Constituents with prices. |
niche.metricsAsOfDate | string | null | Calendar date in YYYY-MM-DD format. |
niche.themeTags | string[] | See the nested fields below. |
niche.description | string | null | Research context. |
niche.certifiedDefinition | string | The service's definition of certification. |
niche.sort | object | See the nested fields below. |
niche.sort.key | string | Applied evidence sort key. |
niche.sort.direction | string | Values: asc, desc. |
niche.certifiedStrategies | object[] | See the nested fields below. |
niche.certifiedStrategies[].strategyRegistryId | integer | Registry identifier. |
niche.certifiedStrategies[].strategyId | string | null | Public strategy identifier. |
niche.certifiedStrategies[].alias | string | null | Alias. |
niche.certifiedStrategies[].displayName | string | Display name. |
niche.certifiedStrategies[].artifactId | integer | null | Published artifact. |
niche.certifiedStrategies[].certifiedAt | string | ISO 8601 certification timestamp. |
niche.certifiedStrategies[].evidence | object | See the nested fields below. |
niche.certifiedStrategies[].evidence.sampleDepth | object | See the nested fields below. |
niche.certifiedStrategies[].evidence.sampleDepth.state | string | Availability state. |
niche.certifiedStrategies[].evidence.sampleDepth.reason | string | null | Reason for unavailable evidence. |
niche.certifiedStrategies[].evidence.sampleDepth.payload | object | Recorded facts for this evidence dimension; fields vary by dimension. |
niche.certifiedStrategies[].evidence.deflatedSharpe | object | See the nested fields below. |
niche.certifiedStrategies[].evidence.deflatedSharpe.state | string | Availability state. |
niche.certifiedStrategies[].evidence.deflatedSharpe.reason | string | null | Reason for unavailable evidence. |
niche.certifiedStrategies[].evidence.deflatedSharpe.payload | object | Recorded facts for this evidence dimension; fields vary by dimension. |
niche.certifiedStrategies[].evidence.paperConsistency | object | See the nested fields below. |
niche.certifiedStrategies[].evidence.paperConsistency.state | string | Availability state. |
niche.certifiedStrategies[].evidence.paperConsistency.reason | string | null | Reason for unavailable evidence. |
niche.certifiedStrategies[].evidence.paperConsistency.payload | object | Recorded facts for this evidence dimension; fields vary by dimension. |
niche.certifiedStrategies[].disclosure | object | See the nested fields below. |
niche.certifiedStrategies[].disclosure.rawSharpe | number | null | Recorded raw Sharpe. |
niche.certifiedStrategies[].disclosure.trialCount | integer | null | Number of research trials. |
niche.certifiedStrategies[].limitations | string[] | See the nested fields below. |
niche.certifiedStrategies[].sortKeyMissing | boolean | True when the chosen sort value is missing; missing values sort last. |
niche.reference | object | null | Currently null: no per-niche benchmark series is returned. Do not invent a comparison value. |