Haunt for the Vercel AI SDK.
Haunt reads public web pages for AI agents and returns structured JSON or clean markdown. When a page cannot be read, it says so with a plain error code instead of inventing content, and failed reads are not charged. One npm package exports a typed tool your model can call.
Try it before you sign up
The free reader needs no key and no account. Prepend the reader path to any URL:
curl https://hauntapi.com/r/example.com
Clean markdown back, or an honest reason when the page cannot be read.
Install and wire the tool.
Works with any AI SDK model that supports tool calling.
npm i @hauntapi/ai-sdk-tools
export HAUNT_API_KEY=your-key
import { hauntExtract } from "@hauntapi/ai-sdk-tools";
const result = await generateText({ model, tools: { hauntExtract: hauntExtract() }, prompt });An honest no beats a confident fake yes.
A blocked, missing, or login-walled page returns a structured error code your model can branch on, never invented content. That is the failure mode that quietly poisons agent pipelines, and it is the one Haunt refuses to have.
What a failed read looks like
{"error_code": "login_required",
"message": "This page needs a login.",
"charged": false}Free to start, priced for working calls.
A free key comes with 1,000 credits and no card. You only pay for calls that return working data. Get a key or see all integrations.