APIs.io · Arazzo Workflow

APIs.io Search APIs by Keyword

Version 1.0.0

Search the APIs.io registry for APIs matching a keyword and branch on whether any results were returned.

1 workflow 1 source API 1 provider
View Spec View on GitHub API AggregationAPI DirectoryAPI DiscoveryAPI IndexingAPI RatingAPI SearchAPIs.jsonSearch EnginesAPI CatalogAgent DiscoveryMCPAgent SkillsOpenAPIAPI GovernanceArazzoWorkflows

Provider

apis-io

Workflows

search-apis-by-keyword
Search APIs.io for a keyword and branch on whether any APIs matched.
Runs a keyword search against the APIs.io index, capturing the result data, pagination metadata, and the first matched API. Branches to a hit path when at least one API is returned and to a miss path when the result set is empty.
3 steps inputs: apiKey, limit, page, search outputs: results, topApiName, topApiSearchUrl, totalPages
1
runSearch
Search across all indexed APIs by the supplied keyword, returning a page of matches along with the result metadata and pagination links.
2
reportMatch
Confirm the top match by re-reading the first page of the same keyword search so the matched API and its source URLs can be returned to the caller.
3
reportEmpty
Re-run the search confirming the empty result set so the caller can be told no APIs matched the keyword and prompt for a new search term.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: APIs.io Search APIs by Keyword
  summary: Search the APIs.io registry for APIs matching a keyword and branch on whether any results were returned.
  description: >-
    The core discovery flow for the APIs.io search engine. The workflow issues a
    single keyword search against the registry and then branches on the shape of
    the response: when one or more APIs are returned it surfaces the first match
    and the result metadata, and when nothing matches it reports an empty result
    so a caller can prompt for a different keyword. Every step spells out its
    request inline, including the API key header the search API requires, so the
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: searchApi
  url: ../openapi/apis-io-search-api-openapi.yml
  type: openapi
workflows:
- workflowId: search-apis-by-keyword
  summary: Search APIs.io for a keyword and branch on whether any APIs matched.
  description: >-
    Runs a keyword search against the APIs.io index, capturing the result data,
    pagination metadata, and the first matched API. Branches to a hit path when
    at least one API is returned and to a miss path when the result set is empty.
  inputs:
    type: object
    required:
    - search
    - apiKey
    properties:
      search:
        type: string
        description: The keyword or phrase to search the APIs.io index by.
      limit:
        type: string
        description: The maximum number of results to return on the page.
        default: "50"
      page:
        type: string
        description: The zero-based page of results to return.
        default: "0"
      apiKey:
        type: string
        description: The APIs.io API key sent in the x-api-key header.
  steps:
  - stepId: runSearch
    description: >-
      Search across all indexed APIs by the supplied keyword, returning a page
      of matches along with the result metadata and pagination links.
    operationId: search
    parameters:
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: search
      in: query
      value: $inputs.search
    - name: limit
      in: query
      value: $inputs.limit
    - name: page
      in: query
      value: $inputs.page
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      results: $response.body#/data
      totalPages: $response.body#/meta/totalPages
      firstApiName: $response.body#/data/0/name
      firstApiSearchUrl: $response.body#/data/0/searchUrl
      firstApiIndexUrl: $response.body#/data/0/indexUrl
    onSuccess:
    - name: hasResults
      type: goto
      stepId: reportMatch
      criteria:
      - context: $response.body
        condition: $.data.length > 0
        type: jsonpath
    - name: noResults
      type: goto
      stepId: reportEmpty
      criteria:
      - context: $response.body
        condition: $.data.length == 0
        type: jsonpath
  - stepId: reportMatch
    description: >-
      Confirm the top match by re-reading the first page of the same keyword
      search so the matched API and its source URLs can be returned to the
      caller.
    operationId: search
    parameters:
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: search
      in: query
      value: $inputs.search
    - name: limit
      in: query
      value: $inputs.limit
    - name: page
      in: query
      value: "0"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      topApiName: $response.body#/data/0/name
      topApiSearchUrl: $response.body#/data/0/searchUrl
      topApiApiUrl: $response.body#/data/0/apiUrl
      topApiScore: $response.body#/data/0/score
    onSuccess:
    - name: done
      type: end
  - stepId: reportEmpty
    description: >-
      Re-run the search confirming the empty result set so the caller can be
      told no APIs matched the keyword and prompt for a new search term.
    operationId: search
    parameters:
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    - name: search
      in: query
      value: $inputs.search
    - name: limit
      in: query
      value: $inputs.limit
    - name: page
      in: query
      value: "0"
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      emptySearchTerm: $response.body#/meta/search
  outputs:
    results: $steps.runSearch.outputs.results
    totalPages: $steps.runSearch.outputs.totalPages
    topApiName: $steps.reportMatch.outputs.topApiName
    topApiSearchUrl: $steps.reportMatch.outputs.topApiSearchUrl

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/apis-io-search-apis-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.