# Courtyard.io scraper (`getascraper/courtyard-io-scraper`) Actor

Extract graded trading card, coin, and watch data from Courtyard.io: grading, fair market value, live orderbook, vault status, and blockchain provenance for every asset.

- **URL**: https://apify.com/getascraper/courtyard-io-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.64 / 1,000 card records

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 🃏 Courtyard.io scraper

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#ECEBFB;border:1px solid #CFCDF2;border-top:4px solid #3A3ED6;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Know the true value of a vaulted card, coin, or watch before you buy or sell it</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Point this actor at any Courtyard.io asset and get its grading detail, fair market value estimate, live orderbook, vault status, and blockchain provenance back as clean structured data, no manual page-checking required.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #CFCDF2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E31AB">💵 Fair market value</span><br>
<span style="font-size:12px;color:#57534E">Estimate plus a confidence score for every asset</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #CFCDF2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E31AB">📈 Live orderbook</span><br>
<span style="font-size:12px;color:#57534E">Lowest active ask and highest active bid, right now</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #CFCDF2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E31AB">🔗 Blockchain provenance</span><br>
<span style="font-size:12px;color:#57534E">Chain, contract, token ID, and proof of integrity</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #CFCDF2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#2E31AB">🏅 Grading detail</span><br>
<span style="font-size:12px;color:#57534E">Grader, grade, and serial number for every card, coin, or watch</span>
</td>
</tr>
</table>

Courtyard.io scraper pulls full grading detail, fair market value estimates, the live buy and sell orderbook, vault status, and blockchain proof of ownership for graded Pokemon cards, sports cards, coins, and watches on Courtyard.io. Feed it direct asset links or let it browse the marketplace for you.

### 🔍 What does Courtyard.io scraper do?

Point this actor at a Courtyard.io asset link, or ask it to browse the marketplace, vending machine, or leaderboard, and it reads every asset's own listing page for you.

For each item it returns the grading company and grade, the year, set, and card number, a fair market value estimate with a confidence score, and the current lowest asking price and highest buy offer sitting live on the order book right now. You also get vault location, whether the item has been redeemed, and the on-chain contract and token details that prove custody and ownership.

Most tools that track graded card prices only show you a single sale history. This one shows you what the market is offering to pay and accept for an item right now, not just what happened last time it changed hands.

### 💡 Why use Courtyard.io scraper?

- **I collect graded Pokemon or sports cards** and want to track fair market value and live asking prices across my whole collection without checking each listing by hand.
- **I run a card flipping or arbitrage business** and need to spot items priced below their fair market value or below recent comparable sales.
- **I build price trackers or collectible market dashboards** and need clean, structured data instead of screenshotting listings.
- **I research alternative assets** and want blockchain-verified custody and provenance data for vaulted collectibles, not just price.

### 🚀 How to use Courtyard.io scraper

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#ECEBFB;border:1px solid #CFCDF2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#3A3ED6;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Point it at assets</span><br>
<span style="font-size:12px;color:#57534E">Paste specific Courtyard.io asset links, or leave the field empty to browse automatically.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#ECEBFB;border:1px solid #CFCDF2;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#3A3ED6;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set your scope</span><br>
<span style="font-size:12px;color:#57534E">Pick a listing area, an optional category, how many assets you want, and whether to include price and transaction history.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#ECEBFB;border:1px solid #CFCDF2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#3A3ED6;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Get your data</span><br>
<span style="font-size:12px;color:#57534E">Click Start and open the Dataset tab. Switch between the Listings, Orderbook, and Provenance views.</span>
</td>
</tr>
</table>

### 📥 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| Asset URLs or IDs | array of URLs | No | Direct Courtyard.io asset links you already know about. Fastest and most reliable option. Leave empty to discover assets automatically instead. |
| Discovery mode | enum | No | Which listing area to browse when no asset URLs are given: marketplace, vending machine (cards, coins, or watches), or leaderboard. |
| Category filter | enum | No | Restrict automatic discovery to one category, such as Pokemon, Basketball, or Watches. |
| Max assets | integer | No | Maximum number of assets to return. |
| Include price history & transaction history | boolean | No | Adds comparable sales across every grade of the same item, plus its full transfer history. Roughly triples the requests per asset. |
| Include likes count | boolean | No | Adds the public likes count for each asset. |
| Proxy configuration | object | No | Leave on the default setting for reliable, uninterrupted scraping. |

### 📤 Output

Each dataset row is one asset, with its grading, pricing, and provenance data.

```json
{
    "asset_id": "efcb845d5d8d84cd7013ce60b0a05297a9573e1634bd96bfb6fcc6c39addb361",
    "asset_url": "https://courtyard.io/asset/efcb845d5d8d84cd7013ce60b0a05297a9573e1634bd96bfb6fcc6c39addb361",
    "title": "2021 Pokémon SM Black Star Promo #SM247 Reshiram & Charizard GX - Holo Full Art Reshiram & Charizard GX Premium Collection (PSA 8 NM-MT)",
    "category": "Pokémon",
    "year": "2021",
    "set_name": "Pokémon SM Black Star Promo",
    "subject": "Reshiram & Charizard GX",
    "grader": "PSA",
    "grade": "8 NM-MT",
    "serial_number": "64778443",
    "fmv_estimate_usd": 42.9,
    "fmv_confidence": "5",
    "minimum_bid_threshold": 37.33,
    "lowest_listing_usd": 40.01,
    "lowest_listing_expiration": "2026-08-03T21:41:09Z",
    "highest_offer_usd": 36.33,
    "active_listings_count": 1,
    "active_offers_count": 1,
    "vaulted": true,
    "vault_location": "Courtyard US",
    "owner_username": "crimsonhydra10630",
    "chain": "polygon",
    "contract": "0x251BE3A17Af4892035C37ebf5890F4a4D889dcAD",
    "token_id": "108462354313195755805756543849539342188059017706713282205836384568338097746785",
    "likes_count": 2,
    "scraped_at": "2026-07-04T21:41:08.000Z"
}
````

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| title | string | Full descriptive title of the card, coin, or watch |
| category | string | Category such as Pokemon, Basketball, or Watches |
| grader | string | Grading company: PSA, BGS, or CGC |
| grade | string | The grade assigned by the grading company |
| fmv\_estimate\_usd | number | Fair market value estimate in US dollars |
| fmv\_confidence | string | Confidence score behind the fair market value estimate |
| minimum\_bid\_threshold | number | Lowest bid the platform will currently accept |
| lowest\_listing\_usd | number | Lowest active asking price on the live order book |
| highest\_offer\_usd | number | Highest active buy offer on the live order book |
| vaulted | boolean | Whether the physical item is held in a vault |
| vault\_location | string | Name of the vault holding the physical item |
| owner\_username | string | Current owner's public username |
| chain | string | Blockchain network the asset is recorded on |
| contract | string | Smart contract address for the asset |
| token\_id | string | Unique on-chain token ID |
| proof\_of\_integrity | string | On-chain hash proving the asset record has not been tampered with |
| likes\_count | number | Public likes count for the asset |
| price\_history\_json | string | Comparable sales across every grade of the same item, when enabled |
| transactions\_json | string | Full on-chain transfer history, when enabled |

### 💰 Pricing

This actor runs on a pay per result basis. You only pay for the assets it actually returns, so an empty or failed run costs you nothing. There are no subscriptions or minimum monthly fees.

### ⭐ Enjoying Courtyard.io scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#ECEBFB;border:1px solid #CFCDF2;border-left:5px solid #3A3ED6;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">One run just replaced an hour of checking listings by hand.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other collectors, flippers, and dashboard builders find this actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#3A3ED6;border:1px solid #CFCDF2;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/courtyard-io-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

**Does this work without a Courtyard.io account?**
Yes. All the data in this actor is publicly viewable and does not require logging in or connecting a wallet.

**Can I track prices for a specific card over time?**
Yes. Turn on price history in the input to get comparable sales across every grade of the same item, then run the actor on a schedule to build your own price timeline.

**Why did some assets come back with missing fields?**
Some fields, like an active listing or a public username, only exist when the asset actually has one. This actor never fills in placeholder text for missing data, so you can trust every value you see is real.

**Is this legal to use?**
This actor only extracts data that is already publicly visible on Courtyard.io. You are responsible for how you use the data and for complying with Courtyard.io's own terms of service. If you need a custom solution or run into an issue, open a ticket in the Issues tab.

# Actor input Schema

## `assetUrls` (type: `array`):

Direct Courtyard.io asset links (e.g. https://courtyard.io/asset/efcb845d...) or bare 64-character asset IDs, one per line. This is the fastest and most reliable way to pull specific graded cards, coins, or watches you already know about. Leave empty to discover assets automatically instead (see 'Discovery mode' below).

## `discoveryMode` (type: `string`):

When 'Asset URLs or IDs' is empty, this Actor browses Courtyard.io's marketplace and collects assets automatically. Choose which listing surface to browse.

## `category` (type: `string`):

Restrict discovery to one category. 'Any' browses the default unfiltered feed for the chosen discovery mode.

## `maxItems` (type: `integer`):

Maximum number of assets to scrape and push to the dataset. When using 'Asset URLs or IDs', this caps how many of the provided links are processed. When discovering automatically, this controls how far the Actor scrolls the listing page before stopping.

## `deepScrape` (type: `boolean`):

When enabled, fetches two extra API calls per asset: the full per-grade price history (comparable sales across every graded population of the same card/item) and the on-chain transaction history (transfer hashes, wallet addresses, payment amounts). Roughly triples request volume per asset. Disable for a faster, lighter run when you only need the core listing, grading, and live orderbook data.

## `includeLikesCount` (type: `boolean`):

Adds the public likes/favorites count for each asset with one extra lightweight API call.

## `proxyConfiguration` (type: `object`):

Courtyard.io's discovery pages (courtyard.io) only need a standard datacenter proxy. The underlying api.courtyard.io detail endpoint is gated by a browser-TLS fingerprint check (not an IP-reputation check), which this Actor already satisfies via got-scraping's browser impersonation, so datacenter proxy is sufficient here too.

## Actor input object example

```json
{
  "assetUrls": [
    {
      "url": "https://courtyard.io/asset/efcb845d5d8d84cd7013ce60b0a05297a9573e1634bd96bfb6fcc6c39addb361"
    }
  ],
  "discoveryMode": "marketplace",
  "category": "any",
  "maxItems": 50,
  "deepScrape": true,
  "includeLikesCount": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `runStats` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "assetUrls": [
        {
            "url": "https://courtyard.io/asset/efcb845d5d8d84cd7013ce60b0a05297a9573e1634bd96bfb6fcc6c39addb361"
        }
    ],
    "discoveryMode": "marketplace",
    "category": "any",
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/courtyard-io-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "assetUrls": [{ "url": "https://courtyard.io/asset/efcb845d5d8d84cd7013ce60b0a05297a9573e1634bd96bfb6fcc6c39addb361" }],
    "discoveryMode": "marketplace",
    "category": "any",
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/courtyard-io-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "assetUrls": [
    {
      "url": "https://courtyard.io/asset/efcb845d5d8d84cd7013ce60b0a05297a9573e1634bd96bfb6fcc6c39addb361"
    }
  ],
  "discoveryMode": "marketplace",
  "category": "any",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/courtyard-io-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/courtyard-io-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Courtyard.io scraper",
        "description": "Extract graded trading card, coin, and watch data from Courtyard.io: grading, fair market value, live orderbook, vault status, and blockchain provenance for every asset.",
        "version": "0.1",
        "x-build-id": "PsUf0mGdpTgNV1pae"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getascraper~courtyard-io-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getascraper-courtyard-io-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/getascraper~courtyard-io-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getascraper-courtyard-io-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/getascraper~courtyard-io-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getascraper-courtyard-io-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "assetUrls": {
                        "title": "Asset URLs or IDs",
                        "type": "array",
                        "description": "Direct Courtyard.io asset links (e.g. https://courtyard.io/asset/efcb845d...) or bare 64-character asset IDs, one per line. This is the fastest and most reliable way to pull specific graded cards, coins, or watches you already know about. Leave empty to discover assets automatically instead (see 'Discovery mode' below).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "discoveryMode": {
                        "title": "Discovery mode",
                        "enum": [
                            "marketplace",
                            "vending-machine",
                            "vending-machine-coins",
                            "vending-machine-watches",
                            "leaderboard"
                        ],
                        "type": "string",
                        "description": "When 'Asset URLs or IDs' is empty, this Actor browses Courtyard.io's marketplace and collects assets automatically. Choose which listing surface to browse.",
                        "default": "marketplace"
                    },
                    "category": {
                        "title": "Category filter",
                        "enum": [
                            "any",
                            "Pokemon",
                            "Basketball",
                            "Baseball",
                            "Football",
                            "Soccer",
                            "Hockey",
                            "Magic The Gathering",
                            "One Piece",
                            "Yu-Gi-Oh!",
                            "Marvel",
                            "Disney",
                            "Star Wars",
                            "Watches",
                            "Coins"
                        ],
                        "type": "string",
                        "description": "Restrict discovery to one category. 'Any' browses the default unfiltered feed for the chosen discovery mode.",
                        "default": "any"
                    },
                    "maxItems": {
                        "title": "Max assets",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of assets to scrape and push to the dataset. When using 'Asset URLs or IDs', this caps how many of the provided links are processed. When discovering automatically, this controls how far the Actor scrolls the listing page before stopping.",
                        "default": 50
                    },
                    "deepScrape": {
                        "title": "Include price history & transaction history",
                        "type": "boolean",
                        "description": "When enabled, fetches two extra API calls per asset: the full per-grade price history (comparable sales across every graded population of the same card/item) and the on-chain transaction history (transfer hashes, wallet addresses, payment amounts). Roughly triples request volume per asset. Disable for a faster, lighter run when you only need the core listing, grading, and live orderbook data.",
                        "default": true
                    },
                    "includeLikesCount": {
                        "title": "Include likes count",
                        "type": "boolean",
                        "description": "Adds the public likes/favorites count for each asset with one extra lightweight API call.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Courtyard.io's discovery pages (courtyard.io) only need a standard datacenter proxy. The underlying api.courtyard.io detail endpoint is gated by a browser-TLS fingerprint check (not an IP-reputation check), which this Actor already satisfies via got-scraping's browser impersonation, so datacenter proxy is sufficient here too.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
