SEO Data Extractor

Fetch a webpage and instantly extract all key SEO fields: title, meta tags, headings, canonical URL, and more. Give this API a web address and it will visit that page, then hand back everything an SEO professional needs to know: the page title, meta description, meta keywords, robots instructions, canonical link, H1/H2/H3 headings, how many links are on the page, and the HTTP status code. No setup required — just paste a URL and get structured data back in under two seconds. Pay-per-call at $0.01 USDC over x402 on Base or Solana — no account, no API key. OpenAPI 3.1.0; 1 operation(s): POST /extract.

OpenAPI Specification

done-seo-data-extractor-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SEO Data Extractor
  description: 'Give this API a web address and it will visit that page, then hand back everything an SEO professional needs
    to know: the page title, meta description, meta keywords, robots instructions, canonical link, H1/H2/H3 headings, how
    many links are on the page, and the HTTP status code. No setup required — just paste a URL and get structured data back
    in under two seconds.'
  version: 1.0.0
  contact:
    name: _done
    url: https://forms.gle/5KzuSFH7p8hHtDmz7
    email: info@underscoredone.com
  x-openapi-url: https://seo-data-extractor.underscoredone.com/openapi.json
  x-logo:
    url: https://underscoredone.com/logo.png
    altText: _done
  x-guidance: Send a single URL string in the 'url' field. The API will fetch that page and return structured SEO data. If
    the page redirects, the final destination URL and its status code are returned. All missing fields come back as empty
    strings, never null. The 'num_links' field is always an integer. Use the returned fields directly for SEO audits, content
    comparisons, or monitoring pipelines. Do not send multiple URLs in one call — make one call per URL.
  x-ai-instructions: Send a single URL string in the 'url' field. The API will fetch that page and return structured SEO data.
    If the page redirects, the final destination URL and its status code are returned. All missing fields come back as empty
    strings, never null. The 'num_links' field is always an integer. Use the returned fields directly for SEO audits, content
    comparisons, or monitoring pipelines. Do not send multiple URLs in one call — make one call per URL.
  x-provider: _done — single-purpose utility APIs for developers and AI agents. Pay per call with USDC on Base Mainnet or
    Solana Mainnet.
  x-pricing:
    model: pay-per-call
    currency: USDC
    network: Base Mainnet or Solana Mainnet
    price: $0.01
  x-keywords:
  - parsing
  - seo
  - data
  - extractor
  - meta tags
  - title tag
  - canonical
  - headings
  - seo audit
  - competitor analysis
  - webpage scraping
  - robots
  - h1
  - h2
  - utility
  - api
  - ai-agent
  - pay-per-call
  - usdc
  - x402
  x-category: seo
  x-provider-url: https://underscoredone.com
  x-agentcash-auth:
    mode: paid
  x-402:
    price: $0.01
    network: eip155:8453
    asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
    pay_to: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
    facilitator: https://api.cdp.coinbase.com/platform/v2/x402
    scheme: exact
    description: 'Give this API a web address and it will visit that page, then hand back everything an SEO professional needs
      to know: the page title, meta description, meta keywords, robots instructions, canonical link, H1/H2/H3 headings, how
      many links are on the page, and the HTTP status code. No setup required — just paste a URL and get structured data back
      in under two seconds.'
    mime_type: application/json
    networks:
    - network: eip155:8453
      asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
      pay_to: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
    - network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
      asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
      pay_to: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b
paths:
  /extract:
    post:
      tags:
      - seo
      - seo metadata
      - on page seo
      - meta tags
      - extract meta tags
      - page title and headings
      - seo audit
      - meta description
      - open graph tags
      - technical seo
      - seo data
      - canonical url
      - h1 tags
      - seo analysis
      - page metadata
      - search engine optimization
      - search engine optimisation
      summary: Visit a URL and pull out every important SEO field in one call.
      description: Visit the web address you provide and pull out every important SEO field in one go.
      operationId: handler_extract_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Request'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
              examples:
                success:
                  summary: Successful response
                  value:
                    api_version: 1.0.0
                    url: https://www.onescales.com
                    final_url: https://onescales.com/
                    status_code: 200
                    title_tag: One Scales - Ecommerce, Analytics, Tech, Shopify & Marketing Tutorials
                    meta_description: We Create Tutorials, How-To's and Share Insight about E-commerce, Web, Tech, AI, Shopify,
                      Analytics, SEO, PPC, Marketing and More.
                    meta_keywords: ''
                    meta_robots: ''
                    canonical_tag: https://onescales.com/
                    h1_tags: []
                    h2_tags:
                    - Join our Newsletter
                    - Size chart
                    - Follow Us on Social Media
                    h3_tags:
                    - Intro to One Scales
                    num_links: 187
        '422':
          description: Unprocessable — a required field is missing or the wrong type. Check the detail field for specifics.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: array
        '402':
          description: Payment required. Send a signed USDC payment on Base Mainnet or Solana Mainnet using the x402 protocol.
          headers:
            X-Payment-Response:
              description: x402 payment challenge — base64-encoded JSON with payment details.
              schema:
                type: string
        '400':
          description: Bad request — your input failed validation or could not be processed. Check the detail field for specifics.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
      x-ai-instructions: Send a single URL string in the 'url' field. The API will fetch that page and return structured SEO
        data. If the page redirects, the final destination URL and its status code are returned. All missing fields come back
        as empty strings, never null. The 'num_links' field is always an integer. Use the returned fields directly for SEO
        audits, content comparisons, or monitoring pipelines. Do not send multiple URLs in one call — make one call per URL.
      x-guidance: Send a single URL string in the 'url' field. The API will fetch that page and return structured SEO data.
        If the page redirects, the final destination URL and its status code are returned. All missing fields come back as
        empty strings, never null. The 'num_links' field is always an integer. Use the returned fields directly for SEO audits,
        content comparisons, or monitoring pipelines. Do not send multiple URLs in one call — make one call per URL.
      x-payment-info:
        price:
          fixed:
            mode: fixed
            currency: USD
            amount: '0.01'
        protocols:
        - x402: {}
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Request:
      properties:
        url:
          type: string
          maxLength: 2048
          title: Url
          description: 'The full web address of the page you want to analyse, including http:// or https://. Example: https://www.example.com'
        timeout_seconds:
          type: integer
          maximum: 15.0
          minimum: 1.0
          title: Timeout Seconds
          description: How many seconds to wait for the page to respond before giving up. Must be between 1 and 15. Defaults
            to 10 if not provided.
          default: 10
      type: object
      required:
      - url
      title: Request
      example:
        url: https://www.example.com
    Response:
      properties:
        api_version:
          type: string
          title: Api Version
          description: API version
          default: 1.0.0
        url:
          type: string
          title: Url
          description: The original web address you submitted.
        final_url:
          type: string
          title: Final Url
          description: The web address of the page after any redirects.
        status_code:
          type: integer
          title: Status Code
          description: The HTTP status code the page returned, for example 200 means OK, 404 means not found.
        title_tag:
          type: string
          title: Title Tag
          description: The page title as set by the website, shown in browser tabs and search results. Empty string if not
            found.
        meta_description:
          type: string
          title: Meta Description
          description: The short description the website provides to search engines. Empty string if not present.
        meta_keywords:
          type: string
          title: Meta Keywords
          description: Keywords the website declares for search engines. Mostly unused today. Empty string if not present.
        meta_robots:
          type: string
          title: Meta Robots
          description: Instructions the website gives to search engine crawlers, for example 'noindex'. Empty string if not
            present.
        canonical_tag:
          type: string
          title: Canonical Tag
          description: The preferred URL the website declares for search engines to index. Empty string if not present.
        h1_tags:
          items:
            type: string
          type: array
          title: H1 Tags
          description: All top-level headings found on the page. Empty list if none.
        h2_tags:
          items:
            type: string
          type: array
          title: H2 Tags
          description: All second-level headings found on the page. Empty list if none.
        h3_tags:
          items:
            type: string
          type: array
          title: H3 Tags
          description: All third-level headings found on the page. Empty list if none.
        num_links:
          type: integer
          title: Num Links
          description: The total number of clickable links (anchor tags with an href) found on the page.
      type: object
      required:
      - url
      - final_url
      - status_code
      - title_tag
      - meta_description
      - meta_keywords
      - meta_robots
      - canonical_tag
      - h1_tags
      - h2_tags
      - h3_tags
      - num_links
      title: Response
      example:
        api_version: 1.0.0
        canonical_tag: https://onescales.com/
        final_url: https://onescales.com/
        h1_tags: []
        h2_tags:
        - Join our Newsletter
        - Size chart
        - Follow Us on Social Media
        h3_tags:
        - Intro to One Scales
        meta_description: We Create Tutorials, How-To's and Share Insight about E-commerce, Web, Tech, AI, Shopify, Analytics,
          SEO, PPC, Marketing and More.
        meta_keywords: ''
        meta_robots: ''
        num_links: 187
        status_code: 200
        title_tag: One Scales - Ecommerce, Analytics, Tech, Shopify & Marketing Tutorials
        url: https://www.onescales.com
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    siwx:
      type: apiKey
      in: header
      name: SIGN-IN-WITH-X
      description: CAIP-122 wallet signature for repeat access after payment
servers:
- url: https://seo-data-extractor.underscoredone.com
  description: Production
tags:
- name: seo
- name: seo metadata
- name: on page seo
- name: meta tags
- name: extract meta tags
- name: page title and headings
- name: seo audit
- name: meta description
- name: open graph tags
- name: technical seo
- name: seo data
- name: canonical url
- name: h1 tags
- name: seo analysis
- name: page metadata
- name: search engine optimization
- name: search engine optimisation
x402Version: 2
x-payment-accepts:
- scheme: exact
  network: eip155:8453
  payTo: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
  asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
- scheme: exact
  network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
  payTo: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b
  asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v