ExchangeMarket exchange.market@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- ai
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/exchange/market.v1.json
Public own-page provider offers, enabled or not; prices are observations, not routing quotes. Paged by limit (1-500) and cursor, filterable by maker, open_weights and kind. No credentials or account identifiers. Model metadata preserves per-field provenance and stale state.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
$schema | const | yes |
| |
generated_at | string | yes |
| |
metadata | object | yes |
| |
metadata.source | const | yes |
| |
metadata.checked_at | string | null | yes |
| |
metadata.stale | boolean | yes | ||
total_models | integer | yes |
| |
total_offers | integer | yes |
| |
next_cursor | string | null | yes | ||
offers | array of object | yes |
| |
offers[].maker | string | null | yes | ||
offers[].licence | string | null | yes | ||
offers[].release_date | string | null | yes | ||
offers[].knowledge_cutoff | string | null | yes | ||
offers[].price_checked_at | string | null | yes | ||
offers[].model | string | yes |
| |
offers[].provider | string | yes |
| |
offers[].provider_name | string | yes |
| |
offers[].provider_model | string | yes |
| |
offers[].name | string | yes |
| |
offers[].routed | boolean | yes | ||
offers[].uncensored | boolean | yes | ||
offers[].context | number | null | yes |
| |
offers[].max_output | number | null | yes |
| |
offers[].kind | enum | yes |
| |
offers[].provider_access | enum | yes |
| |
offers[].open_weights | boolean | null | yes | ||
offers[].price_source | string | null | yes |
| |
offers[].price | object | yes |
| |
offers[].price.in | number | null | yes |
| |
offers[].price.out | number | null | yes |
| |
offers[].price.cached | number | null | yes |
| |
offers[].price.currency | const | yes |
| |
offers[].price.per | const | yes |
| |
offers[].field_sources | object | yes |
| |
offers[].field_sources.maker | string |
| ||
offers[].field_sources.context | string |
| ||
offers[].field_sources.max_output | string |
| ||
offers[].field_sources.open_weights | string |
| ||
offers[].field_sources.licence | string |
| ||
offers[].field_sources.release_date | string |
| ||
offers[].field_sources.knowledge_cutoff | string |
| ||
offers[].field_sources.modalities | string |
| ||
offers[].modalities | object | null | yes |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: empty-stale
{
"$schema": "exchange.market@1",
"generated_at": "2026-11-09T00:00:00.000Z",
"metadata": {
"source": "https://models.dev/api.json",
"checked_at": "2026-11-07T00:00:00.000Z",
"stale": true
},
"total_models": 0,
"total_offers": 0,
"offers": [],
"next_cursor": null
}Valid: offers
{
"$schema": "exchange.market@1",
"generated_at": "2026-11-09T00:00:00.000Z",
"metadata": {
"source": "https://models.dev/api.json",
"checked_at": null,
"stale": true
},
"total_models": 29,
"total_offers": 38,
"offers": [
{
"model": "abliteration/abliterated-model",
"provider": "abliteration",
"provider_name": "Abliteration.ai (the uncensored tier)",
"provider_model": "abliterated-model",
"name": "Abliterated Model",
"kind": "chat",
"price": {
"in": 1,
"out": 3,
"cached": 0.1,
"currency": "USD",
"per": "1M tokens"
},
"price_source": "https://docs.abliteration.ai/pricing.md",
"price_checked_at": "2026-11-06",
"routed": false,
"uncensored": true,
"provider_access": "UNVERIFIED",
"field_sources": {
"context": "https://docs.abliteration.ai/pricing.md",
"max_output": "https://docs.abliteration.ai/pricing.md"
},
"maker": null,
"context": 262144,
"max_output": 262134,
"open_weights": null,
"licence": null,
"release_date": null,
"knowledge_cutoff": null,
"modalities": null
},
{
"model": "abliteration/abliterated-model-large-flash",
"provider": "abliteration",
"provider_name": "Abliteration.ai (the uncensored tier)",
"provider_model": "abliterated-model-large-flash",
"name": "Abliterated Large Flash",
"kind": "chat",
"price": {
"in": 1,
"out": 2,
"cached": 0.1,
"currency": "USD",
"per": "1M tokens"
},
"price_source": "https://docs.abliteration.ai/pricing.md",
"price_checked_at": "2026-11-06",
"routed": false,
"uncensored": true,
"provider_access": "UNVERIFIED",
"field_sources": {
"context": "https://docs.abliteration.ai/pricing.md",
"max_output": "https://docs.abliteration.ai/pricing.md"
},
"maker": null,
"context": 1048576,
"max_output": 262144,
"open_weights": null,
"licence": null,
"release_date": null,
"knowledge_cutoff": null,
"modalities": null
}
],
"next_cursor": "2"
}Rejected: account
{
"$schema": "exchange.market@1",
"generated_at": "2026-11-09T00:00:00.000Z",
"metadata": {
"source": "https://models.dev/api.json",
"checked_at": null,
"stale": true
},
"total_models": 29,
"total_offers": 38,
"offers": [
{
"model": "abliteration/abliterated-model",
"provider": "abliteration",
"provider_name": "Abliteration.ai (the uncensored tier)",
"provider_model": "abliterated-model",
"name": "Abliterated Model",
"kind": "chat",
"price": {
"in": 1,
"out": 3,
"cached": 0.1,
"currency": "USD",
"per": "1M tokens"
},
"price_source": "https://docs.abliteration.ai/pricing.md",
"price_checked_at": "2026-11-06",
"routed": false,
"uncensored": true,
"provider_access": "UNVERIFIED",
"field_sources": {
"context": "https://docs.abliteration.ai/pricing.md",
"max_output": "https://docs.abliteration.ai/pricing.md"
},
"maker": null,
"context": 262144,
"max_output": 262134,
"open_weights": null,
"licence": null,
"release_date": null,
"knowledge_cutoff": null,
"modalities": null,
"account_id": "must-not-be-public"
},
{
"model": "abliteration/abliterated-model-large-flash",
"provider": "abliteration",
"provider_name": "Abliteration.ai (the uncensored tier)",
"provider_model": "abliterated-model-large-flash",
"name": "Abliterated Large Flash",
"kind": "chat",
"price": {
"in": 1,
"out": 2,
"cached": 0.1,
"currency": "USD",
"per": "1M tokens"
},
"price_source": "https://docs.abliteration.ai/pricing.md",
"price_checked_at": "2026-11-06",
"routed": false,
"uncensored": true,
"provider_access": "UNVERIFIED",
"field_sources": {
"context": "https://docs.abliteration.ai/pricing.md",
"max_output": "https://docs.abliteration.ai/pricing.md"
},
"maker": null,
"context": 1048576,
"max_output": 262144,
"open_weights": null,
"licence": null,
"release_date": null,
"knowledge_cutoff": null,
"modalities": null
}
],
"next_cursor": "2"
}Rejected: price
{
"$schema": "exchange.market@1",
"generated_at": "2026-11-09T00:00:00.000Z",
"metadata": {
"source": "https://models.dev/api.json",
"checked_at": null,
"stale": true
},
"total_models": 29,
"total_offers": 38,
"offers": [
{
"model": "abliteration/abliterated-model",
"provider": "abliteration",
"provider_name": "Abliteration.ai (the uncensored tier)",
"provider_model": "abliterated-model",
"name": "Abliterated Model",
"kind": "chat",
"price": {
"in": -1,
"out": 3,
"cached": 0.1,
"currency": "USD",
"per": "1M tokens"
},
"price_source": "https://docs.abliteration.ai/pricing.md",
"price_checked_at": "2026-11-06",
"routed": false,
"uncensored": true,
"provider_access": "UNVERIFIED",
"field_sources": {
"context": "https://docs.abliteration.ai/pricing.md",
"max_output": "https://docs.abliteration.ai/pricing.md"
},
"maker": null,
"context": 262144,
"max_output": 262134,
"open_weights": null,
"licence": null,
"release_date": null,
"knowledge_cutoff": null,
"modalities": null
},
{
"model": "abliteration/abliterated-model-large-flash",
"provider": "abliteration",
"provider_name": "Abliteration.ai (the uncensored tier)",
"provider_model": "abliterated-model-large-flash",
"name": "Abliterated Large Flash",
"kind": "chat",
"price": {
"in": 1,
"out": 2,
"cached": 0.1,
"currency": "USD",
"per": "1M tokens"
},
"price_source": "https://docs.abliteration.ai/pricing.md",
"price_checked_at": "2026-11-06",
"routed": false,
"uncensored": true,
"provider_access": "UNVERIFIED",
"field_sources": {
"context": "https://docs.abliteration.ai/pricing.md",
"max_output": "https://docs.abliteration.ai/pricing.md"
},
"maker": null,
"context": 1048576,
"max_output": 262144,
"open_weights": null,
"licence": null,
"release_date": null,
"knowledge_cutoff": null,
"modalities": null
}
],
"next_cursor": "2"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('exchange.market@1', value); // { valid, errors: [{ path, message }] }