Surf Data API

The Surf Data API (internally "Hermod") is a credit-billed REST gateway of 119 typed endpoints across 14 domains: Exchange, Market, Token, Project, Social, News, Wallet, Onchain, Web, Search, Fund, Signal, Prediction Market, Hyperliquid, and DEX. Bearer API-key auth, limit/offset pagination, and a { error: { code, message } } envelope.

OpenAPI Specification

surf-openapi-original.json Raw ↑
{
  "components": {
    "schemas": {
      "AccessListEntry": {
        "additionalProperties": false,
        "properties": {
          "address": {
            "description": "Account address (0x-prefixed)",
            "type": "string"
          },
          "storageKeys": {
            "description": "List of storage slot keys (0x-prefixed hex)",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "address",
          "storageKeys"
        ],
        "type": "object"
      },
      "AirdropActivityItem": {
        "additionalProperties": false,
        "properties": {
          "coin_name": {
            "description": "Project/coin name",
            "type": "string"
          },
          "coin_symbol": {
            "description": "Token symbol",
            "type": "string"
          },
          "created_at": {
            "description": "Activity creation time (Unix seconds)",
            "format": "int64",
            "type": "integer"
          },
          "followers_count": {
            "description": "Twitter followers count",
            "type": "string"
          },
          "id": {
            "description": "Activity identifier",
            "type": "string"
          },
          "reward": {
            "description": "Reward description",
            "type": "string"
          },
          "reward_date": {
            "description": "Expected reward date",
            "type": "string"
          },
          "reward_type": {
            "description": "Reward type (TOKEN, NFT, etc.)",
            "type": "string"
          },
          "status": {
            "description": "Activity status (ACTIVE, ENDED, etc.)",
            "type": "string"
          },
          "total_raise": {
            "description": "Total funds raised in USD",
            "format": "int64",
            "type": "integer"
          },
          "updated_at": {
            "description": "Last update time (Unix seconds)",
            "format": "int64",
            "type": "integer"
          },
          "xscore": {
            "description": "Social score",
            "type": "string"
          }
        },
        "required": [
          "id",
          "coin_name",
          "status",
          "reward",
          "reward_type",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "AirdropSearchItem": {
        "additionalProperties": false,
        "properties": {
          "coin_symbol": {
            "description": "Token ticker symbol",
            "type": "string"
          },
          "followers_count": {
            "description": "X/Twitter follower count (0 if unknown)",
            "format": "int64",
            "type": "integer"
          },
          "last_status_update": {
            "description": "Last status change as Unix seconds",
            "format": "int64",
            "type": "integer"
          },
          "logo_url": {
            "description": "Project logo image URL",
            "type": "string"
          },
          "project_id": {
            "description": "Surf project UUID if linked",
            "type": "string"
          },
          "project_name": {
            "description": "Project/coin name",
            "type": "string"
          },
          "reward_date": {
            "description": "Expected reward date as Unix seconds (0 if unknown)",
            "format": "int64",
            "type": "integer"
          },
          "reward_type": {
            "description": "Reward type: airdrop, points, whitelist, nft, role, ambassador",
            "type": "string"
          },
          "status": {
            "description": "Airdrop lifecycle stage: `POTENTIAL` (speculated, tasks open), `CONFIRMED` (announced, tasks open), `SNAPSHOT` (eligibility snapshot taken), `VERIFICATION` (claim window open), `REWARD_AVAILABLE` (ready to claim), `DISTRIBUTED` (sent, historical)",
            "type": "string"
          },
          "task_summary": {
            "$ref": "#/components/schemas/AirdropTaskSummary",
            "description": "Aggregated task statistics"
          },
          "tasks": {
            "description": "Full task list (only with include_tasks=true)",
            "items": {
              "$ref": "#/components/schemas/AirdropTaskItem"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "total_raise": {
            "description": "Total project fundraise in USD (0 if unknown)",
            "format": "int64",
            "type": "integer"
          },
          "xscore": {
            "description": "CryptoRank social score (0 if unknown)",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "project_name",
          "status",
          "total_raise",
          "xscore",
          "followers_count",
          "reward_date",
          "last_status_update"
        ],
        "type": "object"
      },
      "AirdropTaskItem": {
        "additionalProperties": false,
        "properties": {
          "blockchains": {
            "description": "Supported blockchain names",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "close_date": {
            "description": "Task close date as Unix seconds (0 if unknown)",
            "format": "int64",
            "type": "integer"
          },
          "cost": {
            "description": "Participation cost in USD (0 = free)",
            "format": "int32",
            "type": "integer"
          },
          "external_link": {
            "description": "Public participation URL",
            "type": "string"
          },
          "is_exclusive": {
            "description": "Whether task is exclusive",
            "type": "boolean"
          },
          "open_date": {
            "description": "Task open date as Unix seconds (0 if unknown)",
            "format": "int64",
            "type": "integer"
          },
          "status": {
            "description": "Task status: OPEN, CLOSED, UPCOMING",
            "type": "string"
          },
          "time_minutes": {
            "description": "Estimated time in minutes",
            "format": "int32",
            "type": "integer"
          },
          "title": {
            "description": "Task title",
            "type": "string"
          },
          "type": {
            "description": "Task type: social, testnet, mainnet, staking, trading, etc.",
            "type": "string"
          }
        },
        "required": [
          "title",
          "type",
          "status",
          "is_exclusive",
          "cost",
          "time_minutes",
          "open_date",
          "close_date"
        ],
        "type": "object"
      },
      "AirdropTaskSummary": {
        "additionalProperties": false,
        "properties": {
          "open": {
            "description": "Number of currently open tasks",
            "format": "int32",
            "type": "integer"
          },
          "total": {
            "description": "Total number of tasks",
            "format": "int32",
            "type": "integer"
          },
          "types": {
            "description": "Distinct task types",
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "total",
          "open",
          "types"
        ],
        "type": "object"
      },
      "AnalyticsBody": {
        "additionalProperties": false,
        "properties": {
          "category_trends": {
            "description": "Daily volume/OI time series by platform. When category is omitted, values are summed across all categories.",
            "items": {
              "$ref": "#/components/schemas/CategoryDailyPoint"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "momentum_markets": {
            "description": "Per-market momentum signals sorted by sort_by",
            "items": {
              "$ref": "#/components/schemas/MomentumItem"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "momentum_summary": {
            "$ref": "#/components/schemas/MomentumSummary",
            "description": "Distribution of momentum signals (within category, or globally when category is omitted)"
          },
          "top_markets": {
            "description": "Top markets by open interest (within category, or globally when category is omitted)",
            "items": {
              "$ref": "#/components/schemas/DiscoverMarketItem"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "category_trends",
          "top_markets",
          "momentum_summary",
          "momentum_markets"
        ],
        "type": "object"
      },
      "BridgeRankingItem": {
        "additionalProperties": false,
        "properties": {
          "project": {
            "description": "Bridge protocol name",
            "type": "string"
          },
          "tx_count": {
            "description": "Total number of bridge transfers",
            "format": "int64",
            "type": "integer"
          },
          "volume_usd": {
            "description": "Total USD volume in the time range",
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "project",
          "volume_usd",
          "tx_count"
        ],
        "type": "object"
      },
      "CategoryDailyPoint": {
        "additionalProperties": false,
        "properties": {
          "market_count": {
            "description": "Number of active markets",
            "format": "int64",
            "type": "integer"
          },
          "open_interest_usd": {
            "description": "Cumulative open interest (USD)",
            "format": "double",
            "type": "number"
          },
          "source": {
            "description": "Polymarket or Kalshi",
            "type": "string"
          },
          "timestamp": {
            "description": "Day start Unix timestamp",
            "format": "int64",
            "type": "integer"
          },
          "volume_usd": {
            "description": "Daily notional volume (USD)",
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "timestamp",
          "source",
          "volume_usd",
          "open_interest_usd",
          "market_count"
        ],
        "type": "object"
      },
      "CorrelationItem": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "Shared category",
            "type": "string"
          },
          "correlation": {
            "description": "30-day Pearson correlation coefficient",
            "format": "double",
            "type": "number"
          },
          "market_a_condition_id": {
            "description": "First market condition ID",
            "type": "string"
          },
          "market_a_question": {
            "description": "First market question",
            "type": "string"
          },
          "market_b_condition_id": {
            "description": "Second market condition ID",
            "type": "string"
          },
          "market_b_question": {
            "description": "Second market question",
            "type": "string"
          },
          "overlapping_days": {
            "description": "Number of trading days with data for both markets",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "market_a_condition_id",
          "market_b_condition_id",
          "category",
          "correlation",
          "overlapping_days"
        ],
        "type": "object"
      },
      "CursorDataResponseHyperliquidEpisode": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CursorDataResponseHyperliquidEpisode.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/HyperliquidEpisode"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "meta": {
            "$ref": "#/components/schemas/CursorMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "CursorDataResponseHyperliquidFill": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CursorDataResponseHyperliquidFill.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/HyperliquidFill"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "meta": {
            "$ref": "#/components/schemas/CursorMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "CursorDataResponseXTweet": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CursorDataResponseXTweet.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/XTweet"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "meta": {
            "$ref": "#/components/schemas/CursorMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "CursorDataResponseXUser": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CursorDataResponseXUser.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/XUser"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "meta": {
            "$ref": "#/components/schemas/CursorMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "CursorMeta": {
        "additionalProperties": false,
        "properties": {
          "cached": {
            "description": "Whether this response was served from cache",
            "type": "boolean"
          },
          "credits_used": {
            "description": "Credits deducted for this request",
            "format": "int64",
            "type": "integer"
          },
          "empty_reason": {
            "description": "Hint explaining why the data array is empty, when applicable",
            "type": "string"
          },
          "has_more": {
            "description": "Whether more items exist beyond the current page.",
            "type": "boolean"
          },
          "limit": {
            "description": "Maximum number of items returned in this response",
            "format": "int64",
            "type": "integer"
          },
          "next_cursor": {
            "description": "Opaque cursor token for fetching the next page. Empty when no more pages exist.",
            "type": "string"
          },
          "watermark": {
            "description": "Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "has_more",
          "limit",
          "credits_used",
          "cached"
        ],
        "type": "object"
      },
      "DataAPIError": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataAPIError.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "error": {
            "$ref": "#/components/schemas/DataAPIErrorDetail"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "DataAPIErrorDetail": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "DataObjectResponseAnalyticsBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseAnalyticsBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/AnalyticsBody"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseExchangePerpResponse": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseExchangePerpResponse.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ExchangePerpResponse"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseFundDetailItem": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseFundDetailItem.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/FundDetailItem"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseHumaProjectDetailBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseHumaProjectDetailBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/HumaProjectDetailBody"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseHyperliquidAccount": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseHyperliquidAccount.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/HyperliquidAccount"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseHyperliquidOrders": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseHyperliquidOrders.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/HyperliquidOrders"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseHyperliquidPerformanceView": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseHyperliquidPerformanceView.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/HyperliquidPerformanceView"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseHyperliquidPositions": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseHyperliquidPositions.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/HyperliquidPositions"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseHyperliquidTraderStats": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseHyperliquidTraderStats.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/HyperliquidTraderStats"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseNewsArticleDetailItem": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseNewsArticleDetailItem.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/NewsArticleDetailItem"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseOnchainGasPriceItem": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseOnchainGasPriceItem.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/OnchainGasPriceItem"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseSignalProject": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseSignalProject.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SignalProject"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseSocialDetailBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseSocialDetailBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SocialDetailBody"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseSocialSentimentItem": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseSocialSentimentItem.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SocialSentimentItem"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseTGEItem": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseTGEItem.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TGEItem"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseWalletDetailBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseWalletDetailBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/WalletDetailBody"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseWebFetchResultItem": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseWebFetchResultItem.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/WebFetchResultItem"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataObjectResponseXUser": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataObjectResponseXUser.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/XUser"
          },
          "meta": {
            "$ref": "#/components/schemas/ObjectResponseMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataResponseAirdropActivityItem": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataResponseAirdropActivityItem.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/AirdropActivityItem"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "meta": {
            "$ref": "#/components/schemas/OffsetMeta"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "DataResponseAirdropSearchItem": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataResponseAirdropSearchItem.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/AirdropSearchItem"
            },
            "type": [
              "array",
              "nu

# --- truncated at 32 KB (820 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/surf/refs/heads/main/openapi/surf-openapi-original.json