Discover flows
See which datasets a source publishes, and find one by topic within that source when you don’t know its exact flow ID.
listFlows(...) always accepts an optional query/maxResults; omit them to simply list every flow.
//JAVA 25+
//DEPS com.github.nbbrd.sdmx-dl:sdmx-dl-standalone:3.2.0
import sdmxdl.*;
import sdmxdl.web.SdmxWebManager;
void main() throws Exception {
Provider ecb = SdmxWebManager.ofServiceLoader().usingName("ECB");
// List every flow
ecb.listFlows(FlowsRequest.DEFAULT)
.forEach(flow -> IO.println(flow.getRef()));
// Search by topic
ecb.listFlows(FlowsRequest.builder()
.query("exchange rates")
.maxResults(5)
.build())
.forEach(flow -> IO.println(flow.getRef()));
}
sdmx-dl list flows ECB
sdmx-dl list flows ECB -q "exchange rates" -m 5
curl "localhost:4559/sdmx-dl/v2/ECB/flows"
curl -G localhost:4559/sdmx-dl/v2/ECB/flows \
--data-urlencode "query=exchange rates" \
--data-urlencode "maxResults=5"
grpcurl -d '{"source":"ECB"}' -plaintext localhost:4557 sdmxdl.grpc.v2.SdmxWebManager.ListFlows
grpcurl -d '{"source":"ECB","query":"exchange rates","maxResults":5}' -plaintext localhost:4557 sdmxdl.grpc.v2.SdmxWebManager.ListFlows
- Discovery and search are the same call: pass a
query/maxResultsto search within a source, or omit them to list every flow it publishes. - Ranking is hybrid: lexical (BM25) fused with typo-tolerant trigram matching, so partial or approximate queries still surface the right flow.
- Search is scoped to a single source; use Discover sources first if you don’t know which source to search within.
- Some sources expose several databases; pass a
databaseto scope the listing (defaults to the source’s single/default database otherwise) — see Discover databases.