Skip to content

Your timing data, in and out.

You mint one token with named scopes, and your assistant stages a whole file through the MCP server, showing the diff before a single row is written. The console takes the same CSV by hand.

Tokens, imports and files, all working today. Push-back into your timing software, bank feeds and outbound webhooks live outside AnyRun.

The tokenShown once
ros_7f2a••••••••3c91
Scopes on this token
schema:readtiming:importentries:importvolunteers:import
Created12 Aug 2026Last used4 min agoExpiresWhen you revoke it
A revoke takes effect on the very next call.

Revoking stops the token at once, so a laptop that leaves the club can’t write another row. Every mint and every revoke is a row in the audit log.

Example account · demo figures
4
Named scopes
3
Tools, today
2
Export formats
Admin logs
Tokens, imports and exports, all logged

The problem: the results arrive as a CSV, twice.

If you have hired a timing crew, you know this Saturday. The data exists, and it moves only through a person in the middle, who introduces the second version of it.

sportident-export-2026-08-15.csvAs the laptop wrote it · 219 rows
BibChipGunNetCatNet_1
112884210400:41:3100:41:18OPEN—
118884210700:43:1900:43:02OPEN—
121884211100:45:0800:45:03M4000:44:51
134884211900:47:5500:47:40F35—
140884211900:49:2600:49:12OPEN—
Net_1a column that appeared in firmware 4.2Row 121net re-typed by hand, two values nowRow 140same chip read twice
14:02

The laptop exports its own columns

Bib, Chip, Gun, Net, and a header row that changes with a firmware update nobody was told about.

14:40

Somebody re-types a time

Two systems, two truths, and an argument at four o’clock about which of them the presentation should believe.

16:10

The import is all or nothing

Load the file, find the duplicate chip read afterwards, and the only way back is a restore.

Monday

It all sits on one laptop

The numbers are in a laptop under the finish tent, so the club page, the newsletter and your assistant are all guessing.

Read the diff before the write.

A staged import is a proposal. We compare the file with your current rows and wait for you to say yes. Confirm is the only call that writes.

sportident-export-2026-08-15.csv219 rows · 41 KBStaged · nothing written
BibRunnerNetIn this file
112Aisha Rahman00:41:18ADDED
118Marcus Vale00:43:02ADDED
121Dan Whitlockwas 00:45:0300:44:51CHANGED
134Priya Nair00:47:40ADDED
140Unmatched bibchip 884211900:49:12SKIPPED
141Tom Bealeduplicate read00:49:55SKIPPED
+ 213 more rows, all added
What this write would do
Added214
Changed3
Skipped2

The two skipped rows keep their reason. Fix the entry, re-stage the same file, and only what changed gets written.

Discard

Needs the timing:import scope

Three ways in, all of them written down.

Three tools on one MCP server, a console that takes the same file by hand, and a subdomain of your own. That is the whole set today, and this page lists all of it.

MCPOne server
Your assistant, holding the event

Your assistant talks to one server. Ask it for the column contracts and your event ids, stage a file against them, and confirm what it proposes.

POST https://anyrun.au/mcp {"method":"tools/call", "params":{"name": "describe_schema"}}
The consoleBy hand
The same file, dropped in

Upload the CSV or paste the rows. Five columns, one of them required, and the times land unpublished until somebody presses publish.

bibnet_timegun_timecategorystatus
The addressCNAME
Results at your own domain

Point a subdomain at the platform and verify it from the console. We attach the certificate before you go live.

results.baysiderunners.auLive
CertificateWe attach it
01 · Timing importMYLAPS export

Name every header once.

The timer's export, read against the platform's five columns. A header nobody named stops the file and says which line.

results.csv In the call
Bib maps to bibrequired
Net maps to net_timematched
Gun maps to gun_timematched
Cat maps to categorymatched
Chip maps to unmappedrefused
4 of 5 headers named. Name Chip and all five go in. The widget shows which row is waiting.Contract
The contract · five columnsFiles we’ve read: MYLAPS · RACE RESULT · ChronoTrack
bibnet_timegun_timecategorystatus

Times as 42:15 or 1:02:33. Send the same mapping for the next race on the same gear.

Bring the timing gear you already hired.

The platform does not care which box read the chip. Name every header once in the call, send the same mapping for the next race on the same gear, and nothing needs deciding again.

Your columns

Whatever the export calls them. You name each header in the call, and an unnamed one stops the file.

Explicit time

A shift timestamp has to carry its own offset. A naive one is refused, so a Perth shift stays on Perth time.

A skipped row says why

A row that stops comes back with its line number and what to fix. Correct it, send it again, and only the changed rows go in.

Your data leaves with you.

You take three files in one click, with no ticket. The export is a button in the console, and taking it is an audited event.

184 KBDownload
212 KBDownload
1.4 MBDownload

The finance hub writes six more beside them for your bookkeeper. An export stays a console action, on purpose: a person signs in and takes the file, and the API keeps to staged imports.

The audit logAppend only
15 Aug 14:02mcp_import_confirmed217 rows · Dan W
15 Aug 14:01mcp_import_stagedsportident-export.csv
15 Aug 13:58api_token_revokedros_7f2a… · Dan W
15 Aug 09:11csv_exportanyrun-entries-bayside-runfest.csv · Mel T
14 Aug 18:40api_token_mintedTiming bridge · Dan W
This list only ever grows

Live before the next race.

Mint a token in the console, stage the file the timing crew hands you, and read the diff. Three screens, and the data moves without a person in the middle. The same three steps bring last year’s field across on the entries:import scope.

Your token carries only the scopes you granted. A timing import can’t touch an order, and entrant details stay in the console behind a sign-in.

01

Mint the token

Name it, tick the scopes, copy it once. Revoke it whenever a laptop leaves the club.

02

Stage the file

Drop the export in, name the headers if it is a new box, and read what it proposes.

03

Write it, keep the receipt

You confirm. The rows land unpublished, and the audit log carries your name.

Nine parts of the data functionality.

Tokens, tools, caps, imports, exports and the address. Plus the two things this page will not claim.

01 · The tokenLive
Scopes you choose

Four named scopes, granted one at a time. Revoke without waiting for anyone.

schema:readtiming:importentries:importvolunteers:import
02 · The toolsThree
Documented explicitly

Describe, validate, confirm. If it is not one of these three, it does not exist.

describe_schemacontracts
validate_importstaged
confirm_importwrites
03 · MCPOne server
Your assistant stages it

Stage it with one tool call and read the diff back, inside the assistant you use.

tools/list3 tools
Stage the filea007
04 · The throughputOne call
A whole field in one call

Saturday’s file goes up in one call and the diff comes back before the meeting.

Entries, timing, volunteersOne call each
05 · The importStaged
The diff comes first

Added, changed and skipped, counted before anything is written.

Added214
Skipped, with a reason2
06 · MappingIn the call
Your headers, named

Name every header once and send the same mapping for the next race on the same gear.

Bib → bibRequired
Net → net_timeMatched
07 · The exportsFiles
The files that leave

Results and entrants as CSV, the whole club as one JSON file. Taking them is audited too.

…-results.csvanyrun-entries-….csvanyrun-export-….json
08 · The addressCNAME
Results on your domain

Point a subdomain at the platform and verify it from the console. We attach the certificate before you go live.

results.baysiderunners.auLive
09 · What the token carriesFiles
Files in, files out

Timing push-back, bank feeds and webhooks live outside AnyRun. Files and tokens carry the data.

Stage and confirm a fileYes

Your token, diff and receipt.

Mint it in the console this afternoon, and hand your timing crew a place to put Saturday’s file.

Open the consoleSee what exists today

3 tools · one MCP server · one console import

Everywhere else to go

9 places · one platform

Optional analytics cookies. We'd like to load Google Tag Manager (it carries Google Analytics, our advertising measurement and Microsoft Clarity) to understand how AnyRun is used. Until you accept, none of it is loaded at all; "necessary only" keeps it that way, and we don't sell your data. Details in the Cookie Policy.