Bring your own data
Once a brain is trained, you can run it against your own data in four ways. Pick the one that matches your situation.
1. Basic-mode Try-it (inline on the brain page)
Best for: small data, single user, browser-only workflow.
On /brain/<id> (Ready state), scroll to Try it on your data:
- Examples field — drop or paste a CSV with one row per labelled example. Last column is the answer.
- Questions field — drop or paste a CSV with one row per query. Same columns as examples minus the answer.
- Predict button — bottom-right of the form.
The form is shape-aware. For a regression brain you’ll see x, y (2 cols). For a 30-feature classification brain you’ll see 30 feature cols + label. Validation lights amber / red in the row-count chip when dimensions don’t match.
A ✨ sample button on each field fills the textarea with synthetic data of the right shape — the easiest way to see what the form expects.
Predictions render in a results table below.
2. Advanced Try-it (full developer surface)
Best for: larger data, custom feature engineering, debugging dimension mismatches.
Open /projects/<id>/runs/<runId> (or click “This brain takes N values per row — easier to do in the advanced view than inline” from the basic page). The advanced Try-it:
- Has the same shape-aware textareas but no row limit
- Shows raw JSON request/response next to the form
- Surfaces full error messages from the predict API
- Lets you toggle between predict and sample-prior modes
3. Share link (public, no-auth)
Best for: showing the brain to someone without making them sign up.
From the brain page or run detail, click 🔗 Share. The studio mints a public share token. Anyone with the URL (/share/:token) can:
- Read the brain’s metadata
- Use the same Try-it form against their own data
- Click Fork this prior (which routes through the signup flow)
Share-link users hit POST /shares/:token/predict instead of the authenticated endpoint. Request and response shapes are identical to the Predict API. Tokens can be revoked from the share dialog.
4. Predict API (direct HTTP)
Best for: integrating predictions into another app, batch workflows, or any non-browser caller.
POST /projects/<projectId>/runs/<runIdOrSlug>/predictAuthorization: Bearer <api-token>Content-Type: application/jsonSee the full Predict API reference for request/response shapes per task type, error handling, and SDK examples.
What shape does my brain expect?
Depends on the prior the brain was trained on. The brain page hints at the right shape inline (the textareas have row examples). For exact details:
| Wizard speciality | Expected context row | Expected query row |
|---|---|---|
| Patterns in numbers (regression) | x, y (2 cols, scalar each) | x (1 col) |
| Yes-or-no decisions (classification) | 30 feature cols + label (0 or 1) | 30 feature cols |
| Time-series — AR-style forecast | a single column of past series values | a single column (placeholders) |
| Time-series — TabPFN-TS style | a single column of past values + seasonality period knob | same |
| Discovery (causal) | Not supported inline — advanced view only | — |
Each prior declares its own input contract — that’s what drives the form layout and how your CSV is packed for prediction. A new contract requires explicit support in the form, so unfamiliar prior types may need to be added to the supported list before they accept CSV uploads.
Why in-context, not fine-tuning?
PFNs don’t fine-tune at inference time. Your context rows are read in-context — the brain extracts the task from them on the fly and applies it to your query rows in a single forward pass. There’s no gradient step, no copy of the brain per-user, no warm-up.
That means:
- You can change the context entirely between two predict calls — the brain adapts immediately
- Your data never leaves the predict request — there’s no persistent fine-tune artifact
- Throughput is bottlenecked by the brain’s forward pass, not by any optimisation
For most use cases this is a feature: it makes per-task adaptation cheap and stateless.