{
  "url": "https://telipot.com/catalog/capabilities/web.extract.structured",
  "id": "web.extract.structured",
  "description": "Typed JSON extracted from web pages by a prompt or a schema",
  "platform": "web",
  "providers": [
    {
      "slug": "firecrawl",
      "name": "Firecrawl"
    }
  ],
  "tasks": 1,
  "taskPages": [
    {
      "id": "firecrawl.web.extract.structured",
      "name": "Start JSON extraction from URLs by prompt or schema",
      "provider": {
        "slug": "firecrawl",
        "name": "Firecrawl"
      },
      "capability": "web.extract.structured",
      "platform": "web",
      "kind": "data",
      "tier": "core",
      "identity": "key",
      "identityLabel": "Your plan",
      "price": {
        "confidence": "unknown",
        "source": "docs",
        "sourceUrl": "https://docs.firecrawl.dev/features/extract",
        "checked": "2026-10-05",
        "note": "Extract bills credits by tokens used, each credit worth 15 tokens, and the docs publish no per-call or per-URL price. The status route reports tokensUsed.",
        "type": "per_call",
        "state": "unknown",
        "label": "Price unknown",
        "detail": "Not listed, not free"
      },
      "providers": 1,
      "retention": "standard",
      "runsOn": "byoc",
      "live": true,
      "summary": "Extract structured data from pages using LLMs",
      "method": "POST",
      "path": "/extract",
      "host": "https://api.firecrawl.dev/v2",
      "docsUrl": "https://docs.firecrawl.dev/api-reference/endpoint/extract",
      "auth": {
        "scheme": "bearer",
        "label": "bearer · Authorization: Bearer",
        "short": "bearer · Authorization"
      },
      "scope": "any_account",
      "principal": "organization",
      "requiredScopes": [],
      "verification": {
        "state": "none",
        "label": "Not verified yet",
        "detail": "Not checked yet. We test with a real request before we mark it."
      },
      "input": [
        {
          "name": "urls",
          "location": "body",
          "type": "array",
          "required": true,
          "constraints": [],
          "note": "The URLs to extract data from, in glob format; a trailing /* crawls the whole domain (experimental)"
        },
        {
          "name": "prompt",
          "location": "body",
          "type": "string",
          "required": false,
          "constraints": [],
          "note": "Guides the extraction; required when there is no schema"
        },
        {
          "name": "schema",
          "location": "body",
          "type": "object",
          "required": false,
          "constraints": [],
          "note": "JSON Schema of the data to return; required when there is no prompt"
        },
        {
          "name": "enableWebSearch",
          "location": "body",
          "type": "boolean",
          "required": false,
          "constraints": [
            "default false"
          ],
          "note": "Let the extraction use web search to find additional data"
        },
        {
          "name": "showSources",
          "location": "body",
          "type": "boolean",
          "required": false,
          "constraints": [
            "default false"
          ],
          "note": "Include the sources used in the response as sources"
        },
        {
          "name": "includeSubdomains",
          "location": "body",
          "type": "boolean",
          "required": false,
          "constraints": [
            "default true"
          ],
          "note": "Also scan subdomains of the provided URLs"
        }
      ],
      "sampleInput": {
        "urls": [
          "https://example.com"
        ],
        "prompt": "Extract the page title"
      },
      "inputSchema": {
        "type": "object",
        "properties": {
          "urls": {
            "type": "array",
            "description": "The URLs to extract data from, in glob format; a trailing /* crawls the whole domain (experimental)",
            "examples": [
              [
                "https://example.com"
              ]
            ]
          },
          "prompt": {
            "type": "string",
            "description": "Guides the extraction; required when there is no schema",
            "examples": [
              "Extract the page title"
            ]
          },
          "schema": {
            "type": "object",
            "description": "JSON Schema of the data to return; required when there is no prompt"
          },
          "enableWebSearch": {
            "type": "boolean",
            "description": "Let the extraction use web search to find additional data",
            "default": false
          },
          "showSources": {
            "type": "boolean",
            "description": "Include the sources used in the response as sources",
            "default": false
          },
          "includeSubdomains": {
            "type": "boolean",
            "description": "Also scan subdomains of the provided URLs",
            "default": true
          }
        },
        "required": [
          "urls"
        ],
        "additionalProperties": false
      },
      "output": [
        {
          "name": "success",
          "type": "boolean"
        },
        {
          "name": "id",
          "type": "string",
          "description": "The extract job id to pass to the status task"
        },
        {
          "name": "invalidURLs",
          "type": "array | null"
        }
      ],
      "outputSchema": {
        "type": "object",
        "required": [
          "success",
          "id"
        ],
        "properties": {
          "success": {
            "type": "boolean"
          },
          "id": {
            "type": "string",
            "description": "The extract job id to pass to the status task"
          },
          "invalidURLs": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "commands": {
        "mode": "run",
        "cli": "telipot run firecrawl.web.extract.structured \\\n  --input-json '{\"urls\":[\"https://example.com\"],\"prompt\":\"Extract the page title\"}'",
        "http": "curl https://api.telipot.com/v1/tasks/firecrawl.web.extract.structured/run \\\n  -H \"Authorization: Bearer $TELIPOT_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"urls\":[\"https://example.com\"],\"prompt\":\"Extract the page title\"}'",
        "quote": "telipot run firecrawl.web.extract.structured \\\n  --input-json '{\"urls\":[\"https://example.com\"],\"prompt\":\"Extract the page title\"}' \\\n  --quote"
      },
      "siblings": []
    }
  ]
}
