REST API

Web Extraction API

Extract text, contacts, images, and AI summaries from any URL. One POST, clean JSON back.

Base URL https://instantbot.app/api/v1

Overview

The InstantBot Web Extraction API fetches any public URL and returns structured data in a single call. No browser, no scraping infrastructure, no headaches. Send a URL, get back clean JSON.

Three endpoints cover the most common extraction needs: full-page data, contact-only extraction, and AI-generated summaries. All endpoints share the same auth scheme and error format.

Authentication

Pass your API key in the x-api-key header on every request. Keys start with ib_. Get yours from the dashboard.

curl -X POST https://instantbot.app/api/v1/extract \
  -H "x-api-key: ib_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'
Missing or malformed key returns 401. Exceeded quota returns 429.

Rate Limits

100 requests per hour per API key, regardless of plan. Every response includes:

HeaderDescription
X-RateLimit-LimitMax requests per hour (100)
X-RateLimit-RemainingRequests left in the current window
X-RateLimit-ResetUnix timestamp when the window resets

Endpoints

POST /extract Full page extraction — title, description, body text (up to 5,000 chars), emails, phones, links, images, and metadata.
Request body
{
  "url": "https://example.com"  // required; http:// added automatically if omitted
}
Response
{
  "success": true,
  "url":     "https://example.com",
  "title":  "Example Domain",
  "description": "This domain is for use in illustrative examples...",
  "text":   "Example Domain This domain is for use...",  // max 5,000 chars
  "emails": ["[email protected]"],
  "phones": ["+1 800 555 0100"],
  "links":  [{ "href": "https://example.com/about", "text": "About" }],  // up to 50
  "images": [{ "src": "https://example.com/logo.png", "alt": "Logo" }],  // up to 30
  "metadata": {
    "og:title":  "Example Domain",
    "language":  "en",
    "canonical": "https://example.com/"
  },
  "processingTimeMs": 342
}
POST /extract/contacts Contact-focused extraction — emails, phones, physical addresses, and social media profile links.
Request body
{
  "url": "https://example.com/contact"  // required
}
Response
{
  "success":     true,
  "url":         "https://example.com/contact",
  "emails":      ["[email protected]", "[email protected]"],
  "phones":      ["+1 800 555 0100"],
  "addresses":   ["123 Main Street, Springfield, IL 62701"],
  "socialLinks": [
    "https://twitter.com/example",
    "https://linkedin.com/company/example"
  ],
  "processingTimeMs": 198
}
POST /extract/summary AI-powered summary — distills any page into a short paragraph and 3–5 key points using a large language model.
Request body
{
  "url":       "https://example.com",  // required
  "maxLength": 500                    // optional; max 2000, default 500
}
Response
{
  "success":   true,
  "url":       "https://example.com",
  "title":     "Example Domain",
  "summary":   "Example.com is a placeholder domain maintained by IANA...",
  "keyPoints": [
    "Reserved by IANA for illustrative examples",
    "Safe to use in documentation without prior permission",
    "Links to further official information"
  ],
  "processingTimeMs": 1820
}
This endpoint calls an LLM internally and typically takes 1–4 seconds longer than the others.
ERR Error responses All errors share the same JSON envelope.
StatusMeaning
400Missing or invalid url in request body
401Missing or malformed API key
429Rate limit exceeded (100 req/hour)
502Target URL returned a non-200 HTTP response
500Internal server error
Error body
{
  "success": false,
  "error":   "url is required",
  "processingTimeMs": 2
}

Pricing

Free
$0 / month
  • 100 requests / day
  • All 3 endpoints
  • 100 req / hour rate limit
  • No credit card needed

Get your API key

Free to start. No credit card required.

Get Your API Key