extractly-api
AI-powered web scraping and structured data extraction API.
v1.0.0Base: https://extractly.me/apiAuth: bearer
Use this API
CLI (one command)
agentbridge chat extractly-apiSDK / Agents
fetch("/api/extractly-api/manifest")MCP (Claude Desktop / Cursor / Windsurf)
{
"mcpServers": {
"extractly-api": {
"command": "npx",
"args": ["@agentbridgeai/mcp", "--api", "extractly-api"]
}
}
}Add to ~/.claude/claude_desktop_config.json or Cursor/Windsurf MCP settings.
Actions (7)
POST
/scrapescrapeWebsite
Scrape website content
Parameters
urlstringrequiredWebsite URL to scrapemaxPagesintegerMaximum number of pages to scrapemodestringScraping modePOST
/extractextractStructuredData
Extract structured JSON data using AI
Parameters
scrapedDatastringrequiredScraped website contenttemplatePromptstringrequiredExtraction prompt defining JSON schemaproviderstringAI provider to use (e.g., gemini, openai)POST
/mapmapWebsite
Discover all URLs on a website
Parameters
urlstringrequiredWebsite URL to discover all internal linksGET
/templateslistTemplates
List extraction templates
POST
/templatescreateTemplate
Create a new extraction template
Parameters
idstringidnamestringnamepromptstringpromptPUT
/templatesupdateTemplate
Update an extraction template
Parameters
idstringrequiredididstringidnamestringnamepromptstringpromptDELETE
/templatesdeleteTemplate
Delete an extraction template
Parameters
idstringrequiredidOriginal OpenAPI Spec
{
"openapi": "3.1.0",
"info": {
"title": "Extractly API",
"description": "AI-powered web scraping and structured data extraction API.",
"version": "1.0.0"
},
"servers": [
{
"url": "https://extractly.me/api"
}
],
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"ScrapeRequest": {
"type": "object",
"required": ["url"],
"properties": {
"url": {
"type": "string",
"description": "Website URL to scrape"
},
"maxPages": {
"type": "integer",
"description": "Maximum number of pages to scrape",
"default": 1
},
"mode": {
"type": "string",
"enum": ["optimized", "deep"],
"description": "Scraping mode"
}
}
},
"ExtractRequest": {
"type": "object",
"required": ["scrapedData", "templatePrompt"],
"properties": {
"scrapedData": {
"type": "string",
"description": "Scraped website content"
},
"templatePrompt": {
"type": "string",
"description": "Extraction prompt defining JSON schema"
},
"provider": {
"type": "string",
"description": "AI provider to use (e.g., gemini, openai)"
}
}
},
"MapRequest": {
"type": "object",
"required": ["url"],
"properties": {
"url": {
"type": "string",
"description": "Website URL to discover all internal links"
}
}
},
"Template": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"prompt": {
"type": "string"
}
}
}
}
},
"security": [
{
"bearerAuth": []
}
],
"paths": {
"/scrape": {
"post": {
"operationId": "scrapeWebsite",
"summary": "Scrape website content",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScrapeRequest"
}
}
}
},
"responses": {
"200": {
"description": "Scraped content returned"
}
}
}
},
"/extract": {
"post": {
"operationId": "extractStructuredData",
"summary": "Extract structured JSON data using AI",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExtractRequest"
}
}
}
},
"responses": {
"200": {
"description": "Structured JSON extracted"
}
}
}
},
"/map": {
"post": {
"operationId": "mapWebsite",
"summary": "Discover all URLs on a website",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MapRequest"
}
}
}
},
"responses": {
"200": {
"description": "List of discovered URLs"
}
}
}
},
"/templates": {
"get": {
"operationId": "listTemplates",
"summary": "List extraction templates",
"responses": {
"200": {
"description": "List of templates"
}
}
},
"post": {
"operationId": "createTemplate",
"summary": "Create a new extraction template",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Template"
}
}
}
},
"responses": {
"200": {
"description": "Template created"
}
}
},
"put": {
"operationId": "updateTemplate",
"summary": "Update an extraction template",
"parameters": [
{
"name": "id",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Template"
}
}
}
},
"responses": {
"200": {
"description": "Template updated"
}
}
},
"delete": {
"operationId": "deleteTemplate",
"summary": "Delete an extraction template",
"parameters": [
{
"name": "id",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Template deleted"
}
}
}
}
}
}