---
title: "markov.now catalogue"
description: "Bounded prediction-market catalogue collection for markov.now: fetch a venue page, map it to ledger fields, decide admission, store the decided page, rank the head and warm the served catalogue."
---

> Documentation Index
> Fetch the complete documentation index at: https://help.tooluse.net/llms.txt
> Use this file to discover all available pages before exploring further.

# markov.now catalogue

<p>Bounded prediction-market catalogue collection for markov.now: fetch a venue page, map it to ledger fields, decide admission, store the decided page, rank the head and warm the served catalogue.</p>

<details data-command-index><summary>What you can do (8)</summary>
<h2>What you can do</h2>
<p>Available commands: 8 (5 read, 3 write). Enable only the commands your application needs.</p>
<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Command</th>
<th>Effect</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://help.tooluse.net/integrations/markov#command-markov-catalog-coverage-read">Read collection coverage</a> — <code>markov.catalog.coverage.read</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/markov#command-markov-catalog-page-fetch">Fetch one venue catalogue page</a> — <code>markov.catalog.page.fetch</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/markov#command-markov-catalog-page-normalize">Map a venue page to ledger fields</a> — <code>markov.catalog.page.normalize</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/markov#command-markov-catalog-page-classify">Decide catalogue admission</a> — <code>markov.catalog.page.classify</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/markov#command-markov-catalog-page-store">Store a decided venue page</a> — <code>markov.catalog.page.store</code></td>
<td>Write</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/markov#command-markov-head-rebuild">Rebuild the ranked head</a> — <code>markov.head.rebuild</code></td>
<td>Write</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/markov#command-markov-catalog-publish">Warm the served catalogue</a> — <code>markov.catalog.publish</code></td>
<td>Read</td>
</tr>
<tr>
<td><a href="https://help.tooluse.net/integrations/markov#command-markov-catalog-ingest">Ingest one venue page</a> — <code>markov.catalog.ingest</code></td>
<td>Write</td>
</tr>
</tbody></table>
</div>
</details>
<h2>Connect and use</h2>

<p><a href="https://www.tooluse.net/tools/integrations/markov">Connect and use</a></p>
<p>Open the integration&#39;s connection form to check the available credential source. The source has not been resolved for this documentation export. The instructions below apply when using your own provider account.</p>
<h2>Get your provider credentials</h2>
<p>Follow these steps for markov.now catalogue, then enter the issued values in the connection form below.</p>
<ol>
<li>Ask the markov.now catalogue service administrator for connection credentials and the account or endpoint identifiers required by this integration.</li>
</ol>
<h2>Where to enter credentials</h2>
<p>In the integration page, sign in, choose your workspace and open Connect. If a <strong>Credentials</strong> choice is shown, select <strong>Use my credentials</strong>. Fill the following connection fields and save. Provider credentials belong in this form, never in an MCP configuration or tool input.</p>
<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Connection field</th>
<th>Requirement</th>
</tr>
</thead>
<tbody><tr>
<td>Collector key</td>
<td>Required</td>
</tr>
</tbody></table>
</div><p>Open API keys and create a Tooluse.net key for the enabled commands.</p>
<p>Set TOOLUSE_API_KEY in your client and use the shared MCP configuration.</p>
<p><a href="https://help.tooluse.net/clients">Configure Claude Code, Codex or Cursor once</a></p>

<h2>Permissions and results</h2>

<p>If you have more than one workspace, check the selected workspace in the connection or API-key dialog before saving. Roles, enabled commands, expiry and revocation use Tooluse.net&#39;s existing permissions. Disabling a connection or revoking a key immediately prevents new calls.</p>

<p>Send one Claude tool_use block per request. Keep the same Idempotency-Key when retrying the same request; use a new key for a new call. The response includes the shared Tooluse.net receipt and Claude tool_result. Check both HTTP status and the returned tool result before treating a call as successful.</p>

<p>Your connection&#39;s daily allowance and key permissions also apply. Adding a connection does not make a provider request.</p>

<p>Calls return the shared execution receipt and a Claude tool_result. Provider output varies by operation; consult the provider documentation for its response fields. Unconfirmed calls should be checked before retrying.</p>

<h2>Call from your client</h2>

<p>Use the shared MCP configuration. Refresh your client&#39;s tool list after saving the connection or changing key permissions, then call the returned tool name with the example input below.</p>

<p><a href="https://help.tooluse.net/clients">Configure Claude Code, Codex or Cursor once</a></p>

<h2>Discover your enabled tools</h2>

<p>List permitted tools in Claude format. Read every page using page and size (maximum 100) until all results have been received. Use the returned name, not a catalog capability identifier, in the tool_use block.</p>

<pre><code class="language-bash">curl 'https://api.tooluse.net/v1/tools' \
  -H "Authorization: Bearer $TOOLUSE_API_KEY"
</code></pre>

<p>Find this command in the tool list permitted by your key. Replace svc_FROM_YOUR_TOOL_LIST with its returned name. Use a new Idempotency-Key for each new call and retain it when retrying that same call.</p>

<h2>HTTP call</h2>

<pre><code class="language-bash">curl 'https://api.tooluse.net/v1/tool-calls' \
  -H "Authorization: Bearer $TOOLUSE_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: replace-with-a-new-call-id' \
  --data '{
  "type": "tool_use",
  "id": "toolu_example",
  "name": "svc_FROM_YOUR_TOOL_LIST",
  "input": {}
}'
</code></pre>

<p>Send one Claude tool_use block per request. Keep the same Idempotency-Key when retrying the same request; use a new key for a new call. The response includes the shared Tooluse.net receipt and Claude tool_result. Check both HTTP status and the returned tool result before treating a call as successful.</p>

<h2>Commands</h2>

<details id="command-markov-catalog-coverage-read">
<summary><span>Read collection coverage — <code>markov.<wbr>catalog.<wbr>coverage.<wbr>read</code></span></summary>
<p>Run <strong>Read collection coverage</strong> with markov.now catalogue. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/markov?command=markov.catalog.coverage.read">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<p>This tool has no input parameters.</p>

<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/markov/commands/markov.catalog.coverage.read">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 20 seconds.</p>

</details>
<details id="command-markov-catalog-page-fetch">
<summary><span>Fetch one venue catalogue page — <code>markov.<wbr>catalog.<wbr>page.<wbr>fetch</code></span></summary>
<p>Run <strong>Fetch one venue catalogue page</strong> with markov.now catalogue. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/markov?command=markov.catalog.page.fetch">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>source</code></td>
<td>string</td>
<td>Required</td>
<td>Venue</td>
<td><code>enum: [&quot;polymarket&quot;,&quot;kalshi&quot;,&quot;manifold&quot;,&quot;limitless&quot;,&quot;predictit&quot;,&quot;myriad&quot;,&quot;forecastex&quot;]</code></td>
</tr>
<tr>
<td><code>cursor</code></td>
<td>string</td>
<td>Optional</td>
<td>Catalogue cursor</td>
<td><code>maxLength: 240</code></td>
</tr>
<tr>
<td><code>pageCap</code></td>
<td>integer</td>
<td>Optional</td>
<td>Venue pages this run</td>
<td><code>minimum: 1; maximum: 4</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/markov/commands/markov.catalog.page.fetch">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "source": "polymarket",
  "cursor": "",
  "pageCap": 4
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 45 seconds.</p>

</details>
<details id="command-markov-catalog-page-normalize">
<summary><span>Map a venue page to ledger fields — <code>markov.<wbr>catalog.<wbr>page.<wbr>normalize</code></span></summary>
<p>Run <strong>Map a venue page to ledger fields</strong> with markov.now catalogue. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/markov?command=markov.catalog.page.normalize">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>source</code></td>
<td>string</td>
<td>Required</td>
<td>Venue</td>
<td><code>enum: [&quot;polymarket&quot;,&quot;kalshi&quot;,&quot;manifold&quot;,&quot;limitless&quot;,&quot;predictit&quot;,&quot;myriad&quot;,&quot;forecastex&quot;]</code></td>
</tr>
<tr>
<td><code>rows</code></td>
<td>array</td>
<td>Required</td>
<td>Venue rows</td>
<td><code>maxItems: 500</code></td>
</tr>
<tr>
<td><code>rows[]</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/markov/commands/markov.catalog.page.normalize">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "source": "polymarket",
  "rows": [
    {
      "conditionId": "0x1ac6",
      "slug": "will-it-rain-tomorrow",
      "question": "Will it rain tomorrow?",
      "outcomes": [
        "Yes",
        "No"
      ],
      "outcomePrices": [
        "0.62",
        "0.38"
      ],
      "oneHourPriceChange": "0.04",
      "volume24hr": 12000,
      "endDate": "2026-10-01T12:00:00Z"
    }
  ]
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 30 seconds.</p>

</details>
<details id="command-markov-catalog-page-classify">
<summary><span>Decide catalogue admission — <code>markov.<wbr>catalog.<wbr>page.<wbr>classify</code></span></summary>
<p>Run <strong>Decide catalogue admission</strong> with markov.now catalogue. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/markov?command=markov.catalog.page.classify">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>source</code></td>
<td>string</td>
<td>Required</td>
<td>Venue</td>
<td><code>enum: [&quot;polymarket&quot;,&quot;kalshi&quot;,&quot;manifold&quot;,&quot;limitless&quot;,&quot;predictit&quot;,&quot;myriad&quot;,&quot;forecastex&quot;]</code></td>
</tr>
<tr>
<td><code>rows</code></td>
<td>array</td>
<td>Required</td>
<td>Venue rows</td>
<td><code>maxItems: 500</code></td>
</tr>
<tr>
<td><code>rows[]</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>rulesVersion</code></td>
<td>string</td>
<td>Optional</td>
<td>Admission rule version</td>
<td><code>maxLength: 40</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/markov/commands/markov.catalog.page.classify">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "source": "kalshi",
  "rulesVersion": "2026-09-23",
  "rows": [
    {
      "ticker": "RAIN-26",
      "title": "Will it rain in London tomorrow?"
    }
  ]
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 30 seconds.</p>

</details>
<details id="command-markov-catalog-page-store">
<summary><span>Store a decided venue page — <code>markov.<wbr>catalog.<wbr>page.<wbr>store</code></span></summary>
<p>Run <strong>Store a decided venue page</strong> with markov.now catalogue. This command can change provider data. Review the target and input before invoking it.</p>

<p>This operation can change provider data. Review the input before allowing an agent to call it.</p>

<p><a href="https://www.tooluse.net/tools/integrations/markov?command=markov.catalog.page.store">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>source</code></td>
<td>string</td>
<td>Required</td>
<td>Venue</td>
<td><code>enum: [&quot;polymarket&quot;,&quot;kalshi&quot;,&quot;manifold&quot;,&quot;limitless&quot;,&quot;predictit&quot;,&quot;myriad&quot;,&quot;forecastex&quot;]</code></td>
</tr>
<tr>
<td><code>items</code></td>
<td>array</td>
<td>Required</td>
<td>Decided rows</td>
<td><code>minItems: 1; maxItems: 500</code></td>
</tr>
<tr>
<td><code>items[]</code></td>
<td>object</td>
<td>Optional</td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>nextCursor</code></td>
<td>string</td>
<td>Required</td>
<td>Cursor the fetched page reported</td>
<td><code>maxLength: 240</code></td>
</tr>
<tr>
<td><code>advanceCursor</code></td>
<td>boolean</td>
<td>Optional</td>
<td>Advance the stored cursor</td>
<td></td>
</tr>
<tr>
<td><code>complete</code></td>
<td>boolean</td>
<td>Optional</td>
<td>The venue reported a completed sweep</td>
<td></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/markov/commands/markov.catalog.page.store">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "source": "kalshi",
  "nextCursor": "KXRAIN-26DEC",
  "advanceCursor": true,
  "items": [
    {
      "external_id": "RAIN-26",
      "assessment": {
        "decision": "candidate",
        "reason": "public-question"
      },
      "payload": {
        "ticker": "RAIN-26",
        "title": "Will it rain in London tomorrow?"
      }
    }
  ]
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 45 seconds.</p>

</details>
<details id="command-markov-head-rebuild">
<summary><span>Rebuild the ranked head — <code>markov.<wbr>head.<wbr>rebuild</code></span></summary>
<p>Run <strong>Rebuild the ranked head</strong> with markov.now catalogue. This command can change provider data. Review the target and input before invoking it.</p>

<p>This operation can change provider data. Review the input before allowing an agent to call it.</p>

<p><a href="https://www.tooluse.net/tools/integrations/markov?command=markov.head.rebuild">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>source</code></td>
<td>string</td>
<td>Required</td>
<td>Venue</td>
<td><code>enum: [&quot;polymarket&quot;]</code></td>
</tr>
<tr>
<td><code>limit</code></td>
<td>integer</td>
<td>Optional</td>
<td>Markets to rank</td>
<td><code>minimum: 1; maximum: 100</code></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/markov/commands/markov.head.rebuild">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "source": "polymarket",
  "limit": 100
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 45 seconds.</p>

</details>
<details id="command-markov-catalog-publish">
<summary><span>Warm the served catalogue — <code>markov.<wbr>catalog.<wbr>publish</code></span></summary>
<p>Run <strong>Warm the served catalogue</strong> with markov.now catalogue. This is a read command; it does not grant access beyond the connected account&#39;s permissions.</p>

<p>This is a read operation. Provider rate limits and data access rules still apply.</p>

<p><a href="https://www.tooluse.net/tools/integrations/markov?command=markov.catalog.publish">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>warmCache</code></td>
<td>boolean</td>
<td>Optional</td>
<td>Read each source once through the serving path</td>
<td></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/markov/commands/markov.catalog.publish">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "warmCache": true
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 45 seconds.</p>

</details>
<details id="command-markov-catalog-ingest">
<summary><span>Ingest one venue page — <code>markov.<wbr>catalog.<wbr>ingest</code></span></summary>
<p>Run <strong>Ingest one venue page</strong> with markov.now catalogue. This command can change provider data. Review the target and input before invoking it.</p>

<p>This operation can change provider data. Review the input before allowing an agent to call it.</p>

<p><a href="https://www.tooluse.net/tools/integrations/markov?command=markov.catalog.ingest">Connect and use</a></p>

<p><strong>Parameters</strong></p>

<p>Requiredness is local to the containing object. A required child is required only when its parent object or array item is provided. Alternative schemas are identified in the Constraints column; the linked full JSON Schema is authoritative.</p>

<div class="nb-table-scroll"><table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Required in parent</th>
<th>Description</th>
<th>Constraints</th>
</tr>
</thead>
<tbody><tr>
<td><code>source</code></td>
<td>string</td>
<td>Required</td>
<td>Venue</td>
<td><code>enum: [&quot;polymarket&quot;,&quot;kalshi&quot;,&quot;manifold&quot;,&quot;limitless&quot;,&quot;predictit&quot;,&quot;myriad&quot;,&quot;forecastex&quot;]</code></td>
</tr>
<tr>
<td><code>cursor</code></td>
<td>string</td>
<td>Optional</td>
<td>Catalogue cursor</td>
<td><code>maxLength: 240</code></td>
</tr>
<tr>
<td><code>pageCap</code></td>
<td>integer</td>
<td>Optional</td>
<td>Venue pages this run</td>
<td><code>minimum: 1; maximum: 4</code></td>
</tr>
<tr>
<td><code>receiptsOnly</code></td>
<td>boolean</td>
<td>Optional</td>
<td>Collect only retained receipts</td>
<td></td>
</tr>
</tbody></table>
</div>
<p><strong>Full JSON Schema</strong></p>

<p><a href="https://api.tooluse.net/v1/integrations/markov/commands/markov.catalog.ingest">Full JSON Schema</a></p>

<p><strong>Example input</strong></p>

<pre><code class="language-json">{
  "source": "polymarket",
  "cursor": "",
  "pageCap": 1
}
</code></pre>

<p>At most 1 provider requests per invocation; timeout: 120 seconds.</p>

</details>
<h2>Errors</h2>

<p>Check the key&#39;s expiry, revocation, workspace and allowed operations.</p>

<p>Reuse the same idempotency key only for the same request.</p>

<p>The connection or provider limit has been reached. Check the receipt before retrying.</p>

<h2>Test the connection</h2>

<p>Open the integration&#39;s commands below to inspect parameters and examples. Start with a read command for an account or resource you can access. Refresh your client&#39;s tool list, use the returned tool name, and check the execution result and usage. Provider charges and permissions still apply. Never test a write against production data without reviewing it.</p>

Source: https://help.tooluse.net/integrations/markov/index.mdx
