Skip to documentation
Weavers Docs

Pages and endpoints

Tab to navigate · Enter to openEsc to close

Market niches API

Explore research universes and compare certified strategies through their evidence.

GET/api/niches

Explore 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.

Explore market niches · cURL
curl --fail-with-body 'https://api.weavers.app/api/niches?limit=5'
200 · Illustrative response
{
  "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

Core response fields. Nested evidence payloads may include additional fields.
FieldTypeMeaning
nichesobject[]See the nested fields below.
niches[].nicheIdintegerNiche identifier.
niches[].nicheKeystring | nullPublic detail key; may be null for older entries.
niches[].displayNamestringNiche name.
niches[].sourcestringOrigin of the niche definition.
niches[].visibilitystringOnly public niches are returned.
niches[].targetRegimestring | nullTarget market regime; may be null for channel episodes.
niches[].membershipKindstringStatic universe or membership during qualifying channel episodes.
niches[].assetTypestring | nullAsset class.
niches[].countryCodestring | nullCountry code.
niches[].exchangestring | nullExchange.
niches[].certifiedCountintegerNumber of certified members.
niches[].liveCountintegerNumber of live members.
niches[].medianDailyDollarVolumenumber | nullMedian daily dollar volume when computed.
niches[].realizedVolatilitynumber | nullStored realized-volatility metric. Interpret with its research context.
niches[].crossSectionalDispersionnumber | nullStored cross-sectional dispersion metric.
niches[].historyDepthDaysinteger | nullAvailable history in days.
niches[].pricedConstituentCountinteger | nullConstituents with prices.
niches[].metricsAsOfDatestring | nullCalendar date in YYYY-MM-DD format.
GET/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.

Inspect a niche's certified set · cURL
curl --fail-with-body 'https://api.weavers.app/api/niches/example-niche?sort=sample_depth&direction=desc'
200 · Illustrative response
{
  "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

Core response fields. Nested evidence payloads may include additional fields.
FieldTypeMeaning
nicheobjectSee the nested fields below.
niche.nicheIdintegerNiche identifier.
niche.nicheKeystring | nullPublic detail key; may be null for older entries.
niche.displayNamestringNiche name.
niche.sourcestringOrigin of the niche definition.
niche.visibilitystringOnly public niches are returned.
niche.targetRegimestring | nullTarget market regime; may be null for channel episodes.
niche.membershipKindstringStatic universe or membership during qualifying channel episodes.
niche.assetTypestring | nullAsset class.
niche.countryCodestring | nullCountry code.
niche.exchangestring | nullExchange.
niche.certifiedCountintegerNumber of certified members.
niche.liveCountintegerNumber of live members.
niche.medianDailyDollarVolumenumber | nullMedian daily dollar volume when computed.
niche.realizedVolatilitynumber | nullStored realized-volatility metric. Interpret with its research context.
niche.crossSectionalDispersionnumber | nullStored cross-sectional dispersion metric.
niche.historyDepthDaysinteger | nullAvailable history in days.
niche.pricedConstituentCountinteger | nullConstituents with prices.
niche.metricsAsOfDatestring | nullCalendar date in YYYY-MM-DD format.
niche.themeTagsstring[]See the nested fields below.
niche.descriptionstring | nullResearch context.
niche.certifiedDefinitionstringThe service's definition of certification.
niche.sortobjectSee the nested fields below.
niche.sort.keystringApplied evidence sort key.
niche.sort.directionstringValues: asc, desc.
niche.certifiedStrategiesobject[]See the nested fields below.
niche.certifiedStrategies[].strategyRegistryIdintegerRegistry identifier.
niche.certifiedStrategies[].strategyIdstring | nullPublic strategy identifier.
niche.certifiedStrategies[].aliasstring | nullAlias.
niche.certifiedStrategies[].displayNamestringDisplay name.
niche.certifiedStrategies[].artifactIdinteger | nullPublished artifact.
niche.certifiedStrategies[].certifiedAtstringISO 8601 certification timestamp.
niche.certifiedStrategies[].evidenceobjectSee the nested fields below.
niche.certifiedStrategies[].evidence.sampleDepthobjectSee the nested fields below.
niche.certifiedStrategies[].evidence.sampleDepth.statestringAvailability state.
niche.certifiedStrategies[].evidence.sampleDepth.reasonstring | nullReason for unavailable evidence.
niche.certifiedStrategies[].evidence.sampleDepth.payloadobjectRecorded facts for this evidence dimension; fields vary by dimension.
niche.certifiedStrategies[].evidence.deflatedSharpeobjectSee the nested fields below.
niche.certifiedStrategies[].evidence.deflatedSharpe.statestringAvailability state.
niche.certifiedStrategies[].evidence.deflatedSharpe.reasonstring | nullReason for unavailable evidence.
niche.certifiedStrategies[].evidence.deflatedSharpe.payloadobjectRecorded facts for this evidence dimension; fields vary by dimension.
niche.certifiedStrategies[].evidence.paperConsistencyobjectSee the nested fields below.
niche.certifiedStrategies[].evidence.paperConsistency.statestringAvailability state.
niche.certifiedStrategies[].evidence.paperConsistency.reasonstring | nullReason for unavailable evidence.
niche.certifiedStrategies[].evidence.paperConsistency.payloadobjectRecorded facts for this evidence dimension; fields vary by dimension.
niche.certifiedStrategies[].disclosureobjectSee the nested fields below.
niche.certifiedStrategies[].disclosure.rawSharpenumber | nullRecorded raw Sharpe.
niche.certifiedStrategies[].disclosure.trialCountinteger | nullNumber of research trials.
niche.certifiedStrategies[].limitationsstring[]See the nested fields below.
niche.certifiedStrategies[].sortKeyMissingbooleanTrue when the chosen sort value is missing; missing values sort last.
niche.referenceobject | nullCurrently null: no per-niche benchmark series is returned. Do not invent a comparison value.