SourceFinch Verified · Weather observations & forecasts

Solar radio flux (F10.7)

The 10.7 cm solar radio flux measured three times a day at Penticton, as published by NOAA's Space Weather Prediction Center, with the 90-day mean, for about the last six weeks.

Monitor this sourceAPI, CLI, SDK and MCP

At a glance

Jurisdiction
United States (federal)
Publisher updates
Three measurements a day
SourceFinch checks
Daily by default
Records per run
123 in the latest run
Record key
time_tag
Acquired from
Publisher's public API: https://services.swpc.noaa.gov/json/f107_cm_flux.json
Recipe
v1.0.0, approved October 13, 2026
Verified since
October 13, 2026
Last green run
October 13, 2026

What the data contains

The 10.7 cm solar radio flux (F10.7) is the standard daily index of solar activity: it tracks sunspot activity and the extreme ultraviolet output that heats and ionises the upper atmosphere, so satellite operators, radio users and ionospheric models depend on it. It is measured at the Dominion Radio Astrophysical Observatory in Penticton, Canada, three times a day, and NOAA's Space Weather Prediction Center republishes the measurements in its JSON products. This source reads that product daily and makes one record per measurement (about 125, the last six weeks), keyed by the observation time, with the flux in solar flux units, the frequency, the measurement slot (morning, noon or afternoon) and, on the noon measurement, the 90-day mean. A monitor reports each new measurement. SourceFinch is independent of NOAA and of the National Research Council Canada.

Fields and types

Every record has these fields. The key field time_tag identifies a record across runs, so changes are reported field by field.

FieldTypeDescription
time_tagkeydatetimeObservation time in UTC (no offset in the source), as published by SWPC. The record key.
fluxnumberObserved 10.7 cm solar radio flux, in solar flux units (10^-22 W m^-2 Hz^-1).
frequency_mhzinteger, nullableMeasurement frequency in MHz (2800, that is 10.7 cm).
reporting_schedulestring, nullableWhich of the three daily measurements this is: Morning, Noon or Afternoon.
ninety_day_meannumber, nullable90-day mean of the flux, published with the noon measurement; null on the others.
average_begindatetime, nullableStart of the 90-day averaging window (UTC, no offset), with the noon measurement.
average_countinteger, nullableNumber of measurements in the 90-day mean, with the noon measurement.

Sample output

The first 5 of 123 records from SourceFinch's own run on October 13, 2026, exactly as delivered.

FieldRecord 1Record 2Record 3Record 4Record 5
time_tag2026-10-12T22:00:002026-10-12T20:00:002026-10-12T17:00:002026-10-11T22:00:002026-10-11T20:00:00
flux123123122125122
frequency_mhz28002800280028002800
reporting_scheduleAfternoonNoonMorningAfternoonNoon
ninety_day_mean—115——115
average_begin—2026-07-15T20:00:00——2026-07-14T20:00:00
average_count—90——90
Sample as JSON
[
  {
    "flux": 123,
    "time_tag": "2026-10-12T22:00:00",
    "average_begin": null,
    "average_count": null,
    "frequency_mhz": 2800,
    "ninety_day_mean": null,
    "reporting_schedule": "Afternoon"
  },
  {
    "flux": 123,
    "time_tag": "2026-10-12T20:00:00",
    "average_begin": "2026-07-15T20:00:00",
    "average_count": 90,
    "frequency_mhz": 2800,
    "ninety_day_mean": 115,
    "reporting_schedule": "Noon"
  },
  {
    "flux": 122,
    "time_tag": "2026-10-12T17:00:00",
    "average_begin": null,
    "average_count": null,
    "frequency_mhz": 2800,
    "ninety_day_mean": null,
    "reporting_schedule": "Morning"
  },
  {
    "flux": 125,
    "time_tag": "2026-10-11T22:00:00",
    "average_begin": null,
    "average_count": null,
    "frequency_mhz": 2800,
    "ninety_day_mean": null,
    "reporting_schedule": "Afternoon"
  },
  {
    "flux": 122,
    "time_tag": "2026-10-11T20:00:00",
    "average_begin": "2026-07-14T20:00:00",
    "average_count": 90,
    "frequency_mhz": 2800,
    "ninety_day_mean": 115,
    "reporting_schedule": "Noon"
  }
]

Evidence behind every value

  • Each run keeps the publisher's exact response, hashed with SHA-256. This sample came from a response with hash ce5c9e921599556c2f2186e09665194b90622f04c7c377bfca6cc8b7a5ffe89f.
  • Every value records where it came from in that response: a JSON Pointer into the retained capture.
  • Each run gets a signed manifest (Ed25519) timestamped by an RFC 3161 authority: this run's manifest hash is 793d76e385521fa96e60a06e0512bfd0e06796d8646964f5149a0d53a0ac80af, timestamped October 13, 2026.
  • The compliance state at capture is recorded with the evidence: robots.txt hash and verdict, AI-preference signals, crawler identity and the usage rights below.
  • Download any run as an evidence bundle (WACZ) and check it offline, without trusting SourceFinch: sourcefinch verify-bundle run.wacz.

Terms posture and usage rights

Terms
Automated access permitted · publisher's terms
robots.txt
None published (HTTP 404); access allowed under RFC 9309
AI-preference signals
None observed at review
Public record
Yes. NOAA Space Weather Prediction Center public products; U.S. government work (17 U.S.C. 105) as stated in the NWS disclaimer.
Reviewed
October 13, 2026; next review April 13, 2027
Licence basis
U.S. government work (public domain)
Commercial use
Allowed
Redistribution
Allowed
Attribution
Required (text below)

The National Weather Service disclaimer, which covers the Space Weather Prediction Center, states that information on its sites is in the public domain unless specifically noted and may be used without permission, with credit to the issuing office requested; users must not imply endorsement. services.swpc.noaa.gov serves no robots.txt (HTTP 404), which RFC 9309 treats as allowing access, and the product needs no key. The measurements originate at the Dominion Radio Astrophysical Observatory (National Research Council Canada) and are republished by SWPC in its public products.

NOAA Space Weather Prediction Center; measurements from the Dominion Radio Astrophysical Observatory, Penticton. SourceFinch is independent of and not endorsed by NOAA.

Usage rights travel with every record SourceFinch delivers (API, exports, webhooks and evidence bundles). They are our documented understanding of the publisher's stated terms, not legal advice.

Reliability

Runs, last 30 days
1
Green
100%
Failed
0
Median run time
0.6 s
Latest run
success, October 13, 2026

Measured on completed runs of this recipe version across SourceFinch, anonymized, within a rolling 30-day window. First successful observation: October 13, 2026. A new recipe has only the history collected since that date; this is not a 30-day uptime guarantee.

Use it

Every surface creates the same monitor from this Verified recipe. Monitors keep record history, report field-level changes and deliver by webhook, export or email. You confirm you have the right to collect the source (rights: true).

Console

Open this recipe in the console: it preserves the reviewed URL, fields and record key. Review the latest captured sample, confirm source rights, and choose a schedule before creating your monitor.

Portable recipe

Copy into the console's Import or share a recipe panel to customize fields, types and schedules. This configuration contains no captured records or workspace IDs.

{
  "schema": "sourcefinch/source@1",
  "name": "Solar radio flux (F10.7)",
  "url": "https://services.swpc.noaa.gov/json/f107_cm_flux.json",
  "recipe": {
    "mode": "http",
    "format": "json",
    "items": "[*]",
    "fields": {
      "flux": "flux",
      "time_tag": "time_tag",
      "average_begin": "avg_begin_date",
      "average_count": "rec_count",
      "frequency_mhz": "frequency",
      "ninety_day_mean": "ninety_day_mean",
      "reporting_schedule": "reporting_schedule"
    },
    "required": [
      "time_tag",
      "flux"
    ],
    "types": {
      "average_begin": "datetime",
      "average_count": "integer",
      "flux": "number",
      "frequency_mhz": "integer",
      "ninety_day_mean": "number",
      "time_tag": "datetime"
    }
  },
  "schedule": "daily",
  "key_field": "time_tag"
}

source.json

The request body used by the API, CLI and SDK examples.

{
  "name": "Solar radio flux (F10.7)",
  "url": "https://services.swpc.noaa.gov/json/f107_cm_flux.json",
  "recipe": {
    "mode": "http",
    "format": "json",
    "items": "[*]",
    "fields": {
      "flux": "flux",
      "time_tag": "time_tag",
      "average_begin": "avg_begin_date",
      "average_count": "rec_count",
      "frequency_mhz": "frequency",
      "ninety_day_mean": "ninety_day_mean",
      "reporting_schedule": "reporting_schedule"
    },
    "required": [
      "time_tag",
      "flux"
    ],
    "types": {
      "flux": "number",
      "time_tag": "datetime",
      "average_begin": "datetime",
      "average_count": "integer",
      "frequency_mhz": "integer",
      "ninety_day_mean": "number"
    }
  },
  "key_field": "time_tag",
  "schedule": "daily",
  "rights": true,
  "catalog": {
    "slug": "noaa-swpc-solar-radio-flux",
    "version_id": "6daa1851-72bb-4b83-95af-1e6ed8dd555d"
  }
}

REST API

Create an API key under Console → API keys. Reference: /docs/api.

# the Verified entry (fields, recipe, sample, terms) as JSON
curl https://sourcefinch.com/v1/catalog/noaa-swpc-solar-radio-flux -H "Authorization: Bearer $SOURCEFINCH_API_KEY"

# create the monitor from source.json (below)
curl -X POST https://sourcefinch.com/v1/sources \
  -H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d @source.json

# then run it now (later runs follow the schedule)
curl -X POST https://sourcefinch.com/v1/sources/$SOURCE_ID/runs \
  -H "Authorization: Bearer $SOURCEFINCH_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

CLI

The sourcefinch CLI is not on npm yet; see /docs/cli.

sourcefinch login
sourcefinch catalog get noaa-swpc-solar-radio-flux --source-json > source.json
sourcefinch sources create --file source.json
sourcefinch runs create $SOURCE_ID --wait
sourcefinch records $SOURCE_ID

TypeScript SDK

The SDK is not on npm yet; see /docs/sdk.

import { SourceFinch } from "@sourcefinch/sdk";

const sf = new SourceFinch({ apiKey: process.env.SOURCEFINCH_API_KEY });
const entry = await sf.catalog.get("noaa-swpc-solar-radio-flux");
const source = await sf.sources.create({
  catalog: { slug: entry.slug, version_id: entry.recipe.version_id },
  name: entry.name.slice(0, 100),
  url: entry.acquisition_path.endpoint,
  recipe: entry.recipe.definition,
  key_field: entry.recipe.key_field,
  schedule: entry.recipe.schedule,
  rights: true, // you confirm you have the right to collect this source
});
const run = await sf.runs.wait((await sf.runs.create(source.id)).id);
console.log(run.status);

MCP

Remote MCP server with OAuth; see /docs/mcp.

claude mcp add --transport http sourcefinch https://sourcefinch.com/mcp

# then ask your agent:
"Use SourceFinch to monitor Solar radio flux (F10.7): get_catalog_source noaa-swpc-solar-radio-flux,
then create_source with its create_source_args (dry run first), then run_source."

Pricing

Each check is one run, whatever the number of records, and failed runs are free. On its default daily schedule this source uses about 30 runs a month, which fits the Free plan's 300 runs. It uses HTTP acquisition, so no browser runs are needed. See plans.

More from NOAA Space Weather Prediction Center and in weather observations & forecasts.

SourceFinch is independent and is not affiliated with or endorsed by NOAA Space Weather Prediction Center. This page describes solar radio flux (f10.7) as SourceFinch acquires it.