API v1 · Developer documentation

Finance Media API

Documentation for instrument-linked finance media discovery and concrete #market YouTube source JSON access.

Discover financial media by instrument

Finance Media maps YouTube materials to financial instruments. An integration can discover matching materials and signal metadata for free, then request an individual #market source JSON only when the underlying source is required.

Supported asset groups

stocks crypto forex commodities indices

Endpoint reference

GET/api/v1/finance/instruments/FREE
GET/api/v1/finance/instruments/<instrument>/FREE
GET/api/v1/finance/instruments/<instrument>/channels/FREE
GET/api/v1/finance/items/<item_id>/$0.01

AAPL: discovery to source JSON

cURL

curl \
  -H "Authorization: Bearer aa_live_..." \
  https://art-argentum.com/api/v1/finance/instruments/aapl/

PowerShell

$key = "aa_live_..."
$base = "https://art-argentum.com"
$headers = @{ Authorization = "Bearer $key" }

$aapl = Invoke-RestMethod `
  -Uri "$base/api/v1/finance/instruments/aapl/" `
  -Headers $headers `
  -Method GET

$aapl.items |
  Select-Object -First 10 `
    id, channel, title, published_at, `
    max_impact_score, max_confidence, `
    content_price_cents, has_source_file |
  Format-Table -Wrap -AutoSize

Python

import requests

base = "https://art-argentum.com"
headers = {
    "Authorization": "Bearer aa_live_..."
}

r = requests.get(
    f"{base}/api/v1/finance/instruments/aapl/",
    headers=headers,
    timeout=30,
)
r.raise_for_status()
aapl = r.json()

for item in aapl.get("items", [])[:10]:
    print(
        item["id"],
        item.get("channel"),
        item.get("title"),
        item.get("max_impact_score"),
    )

JavaScript

const base = "https://art-argentum.com";
const headers = {
  Authorization: "Bearer aa_live_..."
};

const r = await fetch(
  `${base}/api/v1/finance/instruments/aapl/`,
  { headers }
);

if (!r.ok) {
  throw new Error(`HTTP ${r.status}`);
}

const aapl = await r.json();

console.table(
  aapl.items.slice(0, 10).map(x => ({
    id: x.id,
    channel: x.channel,
    title: x.title,
    impact: x.max_impact_score
  }))
);

Finance item metadata

instrumentInstrument requested by the discovery call.
groupAsset group such as stocks, forex or crypto.
channelSource media channel.
titleMaterial title.
published_atPublication timestamp.
block_countNumber of structured analysis blocks in the underlying source.
max_impact_scoreMaximum impact score exposed by the discovery projection.
max_confidenceMaximum confidence value exposed by the discovery projection.
max_relevanceMaximum relevance value exposed by the discovery projection.
impact_classNormalized impact class.
content_urlRoute used to retrieve the concrete source JSON.
Example AAPL discovery itemFREE METADATA
{
  "id": "itm_55bc24c1ad8a31fdb7",
  "instrument": "AAPL",
  "group": "stocks",
  "channel": "YahooFinance",
  "title": "Yahoo Finance Live: market coverage",
  "published_at": "2026-06-01T21:06:50Z",
  "block_count": 1,
  "max_impact_score": 0.6,
  "max_confidence": 0.6,
  "max_relevance": 0.7,
  "impact_class": "medium",
  "impact_label": "Medium signal",
  "content_url": "/api/v1/finance/items/itm_55bc24c1ad8a31fdb7/",
  "content_price_cents": 1,
  "has_source_file": true
}

Open the selected #market JSON

$key = "aa_live_..."
$base = "https://art-argentum.com"
$headers = @{ Authorization = "Bearer $key" }

$aapl = Invoke-RestMethod `
  -Uri "$base/api/v1/finance/instruments/aapl/" `
  -Headers $headers `
  -Method GET

$item = $aapl.items |
  Where-Object { $_.has_source_file -eq $true } |
  Select-Object -First 1

$response = Invoke-WebRequest `
  -Uri "$base/api/v1/finance/items/$($item.id)/" `
  -Headers $headers `
  -Method GET

Write-Host "Charged: $($response.Headers['X-AA-Charged'])"
Write-Host "Price: $($response.Headers['X-AA-Price-Cents']) cents"
Write-Host "Balance: $($response.Headers['X-AA-Balance-Cents']) cents"

$response.Content
The instrument index is not a paid bundle. Every concrete underlying source item is a separate source-file access.

Authentication, billing and errors

Send Authorization: Bearer aa_live_... on every request. For YouTube source files, successful concrete-file access costs $0.01; discovery is free.

Common responses: 200 success · 401 invalid key · 402 insufficient balance · 404 missing or unauthorized resource · 405 method not allowed.

See API overview, billing headers and common response semantics →