Getting Started

Web search, crawling, extraction, and monitoring — for your apps and AI agents.

Connect your AI assistant via MCP, use the API directly, or build a workflow in the UI.

Using Claude, Cursor, or Windsurf?

Connect Zipf in one command. Your agent gets web search, crawl, and monitoring tools instantly.

0. Set Your API Key

After signing up, create a token at /dashboard/tokens and export it:

Set environment variable
export ZIPF_API_KEY="wvr_your_token_here"

1. Check Your Credit Balance

GET /api/v1
Returns your credit balance and available endpoints
curl https://www.zipf.ai/api/v1 \
  -H "Authorization: Bearer $ZIPF_API_KEY"

2. Run Your First Search

Basic search costs 1 credit. Results are returned immediately.

Search API workflow
1 credit (basic) | 2 credits with AI features
# Run a search
curl -X POST https://www.zipf.ai/api/v1/search \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "AI infrastructure startups 2026",
    "max_results": 10
  }'

# List your search history
curl https://www.zipf.ai/api/v1/search/jobs \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# Get a specific search job with full results
curl https://www.zipf.ai/api/v1/search/jobs/{search_job_id} \
  -H "Authorization: Bearer $ZIPF_API_KEY"

3. Search with AI Features

Enable query rewriting and reranking for better results (+1 credit).

POST /api/v1/search (advanced)
2 credits - interpret_query OR rerank_results OR generate_suggestions triggers advanced
curl -X POST https://www.zipf.ai/api/v1/search \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "best practices for fine-tuning LLMs in 2026",
    "max_results": 20,
    "interpret_query": true,
    "rerank_results": true,
    "generate_suggestions": true
  }'

More APIs

Ask API — Get Answers, Not Links

Direct answers with source citations. Designed for AI agents.

POST /api/v1/ask
2 credits (quick) | 3 credits (standard) | 5+ credits (deep)
curl -X POST https://www.zipf.ai/api/v1/ask \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "Who is the CEO of NVIDIA?",
    "depth": "quick"
  }'

Comprehensive Search — Query Decomposition

AI decomposes your intent into multiple searches, runs them in parallel, deduplicates results.

Comprehensive Search workflow
1 credit (decomposition) + 1 credit per sub-query
# Create a comprehensive search with query decomposition
curl -X POST https://www.zipf.ai/api/v1/search \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "comprehensive analysis of quantum computing progress in 2026",
    "query_decomposition": true,
    "max_sub_queries": 5
  }'

# List your search jobs (includes comprehensive searches)
curl https://www.zipf.ai/api/v1/search/jobs \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# Get search job with decomposition and results
curl https://www.zipf.ai/api/v1/search/jobs/{search_job_id} \
  -H "Authorization: Bearer $ZIPF_API_KEY"

Crawl API — Extract Structured Data

Crawl websites and extract custom fields using AI. Use processing_mode: "sync" to get results in a single request.

Sync Crawl (Recommended)
1 credit/page (basic) | 2 credits/page with extraction or classification
# Sync crawl - returns full results in one request (no polling!)
curl -X POST https://www.zipf.ai/api/v1/crawls \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://www.zipf.ai/about"],
    "max_pages": 1,
    "processing_mode": "sync",
    "extraction_schema": {
      "founder": "Extract the name of the founder or CEO",
      "angels": "Extract the names of angel investors or advisors",
      "company_description": "Extract the company description or mission"
    }
  }'
Async Crawl (for large jobs)
Use async for crawls with many pages, then poll for completion
# Async crawl - returns immediately, poll for results
curl -X POST https://www.zipf.ai/api/v1/crawls \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://example.com"],
    "max_pages": 5
  }'

# Poll for results
curl https://www.zipf.ai/api/v1/crawls/{crawl_id} \
  -H "Authorization: Bearer $ZIPF_API_KEY"

Workflow API — Composable Monitoring Pipelines

Build scheduled monitoring with three modes: Simple (single operation), Multi-Step (explicit pipelines), and AI-Planned (let AI design your workflow).

Simple Mode — Single Operation
Simple workflow (search or crawl)
1 credit/execution | 2 credits with NL condition
curl -X POST https://www.zipf.ai/api/v1/workflows \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Monitor for GPT-6 announcement",
    "mode": "simple",
    "workflow_type": "search",
    "operation_config": {
      "query": "GPT-6 release announcement OpenAI 2026",
      "max_results": 20
    },
    "stop_condition": {
      "type": "natural_language",
      "description": "Stop when GPT-6 is officially announced by OpenAI",
      "confidence_threshold": 0.8
    },
    "interval_minutes": 60,
    "max_executions": 168
  }'
Multi-Step Mode — Explicit Pipelines with Dependencies
Multi-step workflow with dependencies
Credits vary per step: search=1, crawl=1-2/page, aggregate=1
curl -X POST https://www.zipf.ai/api/v1/workflows \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI News Pipeline",
    "mode": "multi_step",
    "steps": [
      {
        "step_id": "search_news",
        "step_name": "Search AI News",
        "step_type": "search",
        "config": {"query": "AI breakthroughs 2026", "max_results": 30}
      },
      {
        "step_id": "crawl_top",
        "step_name": "Crawl Top Results",
        "step_type": "crawl",
        "depends_on": ["search_news"],
        "config": {"max_pages": 5}
      },
      {
        "step_id": "summarize",
        "step_name": "Summarize Findings",
        "step_type": "aggregate",
        "depends_on": ["crawl_top"],
        "config": {"aggregation_type": "summary"}
      }
    ],
    "stop_condition": {"type": "always"},
    "interval_minutes": 1440
  }'
AI-Planned Mode — Let AI Design Your Pipeline
AI-planned workflow from natural language
Preview for FREE, then create. AI generates optimal step pipeline.
# 1. Preview the plan (FREE)
curl -X POST https://www.zipf.ai/api/v1/workflows/plan \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "intent": "Track competitor product launches and pricing changes",
    "name": "Competitor Monitor",
    "max_credits_per_execution": 30
  }'

# 2. Create with AI planning
curl -X POST https://www.zipf.ai/api/v1/workflows \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Competitor Monitor",
    "mode": "ai_planned",
    "intent": "Track competitor product launches and pricing changes",
    "max_credits_per_execution": 30,
    "stop_condition": {"type": "always"},
    "interval_minutes": 720
  }'
Manage & Monitor
Workflow management commands
# List all workflows
curl https://www.zipf.ai/api/v1/workflows \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# Get workflow details
curl https://www.zipf.ai/api/v1/workflows/{workflow_id}/details \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# Get execution timeline
curl https://www.zipf.ai/api/v1/workflows/{workflow_id}/timeline \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# AI-native diff — what changed between executions
curl https://www.zipf.ai/api/v1/workflows/{workflow_id}/diff \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# Execute now (manual trigger)
curl -X POST https://www.zipf.ai/api/v1/workflows/{workflow_id}/execute \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# Pause/Resume
curl -X PATCH https://www.zipf.ai/api/v1/workflows/{workflow_id} \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "paused"}'

Sessions API — Multi-Step Workflows

Group related operations together. Auto-deduplicates URLs across searches.

Sessions workflow
Create once, run multiple operations within session
# Create session
curl -X POST https://www.zipf.ai/api/v1/sessions \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI Safety Research Project 2026",
    "session_config": { "auto_deduplicate": true }
  }'

# List all your sessions
curl https://www.zipf.ai/api/v1/sessions \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# Get session details
curl https://www.zipf.ai/api/v1/sessions/{session_id} \
  -H "Authorization: Bearer $ZIPF_API_KEY"

# Run search in session (filter_seen_urls removes duplicates)
curl -X POST https://www.zipf.ai/api/v1/sessions/{session_id}/search \
  -H "Authorization: Bearer $ZIPF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "AI alignment techniques 2026",
    "max_results": 20,
    "filter_seen_urls": true
  }'

# Get session timeline (all operations)
curl https://www.zipf.ai/api/v1/sessions/{session_id}/timeline \
  -H "Authorization: Bearer $ZIPF_API_KEY"

MCP Integration — Connect AI assistants and agents

Use Zipf AI directly in your MCP-compatible assistant or coding agent. The Model Context Protocol lets AI assistants search and crawl the web through Zipf.

One-Liner Setup
Quick connect
OAuth handles authentication automatically — no API key needed
# Claude Code (Run in your terminal)
claude mcp add zipf -- npx -y mcp-remote https://www.zipf.ai/api/mcp/sse

# Cursor — add to ~/.cursor/mcp.json
# Windsurf — add to ~/.codeium/windsurf/mcp_config.json
# Claude Desktop — Settings → Integrations → Add → paste the SSE URL
JSON Config (MCP clients)
MCP Configuration
Add to your client MCP config file, or use the remote server URL in your MCP client settings
{
  "mcpServers": {
    "zipf": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://www.zipf.ai/api/mcp/sse"
      ]
    }
  }
}
Available MCP Tools
zipfai_status

Check credits (FREE)

zipfai_search

AI-enhanced web search (1-2 credits)

zipfai_ask

Get answers with sources (2-5 credits)

zipfai_crawl

Extract content from URLs (1-2 credits/page)

zipfai_research

Search + auto-crawl combo

Need help? Visit the MCP Integration Dashboard for guided setup and key management.

Quick Reference

Credits

OperationBasicAdvanced
Ask2-5 credits
Search1 credit2 credits
Crawl (per page)1 credit2 credits
Comprehensive Search1 + N credits
Workflow (simple)1 credit/exec2 credits (NL condition)
Workflow (multi-step)Sum of step costs per execution
Workflow Plan PreviewFREE

Advanced triggers: interpret_query, rerank_results, generate_suggestions, extraction_schema, classify_documents, natural_language condition

Authentication

Base URL: https://www.zipf.ai/api/v1
Header:   Authorization: Bearer $ZIPF_API_KEY

Python Example

import requests
import os

API_KEY = os.environ["ZIPF_API_KEY"]
BASE_URL = "https://www.zipf.ai/api/v1"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# Basic search
response = requests.post(
    f"{BASE_URL}/search",
    headers=headers,
    json={
        "query": "AI infrastructure startups 2026",
        "max_results": 10
    }
)

results = response.json()
print(f"Found {results['results']['total_found']} results")

for url in results['results']['urls'][:5]:
    print(f"  - {url['title']}: {url['url']}")

# Sync crawl - get results in one request
crawl = requests.post(
    f"{BASE_URL}/crawls",
    headers=headers,
    json={
        "urls": ["https://example.com"],
        "max_pages": 3,
        "processing_mode": "sync"  # No polling needed!
    }
).json()

print(f"Crawled {crawl['stats']['pages_crawled']} pages")

TypeScript/Node Example

const API_KEY = process.env.ZIPF_API_KEY;
const BASE_URL = "https://www.zipf.ai/api/v1";

async function search(query: string) {
  const response = await fetch(`${BASE_URL}/search`, {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${API_KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ query, max_results: 10 })
  });
  return response.json();
}

async function crawl(urls: string[]) {
  const response = await fetch(`${BASE_URL}/crawls`, {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${API_KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      urls,
      max_pages: 5,
      processing_mode: "sync"  // Returns full results, no polling!
    })
  });
  return response.json();
}

// Usage
const results = await search("AI infrastructure startups 2026");
console.log(`Found ${results.results.total_found} results`);

const crawlResults = await crawl(["https://example.com"]);
console.log(`Crawled ${crawlResults.stats.pages_crawled} pages`);

Resources

100 free credits/month. No credit card required.

Get Started
Skip to main content
Getting Started | Zipf AI