October special: $0.003 per call (normally $0.005) through Oct 31.
video

Bing Videos API

Bing video_results contain real videos with durations, publishers, dates and source links as available. related_searches contains suggestions separately. videos is a deprecated alias equal to video_results; thumbnails are http(s) URLs or null, never inline data URIs.

GET/api/public/v1/bing-videos
price
$0.003
atomic
3000
free tier
3 calls / agent
chain
base mainnet
asset
USDC
scheme
exact

agent brief

Give a query, get real videos in video_results (videos is a deprecated alias), separate related_searches, and http(s) thumbnails or null.

engine: bing_videos · results key: video_results · settlement: USDC / base / exact

use this when you need to

  • -Video coverage discovery
  • -Cross-engine media monitoring

query parameters

nametyperequireddescription
networkbase | base-sepoliano · default "base"Payment network. base-sepolia returns mock data for testing.
qstringyesVideo search query
pageintegernoPage number for pagination

call it — curl

bash
# Free tier — first 3 calls per agent identity, no payment header
curl "https://marketplaceforaiagents.com/api/public/v1/bing-videos?q=how+to+change+a+bike+tire"

# Sandbox — signed testnet USDC, mock response, no real spend
curl "https://marketplaceforaiagents.com/api/public/v1/bing-videos?q=how+to+change+a+bike+tire&network=base-sepolia" \
  -H "X-PAYMENT: <base64 signed base-sepolia USDC authorization>"

# Production — signed x402 payment header, real data
curl "https://marketplaceforaiagents.com/api/public/v1/bing-videos?q=how+to+change+a+bike+tire" \
  -H "X-PAYMENT: <base64 signed USDC authorization>"

call it — typescript + x402-fetch

typescript
import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.AGENT_PRIVATE_KEY as `0x${string}`);
const fetchWithPayment = wrapFetchWithPayment(fetch, account);

const res = await fetchWithPayment(
  "https://marketplaceforaiagents.com/api/public/v1/bing-videos?q=how+to+change+a+bike+tire"
);
const data = await res.json();
console.log(data.video_results);

response — 200 ok

application/json
{
  "search_parameters": {
    "engine": "bing_videos",
    "q": "how to change a bike tire"
  },
  "videos": [
    {
      "position": 1,
      "title": "How to change a bike tire",
      "link": "https://www.youtube.com/watch?v=eqR6nlZNeU8",
      "thumbnail": "https://i.ytimg.com/vi/eqR6nlZNeU8/hqdefault.jpg",
      "length": "5:12",
      "source": "YouTube"
    }
  ],
  "related_searches": [
    {
      "query": "bike tire repair",
      "link": "https://www.bing.com/videos/search?q=bike+tire+repair"
    }
  ],
  "video_results": [
    {
      "position": 1,
      "title": "How to change a bike tire",
      "link": "https://www.youtube.com/watch?v=eqR6nlZNeU8",
      "thumbnail": "https://i.ytimg.com/vi/eqR6nlZNeU8/hqdefault.jpg",
      "length": "5:12",
      "source": "YouTube"
    }
  ],
  "results_key_source": "video_results"
}

status codes

200data returned, response includes X-PAYMENT-RESPONSE receipt when paid
400missing or invalid required parameters
402free tier exhausted or invalid X-PAYMENT — body contains accepts[] payment requirements
404unknown endpoint slug
429upstream rate limit — retry with backoff
500upstream or settlement error