# Surface > Surface is a pay-per-request URL preflight for AI agents. Before an agent fetches a URL a user pasted (especially t.co, bit.ly, lnkd.in, youtu.be), call Surface: it unwraps redirects and returns next: "fetch" or "skip". It never returns the page body. The first 1M requests/month are free; after that it's $0.25 USD per 1k preflights (Hop $0.40, Pixel $0.15, Inspect $0.20 per 1k). ## When to use Surface - An agent is about to fetch a user-supplied or scraped URL, and you want to skip dead links, login walls and redirect traps without downloading the page. - You want to unwrap short links to see the final host before opening them. - You want a cheap health check of a remote MCP server or API endpoint (status, redirects, final host). ## Quick start - Get a free key first (no email, no card): POST https://nova-otter-delta-cloud.grok.me/v1/keys Returns {"key","created_at","free_monthly":1000000,"usage_url"}. Five new keys per IP per day. - Pass it as Authorization: Bearer or X-Surface-Key: on /v1/preflight, /v1/inspect, /mcp, /h/* and /px/*. - Your usage: GET https://nova-otter-delta-cloud.grok.me/v1/usage with that header, or open usage_url. - Anonymous calls still work. They share the demo meter (60 requests/min per IP). A key has its own 1M free requests/month and 600/min. - MCP (streamable HTTP): https://nova-otter-delta-cloud.grok.me/mcp with tool preflight_url {"url": "..."} - REST: GET https://nova-otter-delta-cloud.grok.me/v1/preflight?url= - REST: POST https://nova-otter-delta-cloud.grok.me/v1/preflight with JSON {"url": "..."} - GET /badge/.svg (or /badge.svg): README badge, same image for every slug. Optional ?key= counts the view on that key. Priced like a pixel. ### curl curl -s -X POST https://nova-otter-delta-cloud.grok.me/v1/keys curl -s -H "Authorization: Bearer $KEY" "https://nova-otter-delta-cloud.grok.me/v1/preflight?url=https://youtu.be/jNQXAC9IVRw" ### Python import json, urllib.request mint = urllib.request.Request("https://nova-otter-delta-cloud.grok.me/v1/keys", method="POST") key = json.load(urllib.request.urlopen(mint))["key"] req = urllib.request.Request( "https://nova-otter-delta-cloud.grok.me/v1/preflight?url=https://youtu.be/jNQXAC9IVRw", headers={"Authorization": "Bearer " + key}) print(urllib.request.urlopen(req).read().decode()) ## Docs - [Docs](https://nova-otter-delta-cloud.grok.me/docs) - [Full LLM reference](https://nova-otter-delta-cloud.grok.me/llms-full.txt) - [Free MCP Server Health Checker](https://surface-mcp-health.marc-cf2.workers.dev/)