Skip to documentation
Weavers Docs

Pages and endpoints

Tab to navigate · Enter to openEsc to close

Price channels API

Read stored price-channel fits, direction, bands, and data freshness.

GET/api/channels

Read price channels

Retrieve stored price-channel fits for a symbol. Use the fitted bands and timestamps to inspect market structure; this request does not calculate a new channel or place an order.

Parameters

symbolstring · query · required
Required market symbol, for example AAPL. Converted to uppercase.
timeframestring · query · optional
Optional stored timeframe, for example 1D. Converted to uppercase; omission includes all timeframes.
windowSizeinteger · query · optional
Optional fitting-window length in bars. Use a whole number of at least 2.
directionstring · query · optional
Optional channel direction. Use horizontal, not flat, on this API host.
validstring · query · optional
Optional validity filter. true/1/yes and false/0/no are recognised; other values leave this filter unset.
limitinteger · query · optional
Maximum rows. Defaults to 100, clamped to 1–500. Use a whole number.

Behaviour and limits

  • Use https://api.weavers.app. The website's /api/channels helper has different parameters and is not this contract.
  • Rows are ordered by endTimestamp, newest first. No cursor pagination is supported.
  • An empty array means no stored matches. Check computedAt and dataSource before assuming freshness; this is not a real-time feed.
  • Some absent numeric channel values are currently normalised to zero. A zero is not proof of a measured result.

Error responses

400
Missing symbol, invalid direction or windowSize below 2.
500
failed_to_fetch_channels

Validation may also return a general request error. See error handling and rate limits.

Read price channels · cURL
curl --fail-with-body 'https://api.weavers.app/api/channels?symbol=AAPL&limit=5'
200 · Illustrative response
{
  "symbol": "AAPL",
  "channels": [
    {
      "id": 1,
      "timeframe": "1D",
      "windowSize": 20,
      "direction": "ascending",
      "isValid": true,
      "startDay": "2026-01-01",
      "endDay": "2026-01-28"
    }
  ]
}

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
symbolstringRequested symbol in uppercase.
timeframestringEchoed only when supplied.
windowSizeintegerEchoed only when supplied.
channelsobject[]See the nested fields below.
channels[].idintegerChannel identifier.
channels[].indexIdintegerMarket-index identifier.
channels[].timeframestringStored bar timeframe, for example 1D.
channels[].windowSizeintegerNumber of bars in the fitting window.
channels[].startTimestampstring | nullISO 8601 timestamp.
channels[].endTimestampstring | nullISO 8601 timestamp.
channels[].startDaystring | nullCalendar date in YYYY-MM-DD format.
channels[].endDaystring | nullCalendar date in YYYY-MM-DD format.
channels[].directionstringStored direction: ascending, descending or horizontal.
channels[].isValidbooleanWhether the channel passes the channel algorithm's validity criteria.
channels[].slopenumberFitted centre-line slope per algorithm coordinate step.
channels[].interceptnumberFitted centre-line intercept.
channels[].upperOffsetnumberUpper band offset.
channels[].lowerOffsetnumberLower band offset.
channels[].startMidnumberCentre-line price at the start.
channels[].endMidnumberCentre-line price at the end.
channels[].startUppernumberUpper-band starting price.
channels[].endUppernumberUpper-band ending price.
channels[].startLowernumberLower-band starting price.
channels[].endLowernumberLower-band ending price.
channels[].r2numberCoefficient of determination for the fit.
channels[].inBandRationumberFraction of points within the bands.
channels[].pointsintegerNumber of fitted points.
channels[].algoVersionstringAlgorithm version.
channels[].dataSourcestringData provider/source label.
channels[].computedAtstring | nullISO 8601 timestamp.