Directory
The catalog of markets the protocol lists.
How it works
Directory is the required socket. Opfico polls the venue's catalog about once a minute and publishes the markets an operator has listed. The body may be an array, or an object with markets, data, or events.
The catalog
| Field | Required | Meaning |
|---|---|---|
id, title | Yes | The market, and the name on the board. |
yes, no | Yes, or outcomes | At least two outcomes. |
rule, settlesAt | Yes | Also accepted as resolution.rule, resolution.settlesAt, or endDate. |
maxSpreadCents | Yes | Widest quote that still scores. |
minShares | Yes | Size that must rest. |
contract | No | A per-market settlement pin. |
collateral | No | Must match the venue when it is set. |
$ curl -s https://venue.example/markets
[
{ "id": "eth-4k-week", "title": "Will ETH close above $4,000 this week?", "yes": 0.59, "no": 0.41 }
]{
"id": "eth-4k-week",
"title": "Will ETH close above $4,000 this week?",
"category": "Crypto",
"yes": 0.59,
"no": 0.41,
"maxSpreadCents": 2.6,
"minShares": 20,
"rule": "Settles on the venue's named price index at the stated time.",
"settlesAt": "2026-12-02T00:00:00Z",
"contract": "sample:harbour:books"
}What stays listed
| Change | Result |
|---|---|
| New id | Stays in review until an operator lists it. |
| Price update | A listed market stays listed. |
| Title, rule, settle time, collateral, or pinned contract | Returns to review, and names what changed. |
| Route | Returns |
|---|---|
GET /directory/board | Listed markets whose venue is live. |
GET /directory/books?venue= | Both lists, each with its reason. |
$ curl -s https://api.opfico.network/directory/board
200 listed markets