River Markets Generic Assets API
The generic-assets API from River Markets — 3 operation(s) for generic-assets.
The generic-assets API from River Markets — 3 operation(s) for generic-assets.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/river-markets-generic-assets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: River Markets Generic Assets API
description: '# Getting Started
River Markets provides users with a unified prime brokerage interface for prediction markets, including
- Liquidity aggregation
- Order routing
- Market and data search
This API guide will help you get up and running quickly.'
contact:
name: River Markets
url: https://rivermarkets.com/
license:
name: Proprietary
version: 1.0.0
servers:
- url: https://api.rivermarkets.com
security:
- SignedRequestKeyId: []
SignedRequestTimestamp: []
SignedRequestSignature: []
- BearerAuth: []
tags:
- name: generic-assets
paths:
/v1/generic-assets:
get:
tags:
- generic-assets
summary: List Generic Assets
description: 'List generic assets visible to the caller (their own + platform-curated approved).
Sorted by resolves_at (soonest first), then name.'
operationId: list_generic_assets_v1_generic_assets_get
parameters:
- name: category
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Filter by category. Repeat to filter to multiple categories.
title: Category
description: Filter by category. Repeat to filter to multiple categories.
- name: subcategory
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by subcategory
title: Subcategory
description: Filter by subcategory
- name: owner
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: '''me'' for own baskets only, ''platform'' for public only'
title: Owner
description: '''me'' for own baskets only, ''platform'' for public only'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericAssetListResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
post:
tags:
- generic-assets
summary: Create Generic Asset
description: Create a new user-owned generic asset (basket).
operationId: create_generic_asset_v1_generic_assets_post
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GenericAssetCreate'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericAssetDetailResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/generic-assets/{generic_asset_id}:
get:
tags:
- generic-assets
summary: Get Generic Asset
description: Fetch a single generic asset (own or public-approved) with its resolved member markets.
operationId: get_generic_asset_v1_generic_assets__generic_asset_id__get
parameters:
- name: generic_asset_id
in: path
required: true
schema:
type: string
format: uuid
title: Generic Asset Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericAssetDetailResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- generic-assets
summary: Update Generic Asset
description: Update a user-owned generic asset's name or description. Platform-curated assets cannot be edited via this route.
operationId: update_generic_asset_v1_generic_assets__generic_asset_id__patch
parameters:
- name: generic_asset_id
in: path
required: true
schema:
type: string
format: uuid
title: Generic Asset Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GenericAssetUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericAssetResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- generic-assets
summary: Delete Generic Asset
description: Delete a user-owned generic asset (cascades to members).
operationId: delete_generic_asset_v1_generic_assets__generic_asset_id__delete
parameters:
- name: generic_asset_id
in: path
required: true
schema:
type: string
format: uuid
title: Generic Asset Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/generic-assets/{generic_asset_id}/members:
post:
tags:
- generic-assets
summary: Add Generic Asset Members
description: Add river_ids to a user-owned generic asset.
operationId: add_generic_asset_members_v1_generic_assets__generic_asset_id__members_post
parameters:
- name: generic_asset_id
in: path
required: true
schema:
type: string
format: uuid
title: Generic Asset Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GenericAssetMemberAdd'
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- generic-assets
summary: Remove Generic Asset Members
description: Remove river_ids from a user-owned generic asset.
operationId: remove_generic_asset_members_v1_generic_assets__generic_asset_id__members_delete
parameters:
- name: generic_asset_id
in: path
required: true
schema:
type: string
format: uuid
title: Generic Asset Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GenericAssetMemberRemove'
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
GenericAssetResponse:
properties:
generic_asset_id:
type: string
title: Generic Asset Id
name:
type: string
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
category:
anyOf:
- type: string
- type: 'null'
title: Category
subcategory:
anyOf:
- type: string
- type: 'null'
title: Subcategory
resolves_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Resolves At
owner_subaccount_id:
anyOf:
- type: string
- type: 'null'
title: Owner Subaccount Id
status:
anyOf:
- type: string
- type: 'null'
title: Status
river_ids:
items:
type: integer
type: array
title: River Ids
inserted_at:
type: string
title: Inserted At
description: Creation timestamp (UTC)
type: object
required:
- generic_asset_id
- name
- river_ids
- inserted_at
title: GenericAssetResponse
description: A tradeable generic asset (platform-curated or user-owned) with its member river_ids.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
GenericAssetUpdate:
properties:
name:
anyOf:
- type: string
maxLength: 255
- type: 'null'
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
type: object
title: GenericAssetUpdate
description: Request schema for updating a user-owned generic asset.
InstrumentStatus:
type: string
enum:
- active
- closed
- inactive
title: InstrumentStatus
description: "Instrument status derived in instruments table from exchange-specific fields.\n\nKalshi: maps from kalshi_markets.status\n - 'active' -> ACTIVE\n - everything else (closed, determined, finalized, settled, amended, inactive, initialized) -> CLOSED\n\nPolymarket: maps from polymarket_markets.closed and polymarket_markets.active booleans\n - closed=true -> CLOSED\n - active=true (and not closed) -> ACTIVE\n - else (active=false, closed=false) -> INACTIVE"
GenericAssetDetailResponse:
properties:
generic_asset_id:
type: string
format: uuid
title: Generic Asset Id
owner_subaccount_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Owner Subaccount Id
name:
type: string
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
category:
anyOf:
- type: string
- type: 'null'
title: Category
subcategory:
anyOf:
- type: string
- type: 'null'
title: Subcategory
resolves_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Resolves At
status:
anyOf:
- type: string
- type: 'null'
title: Status
members:
items:
$ref: '#/components/schemas/MarketSearchResult'
type: array
title: Members
inserted_at:
type: string
title: Inserted At
description: Creation timestamp (UTC)
type: object
required:
- generic_asset_id
- name
- members
- inserted_at
title: GenericAssetDetailResponse
description: Response schema for a generic asset with its resolved members (detail view).
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
GenericAssetMemberRemove:
properties:
river_ids:
items:
type: integer
type: array
minItems: 1
title: River Ids
type: object
required:
- river_ids
title: GenericAssetMemberRemove
description: Request schema for removing members from a user-owned generic asset.
GenericAssetListResponse:
properties:
assets:
items:
$ref: '#/components/schemas/GenericAssetResponse'
type: array
title: Assets
type: object
required:
- assets
title: GenericAssetListResponse
GenericAssetMemberAdd:
properties:
river_ids:
items:
type: integer
type: array
minItems: 1
title: River Ids
type: object
required:
- river_ids
title: GenericAssetMemberAdd
description: Request schema for adding members to a user-owned generic asset.
GenericAssetCreate:
properties:
subaccount_id:
type: string
format: uuid
title: Subaccount Id
name:
type: string
maxLength: 255
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
river_ids:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: River Ids
type: object
required:
- subaccount_id
- name
title: GenericAssetCreate
description: Request schema for creating a new user-owned generic asset (basket).
MarketSearchResult:
properties:
river_id:
type: integer
title: River Id
exchange_value:
type: integer
title: Exchange Value
exchange_name:
type: string
title: Exchange Name
ticker:
anyOf:
- type: string
- type: 'null'
title: Ticker
token_id_yes:
anyOf:
- type: string
- type: 'null'
title: Token Id Yes
token_id_no:
anyOf:
- type: string
- type: 'null'
title: Token Id No
slug:
anyOf:
- type: string
- type: 'null'
title: Slug
tick_size_price:
type: number
title: Tick Size Price
tick_size_qty:
type: number
title: Tick Size Qty
tick_structure:
type: string
title: Tick Structure
default: uniform
minimum_order_size:
type: number
title: Minimum Order Size
expiration_datetime:
anyOf:
- type: string
- type: 'null'
title: Expiration Datetime
description: Market expiration datetime (UTC)
start_datetime:
anyOf:
- type: string
- type: 'null'
title: Start Datetime
description: Game/event start datetime (UTC). Populated for sports; null otherwise.
neg_risk:
type: boolean
title: Neg Risk
neg_risk_id:
anyOf:
- type: string
- type: 'null'
title: Neg Risk Id
condition_id:
anyOf:
- type: string
- type: 'null'
title: Condition Id
name:
type: string
title: Name
subtitle:
anyOf:
- type: string
- type: 'null'
title: Subtitle
description:
anyOf:
- type: string
- type: 'null'
title: Description
status:
$ref: '#/components/schemas/InstrumentStatus'
category:
type: string
title: Category
default: Other
subcategory:
anyOf:
- type: string
- type: 'null'
title: Subcategory
rank:
anyOf:
- type: number
- type: 'null'
title: Rank
event_ticker:
anyOf:
- type: string
- type: 'null'
title: Event Ticker
event_title:
anyOf:
- type: string
- type: 'null'
title: Event Title
volume:
anyOf:
- type: integer
- type: 'null'
title: Volume
volume_24h:
anyOf:
- type: integer
- type: 'null'
title: Volume 24H
series_ticker:
anyOf:
- type: string
- type: 'null'
title: Series Ticker
image:
anyOf:
- type: string
- type: 'null'
title: Image
last_price:
anyOf:
- type: number
- type: 'null'
title: Last Price
description: Most recent YES price normalized to 0.0–1.0 (probability). Kalshi cents / 100; Polymarket already 0.0–1.0. NULL when no trade has been observed.
primary_entity_name:
anyOf:
- type: string
- type: 'null'
title: Primary Entity Name
description: Resolved display name of the canonical structured-target entity (player, team, competitor, …) referenced by the market. NULL for markets without a structured target. Kalshi only — Polymarket has no equivalent concept.
type: object
required:
- river_id
- exchange_value
- exchange_name
- tick_size_price
- tick_size_qty
- minimum_order_size
- neg_risk
- name
- status
title: MarketSearchResult
description: Schema for a single market search result.
securitySchemes:
SignedRequestKeyId:
type: apiKey
in: header
name: X-River-Key-Id
description: UUID of your API key (from Settings → API Keys).
SignedRequestTimestamp:
type: apiKey
in: header
name: X-River-Timestamp
description: Current unix seconds. Must be within 30s of server time.
SignedRequestSignature:
type: apiKey
in: header
name: X-River-Signature
description: 'Base64 Ed25519 signature over the canonical request: METHOD\nPATH\nSORTED_QUERY\nTIMESTAMP\nSHA256(body) hex. See /api-reference/authentication for the full recipe.'
BearerAuth:
type: http
scheme: bearer
description: JWT bearer token for web client authentication.