Geekflare API

REST API suite for scraping, search, data extraction, screenshots, DNS lookups, and web utilities — 18 operations on a single base URL with a shared credit pool, documented in a published OpenAPI 3.1 contract and mirrored by a 20-tool MCP server.

Operations 18

POST /metascraping Scrape a webpage meta with custom options #
POST /webscraping Scrape a webpage with custom options #
POST /dnsrecord Retrieve DNS records for a given domain #
POST /screenshot Capture a full-page screenshot of a website #
POST /up Check if a site is up or down #
POST /redirectcheck Check the redirection chain of a given URL #
POST /url2pdf Capture a full-page Url2Pdf of a website #
POST /openport Scan a website for open ports #
POST /tlsscan Perform TLS scan for a given domain #
POST /loadtime Measure the page load time for a given URL #
POST /mixedcontent Check for mixed content on a site #
POST /dnssec Check if DNSSEC is enabled for a domain #
POST /mtr Perform MTR (My Traceroute) network diagnostic test #
POST /ping Perform ICMP Ping test on a given URL or IP #
POST /lighthouse Run Lighthouse audit on a website #
POST /brand Get brand data for a domain #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/geekflare-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

geekflare-openapi.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "Geekflare",
    "description": "Official OpenAPI specification for all Geekflare endpoints.",
    "version": "1.0.0",
    "license": { "name": "MIT" }
  },
  "servers": [{ "url": "https://api.geekflare.com" }],
  "security": [
    {
      "x-api-key": []
    }
  ],
  "paths": {
    "/metascraping": {
      "post": {
        "description": "Extract a page's meta tags, Open Graph, and Twitter Card data like title, description, canonical URL, images, and more without scraping the full page body.",
        "operationId": "metaScrape",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MetaScrapeDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully scraped webpage meta",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaScrapeResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "422": {
            "description": "No metadata found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 422,
                  "message": "NO_METADATA",
                  "details": "Metadata could not be extracted from the target URL."
                }
              }
            }
          },
          "500": {
            "description": "Crawling failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 500,
                  "message": "CRAWL_FAILED",
                  "details": "Our crawling service encountered an error while attempting to fetch data from the specified URL."
                }
              }
            }
          }
        },
        "summary": "Scrape a webpage meta with custom options",
        "tags": ["api-tool"]
      }
    },
    "/webscraping": {
      "post": {
        "description": "Fetch a page and return content as Markdown, HTML, JSON, or plain text. Automatically detects whether JavaScript rendering is needed, with optional stealth mode, `proxyMode`-controlled proxy routing, CSS/XPath field extraction, and ready-made `product`/`contact` extraction templates.",
        "operationId": "webScrape",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebScrapeDto"
              },
              "examples": {
                "default": {
                  "summary": "Default",
                  "value": {
                    "url": "https://example.com"
                  }
                },
                "customOptions": {
                  "summary": "Custom options",
                  "value": {
                    "url": "https://example.com",
                    "format": ["markdown", "json"],
                    "stealth": true,
                    "waitTime": 2.5
                  }
                },
                "withProxy": {
                  "summary": "With proxy",
                  "value": {
                    "url": "https://example.com",
                    "proxyMode": true,
                    "proxyCountry": "gb"
                  }
                },
                "withTemplate": {
                  "summary": "With extraction template",
                  "value": {
                    "url": "https://example.com/products/laptop-107",
                    "extractionMode": "template",
                    "template": "product"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully scraped webpage",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebScrapeResponseDto"
                },
                "examples": {
                  "default": {
                    "summary": "Default scrape",
                    "value": {
                      "timestamp": 1778737930991,
                      "apiStatus": "success",
                      "apiCode": 200,
                      "meta": {
                        "url": "https://example.com",
                        "device": "desktop",
                        "format": ["html-llm"],
                        "fileOutput": false,
                        "blockAds": true,
                        "renderJS": true,
                        "stealth": false,
                        "waitTime": 0,
                        "extractionMode": "default",
                        "proxyMode": "false",
                        "proxyUsed": false,
                        "test": { "id": "abc123" }
                      },
                      "data": "# Example Domain\n\nThis domain is for use in illustrative examples..."
                    }
                  },
                  "templateContact": {
                    "summary": "extractionMode: template, template: contact",
                    "value": {
                      "timestamp": 1786985696914,
                      "apiStatus": "success",
                      "apiCode": 200,
                      "meta": {
                        "url": "https://testingurl.dev/contact",
                        "device": "desktop",
                        "format": ["json"],
                        "fileOutput": false,
                        "blockAds": true,
                        "renderJS": true,
                        "stealth": false,
                        "waitTime": 1,
                        "extractionMode": "template",
                        "template": "contact",
                        "proxyMode": "false",
                        "proxyUsed": false,
                        "test": { "id": "8f3a07aa-8b8d-4f21-b0d6-706d3fea5dc0" }
                      },
                      "data": {
                        "json": {
                          "contact": {
                            "companyName": "TestingURL.dev",
                            "locations": [
                              {
                                "id": "london",
                                "label": "London",
                                "address": "221B Baker Street",
                                "mapUrl": "https://www.google.com/maps/search/?api=1&query=221B%20Baker%20Street",
                                "phones": [{ "value": "+1-555-0102" }],
                                "emails": [
                                  { "value": "hello@testingurl.dev", "label": "general" },
                                  { "value": "sales@testingurl.dev", "label": "sales" }
                                ]
                              }
                            ],
                            "contactChannels": {
                              "emails": [
                                { "value": "hello@testingurl.dev", "label": "general" },
                                { "value": "sales@testingurl.dev", "label": "sales" }
                              ],
                              "phones": [{ "value": "+1-555-0102" }],
                              "forms": ["https://testingurl.dev/contact"]
                            },
                            "socialProfiles": [
                              { "platform": "github", "url": "https://github.com/geekflare/testingurl" }
                            ],
                            "extractionMeta": {
                              "fieldsFound": ["companyName", "locations", "address", "phones", "emails", "forms", "socialProfiles"],
                              "fieldsMissing": ["hours", "chatUrl", "contactPersons"]
                            }
                          },
                          "raw": "..."
                        }
                      }
                    }
                  },
                  "templateProduct": {
                    "summary": "extractionMode: template, template: product",
                    "value": {
                      "timestamp": 1786985781147,
                      "apiStatus": "success",
                      "apiCode": 200,
                      "meta": {
                        "url": "https://testingurl.dev/scraping/ecommerce/product/1",
                        "device": "desktop",
                        "format": ["json"],
                        "fileOutput": false,
                        "blockAds": true,
                        "renderJS": true,
                        "stealth": false,
                        "waitTime": 1,
                        "extractionMode": "template",
                        "template": "product",
                        "proxyMode": "false",
                        "proxyUsed": false,
                        "test": { "id": "22c8fcbf-dcf9-42e5-aaec-a0a3df4b334a" }
                      },
                      "data": {
                        "json": {
                          "product": {
                            "title": "Vertex Air Laptop 107",
                            "brand": "Vertex",
                            "category": "laptops",
                            "url": "https://testingurl.dev/scraping/ecommerce/product/1",
                            "description": "Designed with a minimalist aesthetic.",
                            "aggregateRating": {
                              "ratingValue": 2,
                              "bestRating": 5,
                              "reviewCount": 19
                            },
                            "variants": [
                              {
                                "sku": "TU-1",
                                "price": { "amount": 86, "currency": "USD" },
                                "availability": { "inStock": true, "text": "https://schema.org/InStock" },
                                "images": [{ "url": "https://testingurl.dev/assets/placeholder-product.svg" }]
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "422": {
            "description": "Unable to connect to the target website.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 422,
                  "message": "UNABLE_TO_CONNECT",
                  "details": "The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely."
                }
              }
            }
          },
          "500": {
            "description": "Crawling failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 500,
                  "message": "CRAWL_FAILED",
                  "details": "Our crawling service encountered an error while attempting to fetch data from the specified URL."
                }
              }
            }
          }
        },
        "summary": "Scrape a webpage with custom options",
        "tags": ["api-tool"]
      }
    },
    "/dnsrecord": {
      "post": {
        "description": "Look up A, AAAA, CNAME, MX, CAA, NS, SOA, SRV, and TXT records for any domain. Query every supported type in one call, or pass `types` to fetch only the ones you need.",
        "operationId": "dnsRecord",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DnsRecordDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved DNS records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecordResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "500": {
            "description": "DNS lookup failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 500,
                  "message": "DNS_LOOKUP_FAILED",
                  "details": "DNS lookup failed for the requested domain."
                }
              }
            }
          }
        },
        "summary": "Retrieve DNS records for a given domain",
        "tags": ["api-tool"]
      }
    },
    "/screenshot": {
      "post": {
        "description": "Capture a pixel-perfect screenshot of any URL as PNG, JPEG, or WebP. Supports full-page capture, device emulation, custom viewports, and CAPTCHA/cookie-banner bypass.",
        "operationId": "screenshot",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenshotDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully captured screenshot",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScreenshotResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "422": {
            "description": "Unable to connect to the target website.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 422,
                  "message": "UNABLE_TO_CONNECT",
                  "details": "The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely."
                }
              }
            }
          },
          "500": {
            "description": "Screenshot generation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 500,
                  "message": "SCREENSHOT_FAILED",
                  "details": "Failed to process the request during browser automation."
                }
              }
            }
          }
        },
        "summary": "Capture a full-page screenshot of a website",
        "tags": ["api-tool"]
      }
    },
    "/up": {
      "post": {
        "description": "Check whether a website is reachable and returns a successful HTTP response. Ideal for uptime monitoring and pre-flight checks before running other tests.",
        "operationId": "siteStatus",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SiteStatusDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Site status retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SiteStatusResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "429": {
            "description": "Too many redirects.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 429,
                  "message": "TOO_MANY_REDIRECTS",
                  "details": "Exceeded the maximum number of redirects while checking the target website."
                }
              }
            }
          },
          "500": {
            "description": "Site status check failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 500,
                  "message": "SITE_STATUS_FAILED",
                  "details": "Failed to determine the availability or status of the target website."
                }
              }
            }
          }
        },
        "summary": "Check if a site is up or down",
        "tags": ["api-tool"]
      }
    },
    "/redirectcheck": {
      "post": {
        "description": "Trace the full redirect chain of a URL, including every intermediate hop, status code, and the final destination. Useful for auditing SEO redirects and link rot.",
        "operationId": "redirectCheck",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RedirectCheckDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved redirect chain",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RedirectCheckResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "429": {
            "description": "Too many redirects.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 429,
                  "message": "TOO_MANY_REDIRECTS",
                  "details": "Exceeded the maximum number of redirects while resolving the target URL."
                }
              }
            }
          },
          "500": {
            "description": "Redirect check failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 500,
                  "message": "REDIRECT_CHECK_FAILED",
                  "details": "Unable to determine the redirect chain for the target URL."
                }
              }
            }
          }
        },
        "summary": "Check the redirection chain of a given URL",
        "tags": ["api-tool"]
      }
    },
    "/brokenlink": {
      "post": {
        "description": "Scan a webpage for broken links and report which URLs return errors, so you can fix dead links before they hurt SEO or user experience.",
        "operationId": "brokenLink",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BrokenLinkDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully checked for broken links",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrokenLinkResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "422": {
            "description": "Unable to connect to the target website.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 422,
                  "message": "UNABLE_TO_CONNECT",
                  "details": "The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely."
                }
              }
            }
          }
        },
        "summary": "Check if a webpage contains broken links",
        "tags": ["api-tool"]
      }
    },
    "/url2pdf": {
      "post": {
        "description": "Convert any URL into a downloadable PDF document, with control over page orientation, margins, and scale. Useful for archiving pages or generating reports.",
        "operationId": "url2Pdf",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Url2PdfDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully captured Url2Pdf",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Url2PdfResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "422": {
            "description": "Unable to connect to the target website.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 422,
                  "message": "UNABLE_TO_CONNECT",
                  "details": "The destination server could not be resolved, refused the connection, timed out, or is redirecting indefinitely."
                }
              }
            }
          },
          "500": {
            "description": "PDF conversion failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 500,
                  "message": "PDF_CONVERSION_FAILED",
                  "details": "Our PDF conversion service encountered an error while fetching the target URL."
                }
              }
            }
          }
        },
        "summary": "Capture a full-page Url2Pdf of a website",
        "tags": ["api-tool"]
      }
    },
    "/openport": {
      "post": {
        "description": "Scan a domain or IP for open TCP ports, either across the top N most common ports or a custom range you specify. Useful for surface-level network security audits and exposure checks.",
        "operationId": "openPorts",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpenPortDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Open ports retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpenPortResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 400,
                  "message": "INVALID_URL",
                  "details": "The URL must be a valid HTTP or HTTPS URL."
                }
              }
            }
          },
          "408": {
            "description": "Port scan timed out.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 408,
                  "message": "NMAP_TIMEOUT",
                  "details": "The port scan timed out before it could complete."
                }
              }
            }
          },
          "500": {
            "description": "Port scan failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseErrorResponseDto"
                },
                "example": {
                  "timestamp": 1700000000000,
                  "apiStatus": "failure",
                  "apiCode": 500,
                  "message": "PORT_SCAN_FAILED",
                  "details": "Our port scanning service encountered an unexpected error while attempting to scan the target."
                }
              }
            }
          }
        },
        "summary": "Scan a website for open ports",
        "tags": ["api-tool"]
      }
    },
    "/tlsscan": {
      "post": {
        "description": "Inspect a domain's TLS/SSL configuration, including which protocol versions are supported (from the deprecated and insecure SSLv2/SSLv3 through TLS 1.3) and certificate details, to catch expiring certificates and outdated, insecure configurations.",
        "operationId": "tlsScan",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TlsScanDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully retrieved TLS scan information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TlsScanResponseDto"
                },
           

# --- truncated at 32 KB (195 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/geekflare/refs/heads/main/openapi/geekflare-openapi.json