Sparse Identification of Nonlinear Dynamics (SINDy).
Recovers governing differential equations (dx/dt = f(x)) from time
series data. Returns human-readable sparse expressions. Fast (seconds).
For algebraic y = f(x) relationships without time structure, use
pysr_run instead.
Pricing: free tier up to 100 rows and 8 variables. Beyond that,
$0.05 + $0.01 per 100 extra rows + $0.01 per extra variable squared,
via x402 (USDC on Base) or MPP/Stripe. MPP/Stripe adds a flat $0.35
per-transaction fee (Stripe processing), so the MPP challenge amount
in a `payment_required` response is $0.35 higher than the x402 amount
for the same base price; x402 gets the lower rate. Omit `payment`
for free-tier requests; paid requests without a valid credential
receive a `payment_required` result with pricing and accepted schemes.
Full pricing table as structured JSON: occam://pricing
Advisory limits: jobs over 500,000 rows or 50 variables are accepted
but may not converge within the time budget; the response carries a
top-level `warning` the agent should surface and treat as tentative.
If `feature_names` is supplied, its length must equal the number of
data columns; a mismatch is rejected with a validation error.
Rate limit: 10 requests/hour per IP, 200/hour global, max queue
depth 20 (shared with pysr_run and pysr_uncertainty).
Response (success) includes `equations[]` (each with `variable`,
`equation`, `expression`, `expression_latex`, `r2`), `library_terms`,
`nonzero_terms`, `elapsed_seconds`, `canonical_match` (dict with
`system`, `form`, `variable_map`, `parameter_map`, `confidence` if
the discovered system matches one of Lorenz / Lotka-Volterra /
Van der Pol / Duffing; `null` otherwise), optional `warning`,
optional `_meta` (MPP receipt on paid calls). Full response and
payment-required schemas: occam://tool-schemas
Example request:
data=[[1.0, 0.0], [0.95, -0.31], [0.81, -0.59]], t=[0.0, 0.1, 0.2],
feature_names=["x", "y"], poly_degree=2, threshold=0.1
Policy: occam://privacy-policy — Citation: occam://citation-info