docs(api): document Find Tools in the v2 OpenAPI spec - #1503
Merged
Merged
Conversation
Find Tools is a POST /v2/scrape call with provider "firecrawl" and capability "find-tools". The spec did not say so. - Mention Find Tools in the `alexandria` property description. - Add named request examples on POST /scrape: a plain URL scrape (kept first, so it stays the default) and a Find Tools call. - Add the FindToolsOptions and FindToolsData schemas. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LKCJJgeohVR5dnd1MDBzAR
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
…ults Unreferenced component schemas do not render in Mintlify. Wire them in: - AlexandriaCall.options is now anyOf FindToolsOptions or any capability options object. - AlexandriaResult success data is now anyOf FindToolsData or any capability response. Both second branches accept the values that were valid before. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LKCJJgeohVR5dnd1MDBzAR
Contributor
Author
|
The check "Locale literals and extraction-hostile markdown" fails at the step "Keep API literals untranslated" (
Generated by Claude Code |
micahstairs
approved these changes
Oct 2, 2026
micahstairs
marked this pull request as ready for review
October 2, 2026 15:13
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Micah Stairs · Slack thread
Before: The SDKs call Find Tools as
POST /v2/scrapewithalexandria: {provider: "firecrawl", capability: "find-tools", options}. The OpenAPI spec did not say this. It had no Find Tools example, no schema for its options, and no schema for its result page.After: The
alexandriaproperty description onPOST /scrapenow tells readers how to call Find Tools and that it is free. The endpoint has two named request examples: "Scrape a URL" (first, so it stays the default) and "Find Tools". In the rendered spec,alexandria.optionsshows two choices: "Find Tools options" (query,urls,providers,categories,groups,capabilities,level,expand,limit,offset) and "Capability options". In the response, the resultdataalso shows two choices: "Find Tools result" (level,items,total,next) and "Capability response".How: I added two schemas,
FindToolsOptionsandFindToolsData.AlexandriaCall.optionsand the successdataofAlexandriaResultnow useanyOfto reference them. The second choice in eachanyOfaccepts any value, so everything that was valid before is still valid. Thefind-toolscapability runs in Exchange, so its source is not infirecrawl/firecrawl. I took the fields from the code that calls it:apps/api/src/search/alexandria.ts:57-89: the API callsfirecrawl/find-toolswithquery,providers,capabilities,level,expand, andlimit. It requirescreditsCost: 0, and it parsesdata.itemsagainst the tool contract schemas.apps/api/src/services/alexandria/contracts.ts:51-79: tool item fields (provider,capability,name,description,creditsCost,perRecord, plusoptionsandresponsewhen expanded, andnext).apps/api/src/controllers/v2/scrape-alexandria.ts:24-28,230-234: thealexandriabody and thedata.alexandria[]response envelope.apps/js-sdk/firecrawl/src/v2/methods/tools.ts:118-128andapps/js-sdk/firecrawl/src/v2/types.ts:875-898:FindToolsOptionsandFindToolsData(levelisproviders,groups, ortools; items haveid,name,next,execute;nextis anAlexandriaCallornull).apps/python-sdk/firecrawl/v2/client.py:285-303andapps/python-sdk/firecrawl/v2/types.py:1096-1100: the same call and shape.firecrawl-mcp-server/src/alexandria.ts:40-62:queryandurlsoptions.I did not add bounds (such as a
limitmaximum) or defaults, because the server code that sets them is not in these repos. Find Tools has notoolDetailoption:expandcontrols the detail level. I did not changeDiscoveredTool,requiresAction, or searchtoolDetail. No localized files changed.Validation:
python3 -m json.toolpasses.npx @apidevtools/swagger-cli@4 validate api-reference/v2-openapi.jsonreports the spec as valid.scripts/check-extraction-hostile-markdown.shpasses.scripts/check-locale-api-literals.shfails, but it fails the same way onmain(see the comment below). I did not runmintlocally.🤖 Generated with Claude Code
https://claude.ai/code/session_01LKCJJgeohVR5dnd1MDBzAR