meme-watch returns a rolling 60-minute feed of Solana memecoin launches inside a JSON object. POST /v1/launches with an optional dex filter (pumpfun, pumpswap, meteora_daam_v2, meteora_dbc; omit for every venue) plus optional limit, max_age_minutes, min_txns, min_volume_usd, min_liquidity_usd, named_only, sort and format. Each launch carries pool and token address, venue, creation time, name and symbol, price, fully diluted value, quote-side reserve, since-launch volume and transaction count, buy and sell split, volume per transaction, 5-minute price change, and drawdown from its all-time high. Set format to csv and the table rides in the csv string field. The backend polls upstream on a fixed budget and answers from cache, so results are point-in-time and two suppliers legitimately differ. Each supplier needs its own DexPaprika API key.
Service Metadata Cardsource: on-chain metadata (LCD)
{10 items
"schema":"pocket-service-card/v1"
"description":"meme-watch returns a rolling 60-minute feed of Solana memecoin launches inside a JSON object. POST /v1/launches with an optional dex filter (pumpfun, pumpswap, ..."
"rpc_types":[1 item
0:{4 items
"type":"REST"
"intent":"expected"
"backend_hint":"meme-watch container on :8080; mount at /"
"notes":"POST /v1/launches, GET /v1/version, GET /healthz, GET /v1/capabilities, and GET /v1/openapi.json are expected. Every response is a JSON object; when csv format ..."
"notes":"The same document is served by the backend at GET /v1/openapi.json."
}
]
"access":"public"
"results":"variable"
"serving":{7 items
"backend":"The meme-watch container (Node 22, no runtime dependencies; built from github.com/TheFeloniousMonk/portal-services, meme-watch/backend) behind the HA RelayMiner..."
"notes":"Identity probe: pins the backend to this service so a wrong backend cannot be staked under this id."
}
1:{4 items
"rpc_type":"REST"
"request":{2 items
"path":"/healthz"
"method":"GET"
}
"expect":{2 items
"json_path":"$.status"
"matches":"^ok$"
}
"notes":"Readiness probe: 200 only once the first poll has completed and the window holds data."
}
2:{4 items
"rpc_type":"REST"
"request":{3 items
"path":"/v1/launches"
"method":"POST"
"body":{1 item
"limit":1
}
}
"expect":{2 items
"json_path":"$.window_minutes"
"matches":"^60$"
}
"notes":"Functional probe: exercises the query path and asserts the declared window. Structural rather than data-dependent, because the feed changes every poll."
}
]
"notes":"Every request is a POST JSON body to /v1/launches, answered from memory in milliseconds. The response carries as_of and complete_before so a consumer can tell a..."