hubvibe-io.com
No description published for this endpoint.
The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.
Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.
Live 402 challenge
Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.
{
"docs": "https://hubvibe-io.com/.well-known/agent.json",
"error": "payment_required",
"price": "$0.50",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd",
"scheme": "exact",
"network": "base",
"mimeType": "application/json",
"resource": "https://hubvibe-io.com/work/social/x_pulse",
"description": "Twitter / X sentiment and volume for any topic, as numbers, live: post volume per hour or day over the last 1-7 days, and over a sample of recent posts the engagement totals and rate (likes, reposts, replies, quotes, impressions), language mix, top hashtags and link/media share. Aggregates only: no post text or authors. Input: query (X operators allowed); optional days, granularity, sample, lang.",
"maxAmountRequired": "500000",
"maxTimeoutSeconds": 300
}
],
"contract": {
"url": "https://hubvibe-io.com/contracts/social.x_pulse",
"hash": "sha256:54a4eaaee4d2f638e40d7d0e4629d529fbcd0360a916e017415ccd116d962284",
"header": "X-HubVibe-Contract",
"verify": "https://hubvibe-io.com/contracts/social.x_pulse/verify"
},
"price_usd": 0.5,
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"days": 3,
"lang": "en",
"query": "open source",
"sample": 20
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"example": {
"result": {
"as_of": "2026-09-27T08:59:45Z",
"query": "open source",
"sample": {
"read": 20,
"pages": 1,
"requested": 20,
"x_cost_usd": 0.1
},
"source": "x-api-v2",
"volume": {
"total": 21636,
"buckets": [
{
"end": "2026-09-27T00:00:00.000Z",
"count": 7200,
"start": "2026-09-26T00:00:00.000Z"
}
],
"bucket_count": 4
},
"window": {
"end": "2026-09-27T08:59:45Z",
"days": 3,
"start": "2026-09-24T09:00:00Z"
},
"checked_at": "2026-09-26T18:00:00Z",
"engagement": {
"languages": {
"en": 20
},
"max_likes": 120,
"mean_likes": 17,
"posts_read": 20,
"likes_total": 340,
"quotes_total": 5,
"top_hashtags": [
{
"tag": "opensource",
"posts": 4
}
],
"replies_total": 27,
"reposts_total": 41,
"with_links_pct": 40,
"with_media_pct": 15,
"bookmarks_total": 12,
"max_impressions": 18000,
"mean_impressions": 2560,
"impressions_total": 51200,
"with_hashtags_pct": 35,
"engagement_rate_pct": 0.807,
"possibly_sensitive_pct": 0
},
"granularity": "day",
"effective_query": "open source lang:en -is:retweet"
},
"status": "ok",
"worker": "social.x_pulse",
"price_usd": 0.5,
"provenance": {
"steps": [
{
"ms": 640,
"ok": true,
"step": "x_pulse",
"provider": "x-api-v2"
}
],
"attempts": 1,
"elapsed_ms": 660,
"providers_used": [
"x-api-v2"
]
},
"receipt_id": "rcpt_9f1c2b3a4d5e6f70",
"receipt_url": "/work/receipts/rcpt_9f1c2b3a4d5e6f70"
}
}
},
"schema": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"type",
"method",
"bodyType",
"body"
],
"properties": {
"body": {
"type": "object",
"required": [
"query"
],
"properties": {
"days": {
"type": "integer",
"maximum": 7,
"minimum": 1,
"description": "Window ending now, default 7 (X's recent limit)."
},
"lang": {
"type": "string",
"maxLength": 2,
"minLength": 2,
"description": "Restrict to a language (en, ja...)."
},
"query": {
"type": "string",
"maxLength": 400,
"minLength": 1,
"description": "Words or X search operators (\"machine learning\" from:nasa has:links)."
},
"sample": {
"type": "integer",
"maximum": 100,
"minimum": 0,
"description": "Recent posts read for the engagement aggregates, default 40; 0 = volume only."
},
"language": {
"type": "string",
"pattern": "^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$",
"maxLength": 35,
"description": "Optional BCP-47 language tag (en, ja, ko, pt-BR): the human-readable strings of the result (notes, details, reasons) are translated into this language; data, codes, numbers and URLs are untouched. Default: as produced."
},
"granularity": {
"enum": [
"hour",
"day"
],
"type": "string",
"description": "Volume buckets, default day."
},
"include_retweets": {
"type": "boolean",
"description": "Default false: reposts are excluded from volume and sample."
}
},
"additionalProperties": false
},
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"POST",
"PUT",
"PATCH"
],
"type": "string"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"title": "social.x_pulse response",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status",
"worker",
"price_usd",
"result",
"provenance",
"receipt_id",
"receipt_url"
],
"properties": {
"result": {
"type": "object",
"required": [
"query",
"effective_query",
"window",
"granularity",
"volume",
"sample",
"engagement",
"source",
"as_of",
"checked_at"
],
"properties": {
"as_of": {
"type": "string",
"examples": [
"2026-09-27T08:59:45Z"
],
"description": "End of the window analysed."
},
"query": {
"type": "string",
"examples": [
"open source"
],
"description": "The query as given."
},
"sample": {
"type": "object",
"required": [
"requested",
"read",
"pages",
"x_cost_usd"
],
"properties": {
"read": {
"type": "integer",
"examples": [
20
],
"description": "Posts actually read."
},
"pages": {
"type": "integer",
"examples": [
1
],
"description": "Search pages fetched."
},
"requested": {
"type": "integer",
"examples": [
20
],
"description": "Posts asked to read."
},
"x_cost_usd": {
"type": "number",
"examples": [
0.1
],
"description": "What X bills for the posts read, at $0.005 each."
}
},
"description": "The sample the engagement figures rest on."
},
"source": {
"type": "string",
"const": "x-api-v2",
"description": "Data source."
},
"volume": {
"type": "object",
"required": [
"total",
"buckets",
"bucket_count"
],
"properties": {
"total": {
"type": "integer",
"examples": [
21636
],
"description": "Posts matching the query in the window."
},
"buckets": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end",
"count"
],
"properties": {
"end": {
"type": [
"string",
"null"
],
"examples": [
"2026-09-27T00:00:00.000Z"
],
"description": "Bucket end."
},
"count": {
"type": "integer",
"examples": [
7200
],
"description": "Posts in the bucket."
},
"start": {
"type": [
"string",
"null"
],
"examples": [
"2026-09-26T00:00:00.000Z"
],
"description": "Bucket start."
}
},
"description": "One bucket."
},
"description": "Counts per bucket, oldest first."
},
"bucket_count": {
"type": "integer",
"examples": [
4
],
"description": "Buckets returned."
}
},
"description": "Post volume from X's recent-counts endpoint."
},
"window": {
"type": "object",
"required": [
"start",
"end",
"days"
],
"properties": {
"end": {
"type": "string",
"examples": [
"2026-09-27T08:59:45Z"
],
"description": "Window end (RFC 3339), a few seconds before the call."
},
"days": {
"type": "integer",
"examples": [
3
],
"description": "Days covered."
},
"start": {
"type": "string",
"examples": [
"2026-09-24T09:00:00Z"
],
"description": "Window start (RFC 3339)."
}
},
"description": "The window analysed."
},
"checked_at": {
"type": "string",
"format": "date-time",
"examples": [
"2026-09-26T18:00:00Z"
],
"description": "When this node read the source (UTC). Nothing here is cached."
},
"engagement": {
"type": [
"object",
"null"
],
"required": [
"posts_read",
"likes_total",
"reposts_total",
"replies_total",
"quotes_total",
"impressions_total",
"bookmarks_total",
"mean_likes",
"mean_impressions",
"max_likes",
"max_impressions",
"engagement_rate_pct",
"languages",
"top_hashtags",
"with_hashtags_pct",
"with_links_pct",
"with_media_pct",
"possibly_sensitive_pct"
],
"properties": {
"languages": {
"type": "object",
"examples": [
{
"en": 20
}
],
"required": [],
"properties": {},
"description": "Posts per language code.",
"additionalProperties": {
"type": "integer"
}
},
"max_likes": {
"type": [
"integer",
"null"
],
"examples": [
120
],
"description": "Most-liked post's likes."
},
"mean_likes": {
"type": [
"number",
"null"
],
"examples": [
17
],
"description": "Mean likes per post."
},
"posts_read": {
"type": "integer",
"examples": [
20
],
"description": "Posts in the sample."
},
"likes_total": {
"type": [
"integer",
"null"
],
"examples": [
340
],
"description": "Likes summed."
},
"quotes_total": {
"type": [
"integer",
"null"
],
"examples": [
5
],
"description": "Quotes summed."
},
"top_hashtags": {
"type": "array",
"items": {
"type": "object",
"required": [
"tag",
"posts"
],
"properties": {
"tag": {
"type": "string",
"examples": [
"opensource"
],
"description": "Hashtag, lower-cased."
},
"posts": {
"type": "integer",
"examples": [
4
],
"description": "Posts using it."
}
},
"description": "One hashtag."
},
"examples": [
[
{
"tag": "opensource",
"posts": 4
}
]
],
"description": "Up to 10 most-used hashtags."
},
"replies_total": {
"type": [
"integer",
"null"
],
"examples": [
27
],
"description": "Replies summed."
},
"reposts_total": {
"type": [
"integer",
"null"
],
"examples": [
41
],
"description": "Reposts summed."
},
"with_links_pct": {
"type": [
"number",
"null"
],
"examples": [
40
],
"description": "Share of posts linking outside X."
},
"with_media_pct": {
"type": [
"number",
"null"
],
"examples": [
15
],
"description": "Share of posts with photos or video."
},
"bookmarks_total": {
"type": [
"integer",
"null"
],
"examples": [
12
],
"description": "Bookmarks summed."
},
"max_impressions": {
"type": [
"integer",
"null"
],
"examples": [
18000
],
"description": "Most-seen post's impressions."
},
"mean_impressions": {
"type": [
"number",
"null"
],
"examples": [
2560
],
"description": "Mean impressions per post."
},
"impressions_total": {
"type": [
"integer",
"null"
],
"examples": [
51200
],
"description": "Impressions summed."
},
"with_hashtags_pct": {
"type": [
"number",
"null"
],
"examples": [
35
],
"description": "Share of posts with a hashtag."
},
"engagement_rate_pct": {
"type": [
"number",
"null"
],
"examples": [
0.807
],
"description": "(likes+reposts+replies+quotes)/impressions, percent."
},
"possibly_sensitive_pct": {
"type": [
"number",
"null"
],
"examples": [
0
],
"description": "Share X flags as possibly sensitive."
}
},
"description": "Engagement aggregates over the sample; null when sample is 0."
},
"granularity": {
"enum": [
"hour",
"day"
],
"type": "string",
"examples": [
"day"
],
"description": "Volume bucket size."
},
"effective_query": {
"type": "string",
"examples": [
"open source lang:en -is:retweet"
],
"description": "The query sent to X (lang: and -is:retweet added unless given)."
}
}
},
"status": {
"type": "string",
"const": "ok",
"description": "Present only on a delivered result."
},
"worker": {
"type": "string",
"examples": [
"market.quote"
],
"description": "Catalog name of the worker that ran."
},
"price_usd": {
"type": "number",
"examples": [
0.02
],
"description": "What this call cost, in USD."
},
"provenance": {
"type": "object",
"required": [
"steps",
"providers_used",
"attempts",
"elapsed_ms"
],
"properties": {
"steps": {
"type": "array",
"items": {
"type": "object",
"required": [
"step",
"ok",
"ms"
],
"properties": {
"ms": {
"type": "integer",
"examples": [
312
],
"description": "Milliseconds the step took."
},
"ok": {
"type": "boolean",
"examples": [
true
],
"description": "Whether the step succeeded."
},
"step": {
"type": "string",
"examples": [
"quote"
],
"description": "Step name inside the worker."
},
"reason": {
"type": "string",
"examples": [
"provider_timeout"
],
"description": "Failure reason, on a failed step."
},
"provider": {
"type": "string",
"examples": [
"coinbase-advanced-trade-public"
],
"description": "Provider that served the step."
}
},
"description": "One step of the job."
},
"description": "Every step the job ran, in order."
},
"attempts": {
"type": "integer",
"examples": [
1
],
"description": "Provider attempts made, including retries and failovers."
},
"elapsed_ms": {
"type": "integer",
"examples": [
340
],
"description": "Wall-clock milliseconds for the whole job."
},
"providers_used": {
"type": "array",
"items": {
"type": "string",
"examples": [
"coinbase-advanced-trade-public"
],
"description": "Provider name."
},
"examples": [
[
"coinbase-advanced-trade-public"
]
],
"description": "Providers that served the job."
}
},
"description": "How the result was produced: which providers ran and how long each took."
},
"receipt_id": {
"type": "string",
"examples": [
"rcpt_9f1c2b3a4d5e6f70"
],
"description": "Receipt id for this job."
},
"attribution": {
"type": "array",
"items": {
"type": "object",
"required": [
"text",
"url"
],
"properties": {
"url": {
"type": "string",
"examples": [
"https://translate.google.com"
],
"description": "Link."
},
"text": {
"type": "string",
"examples": [
"Translated by Google"
],
"description": "Credit."
}
},
"description": "A credit."
},
"description": "Present only when the result's text was machine-translated: the credit to show with it."
},
"receipt_url": {
"type": "string",
"examples": [
"/work/receipts/rcpt_9f1c2b3a4d5e6f70"
],
"description": "Where to fetch the machine-readable receipt (free, no payment)."
},
"billing_warning": {
"type": "string",
"examples": [
"settlement pending"
],
"description": "Present only when the charge was recorded with a caveat."
}
},
"description": "The 200 body of every paid /work call. `result` is the worker's own output (its schema is per route); everything else is the same on every /work route. A receipt for the job is at `receipt_url`."
}
}
}
}
}
}
},
"alternative": {
"detail": "A prepaid key: bought with the MPP top-up rail in `other_rails` where that rail is live, and spent per call at the same rates. There are no subscriptions; pay per call with a rail in `accepts`.",
"header": "X-API-Key"
},
"other_rails": [
{
"asset": "usd",
"method": "stripe",
"protocol": "mpp",
"challenge_in": "WWW-Authenticate",
"send_via_header": "Authorization: Payment ...",
"amount_minor_units": "50"
},
{
"asset": "0x20C000000000000000000000b9537d11c60E8b50",
"method": "tempo",
"chain_id": 4217,
"protocol": "mpp",
"recipient": "0xc4a6aa93ba00d5c02145c33fe6f2212654fcdfb7",
"challenge_in": "WWW-Authenticate",
"send_via_header": "Authorization: Payment ...",
"amount_minor_units": "500000"
},
{
"note": "Send the amount of this token to the recipient yourself, wait for the receipt, then present the transaction hash. No signature is verified, so smart-wallet payers can use this rail.",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"method": "evm",
"network": "eip155:8453",
"chain_id": 8453,
"protocol": "mpp",
"recipient": "0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd",
"challenge_in": "WWW-Authenticate",
"send_via_header": "Authorization: Payment ...",
"credential_types": [
"hash"
],
"amount_minor_units": "500000"
}
],
"x402Version": 1
}Accepts
The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.
Pay 0.5 USDC on Base to 0x837C…477dd. The signed payment is good for 5 minutes.
- Paid to
- 0x837C…477dd
- USD Coin contract
- 0x8335…02913
- Payment window
- 5 minutes
- As published
- 500000 smallest units
- Returns
- application/json
That figure is in the token’s smallest units. Roundhouse does not hold this contract’s decimals, so it is shown as published rather than converted.
- Paid to
- J1K4md…2icSh
- Token contract
- EPjFWd…TDt1v
- Payment window
- 5 minutes
- Returns
- application/json
The catalog’s raw entry
[
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd",
"scheme": "exact",
"network": "eip155:8453",
"mimeType": "application/json",
"resource": "https://hubvibe-io.com/work/social/x_pulse",
"description": "",
"maxAmountRequired": "500000",
"maxTimeoutSeconds": 300
},
{
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F"
},
"payTo": "J1K4mdbvXEbJLRKpgxFcA7s66LWMCYHu71ye6Hz2icSh",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"mimeType": "application/json",
"resource": "https://hubvibe-io.com/work/social/x_pulse",
"description": "",
"maxAmountRequired": "500000",
"maxTimeoutSeconds": 300
}
]Provenance
- Seen in the source catalog
- 2026-10-01 02:42Z
- Last indexed by Roundhouse
- 2026-10-26 08:16Z
- Last enriched (probe, favicon, geo)
- 2026-10-02 16:15Z
- x402 version
- 1
- Max timeout
- 300s
- Liveness probe
- HTTP 402
Hand this page to an agent
Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.
GET api.roundhouseai.io/v0/endpoints
This endpoint's own trailing-30-day call count, as published by the upstream catalog and snapshotted daily. 32 snapshots so far. Verified volume counts only settlements with an on-chain EIP-3009 marker.
Show the promptHide the prompt
Using Roundhouse, look up the x402 service hubvibe-io.com and tell me whether it is worth paying: what a call costs, whether the endpoint answered when last probed, and what its payment record actually shows. curl -s 'https://api.roundhouseai.io/v0/endpoints?q=hubvibe-io.com' curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>' Then call it: read the price from the live 402 at https://hubvibe-io.com/work/social/x_pulse, never from a cached figure, and pay with an x402 client. The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except /v0/unified* and /v0/endpoints. Either pay over x402 (mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402), or ask me for an organization key, which I create at https://roundhouseai.io/dashboard/connections. If you have neither, ask before going further. If you do not have Roundhouse tools or skills installed, read https://roundhouseai.io/skill.md first — it is the whole procedure.