Last year I was helping a fintech startup with their vendor onboarding.
Part of the process was verifying that each vendor was actually a registered business in good standing. Sounds simple enough.
It wasn't.
To verify a single business, I had to figure out which state they were registered in, find that state's Secretary of State website, navigate their(usually terrible) business search interface, solve a CAPTCHA, find the right entity among similarly-named ones, and screenshot the results for our compliance records.
Each lookup took 10-15 minutes. We had hundreds of vendors to verify. I started looking for an API to automate this. There wasn't one. The existing options were either enterprise-only ($50k+ annual contracts) or aggregators with stale data.
So I built one.
What GovLink does
You give it a company name and jurisdiction (state), it returns the official registration data: entity status, good standing, formation date,entity type, registered agent, and more.
bash
curl -X POST "https://govlink.fly.dev/api/v1/verify" \
-H "X-API-Key: your_key" \
-d "entity_name=Stripe Inc" \
-d "jurisdiction=DE"
Response:
{
"result": {
"entity_name": "STRIPE, INC.",
"file_number": "5765498",
"status": "Active",
"good_standing": true,
"formation_date": "2010-07-30",
"entity_type": "Corporation",
"agent_name": "CT Corporation"
}
}
Covers all 50 US states. Data is sourced directly from Secretary of State
offices, not scraped from third-party aggregators.
The two-tier pricing thing
I noticed that a lot of verification workflows involve filtering. You have a list of 100 potential vendors, but you only need full verification on the 10 that pass initial checks.
So I built two endpoints:
- Pre-check ($0.10) - Just returns status and good standing. Fast, cheap, good for filtering loops.
- Full verification ($2.50) - Complete entity data, PDF certificate, audit trail.
This is especially useful for AI agents. They can do cheap exploration ($0.10 checks in a loop), then only pay for full verification when they've found the right entity.
MCP support
I added native https://modelcontextprotocol.io support, so LLMs like Claude can call the API directly during conversations. Point your MCP client at govlink.fly.dev/mcp and the model can verify businesses mid-conversation.
This felt like the right investment. AI agents are starting to handle real business workflows - procurement, compliance, due diligence. They need reliable data APIs, not web scraping.
Technical notes
The stack is straightforward: Python/FastAPI, SQLite for customer data, deployed on Fly.io.
One thing I'm oddly proud of: the customer dashboard is a single 3,200-line Python file with embedded HTML/CSS/JS. No React, no webpack, no node_modules. The entire UI ships as one HTTP response. It has dark mode,
skeleton loading, keyboard shortcuts, the works.
Is this a good idea? Probably not for a team. But for a solo project where I want to iterate fast without context-switching between frontend and backend repos, it works great.
Try it
GovLink is live at https://govlink.fly.dev. 10 free lookups to test, then pay-as-you-go.
If you're dealing with KYB compliance, vendor verification, or building AI agents that need to validate businesses, I'd love to hear what features would be useful.
Top comments (0)