Skip to content
Fous Docs
MarkdownStudio

Status and repairs

How a method version stands, what runs get while Fous repairs it, how health checks work, and how to follow a method without polling.

Fous checks every method version in use and repairs it in place when a site changes, keeping its contract.

statusRuns
readyWork. Any answer makes a version ready at once.
degradedIts saved examples and runs stopped answering; runs are still tried.
repairingRefused until the repair ends, at the latest by repair.expected_at.

While a repair runs

Runs of a repairing version are refused for free, with when it is back at the latest and alternatives:

JSON
{  "error": {    "code": "method_repairing",    "message": "date.nager.at/list_public_holidays version 2 is under repair, back in about 4 min. Nothing was charged.",    "next_step": "Try again later, search for another method with GET /v1/search, or send a query: POST /v1/runs with a query.",    "version": 2,    "latest_version": 2,    "repair": {      "expected_at": "2026-10-23T09:15:00.000Z",      "back_in_minutes": 4    },    "retryable": true,    "retry_after": 240,    "alternatives": [],    "doc_url": "https://docs.fous.com/guides/errors#method_repairing",    "request_id": "req_mh7c2k9xQ1v3Zt8LbN0pRwY4"  }}

When the repair ships, runs work on the same version and revision goes up. Repairs are free. If one cannot fix the version, it stays degraded with last_repair saying why, ranks lower in search and queries, and Fous tries again later. A repair that stops on Fous's own trouble, or does not finish within 30 minutes, decides nothing.

Health checks

Only the method's own breakage counts against it: the site's answer no longer fits the method, or its saved examples stop answering. Your input, blocks, timeouts, a site failing now and then and Fous's own trouble never do, and no single run changes the status.

A version that ran in the last 7 days is checked daily; one that ran in the last 30 days, is pinned, or is a public method's latest, weekly; a degraded one, hourly. A check re-runs saved examples that answered with data; write methods are never sent. Checks are free.

Follow a method

GET /v1/methods/{ref}?wait=60 holds while the version is repairing. Add seen as status:revision:deletes_at from your last read (- for none), and it answers on any change.

Terminal
curl --get 'https://api.fous.com/v1/methods/date.nager.at/list_public_holidays' \  -H "Authorization: Bearer $FOUS_API_KEY" \  --data-urlencode 'wait=60' \  --data-urlencode 'seen=repairing:1:-'
JSON
{  "id": "mth_01m5kvvywdeac8fxs7nh0sw68w",  "slug": "date.nager.at/list_public_holidays",  "name": "List public holidays",  "description": "Lists a country's public holidays for a year from Nager.Date, with local names, regional coverage and holiday types.",  "returns": "date, weekday, English and local names, regions, type, nationwide flag",  "platform": { "name": "Nager.Date", "domain": "nager.at" },  "input_schema": {    "type": "object",    "required": ["country"],    "properties": {      "year": {        "type": "integer",        "minimum": 1,        "maximum": 9999,        "description": "Calendar year, for example 2026. Defaults to the current year."      },      "country": {        "type": "string",        "description": "Country name or two-letter country code, for example Germany or DE."      }    }  },  "effect": "read",  "auth": { "required": false },  "cost": { "credits": 1 },  "version": 2,  "latest_version": 2,  "revision": 2,  "pinned_version": 2,  "status": "ready",  "versions": [    {      "version": 2,      "revision": 2,      "latest": true,      "pinned": true,      "status": "ready",      "created_at": "2026-10-22T16:02:41.000Z",      "revised_at": "2026-10-23T09:13:52.000Z",      "changes": "Adds output holidays[].regions."    },    {      "version": 1,      "revision": 2,      "status": "ready",      "created_at": "2026-10-21T09:12:05.000Z",      "revised_at": "2026-10-24T03:10:19.000Z",      "changes": ""    }  ],  "visibility": "public",  "output_schema": {    "type": "object",    "properties": {      "country_name": { "type": "string" },      "year": { "type": "integer" },      "holidays": { "type": "array", "items": { "type": "object" } }    }  },  "example": {    "input": { "country": "Germany", "year": 2027 },    "output": {      "country_name": "Germany",      "year": 2027,      "holidays": [        {          "date": "2027-01-01",          "weekday": "Friday",          "english_name": "New Year's Day",          "local_name": "Neujahr",          "nationwide": "yes",          "regions": [],          "type": "Public"        }      ]    }  },  "stats": {    "success_rate": 0.92,    "runs": 13,    "last_success_at": "2026-10-23T09:14:08.000Z"  },  "owned": false}

Here the repair shipped: ready again, revision 2. Over MCP, methods with get and wait does the same.