{
  "openapi": "3.1.0",
  "info": {
    "title": "ATS Jobs API",
    "version": "1.2.0",
    "x-guidance": "Pay per call with x402 (USDC on Base) at the /x402/v1/ paths: read a web page as markdown, pull named fields from a page as JSON, check an email address, find a company's job board, list its open jobs, or get the day's job changes. The same tools at /v1/ have a small free tier and also take an API key.",
    "description": "Open job postings read first-hand from the applicant-tracking system behind a company's careers page: Greenhouse, Ashby, Lever or Workable. Includes a directory of 8532 company job boards, because none of the vendors publishes one. Salaries are parsed into numbers where the employer publishes them and refused where ambiguous. No personal data."
  },
  "servers": [
    {
      "url": "https://companyfacts.dev"
    }
  ],
  "paths": {
    "/v1/companies": {
      "get": {
        "operationId": "searchCompanies",
        "summary": "Find which system a company's job board runs on",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Company name or board name. Case and punctuation ignored."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Matching boards"
          },
          "400": {
            "description": "q was missing"
          }
        },
        "security": []
      }
    },
    "/v1/jobs": {
      "get": {
        "operationId": "listJobs",
        "summary": "Every open job at one company",
        "parameters": [
          {
            "name": "company",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Board name ('stripe'), careers URL, or system:name ('ashby:ramp')."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000,
              "default": 50
            }
          },
          {
            "name": "include_description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Open postings"
          },
          "404": {
            "description": "No such board on any supported system"
          }
        },
        "security": []
      }
    },
    "/v1/changes": {
      "get": {
        "operationId": "jobChanges",
        "summary": "Jobs opened, closed, reopened or changed, day by day",
        "description": "Read daily from every board in the directory. Call it every day with since set to the last day you saw to get only what changed.",
        "parameters": [
          {
            "name": "companies",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated company or board names, up to 50. Omit for every company."
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "First day, YYYY-MM-DD. Default: the latest published day."
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "kinds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated: new, removed, reopened, changed, board_gone."
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only jobs whose title contains this."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Changes, newest day first"
          },
          "400": {
            "description": "A malformed date, kind or company list"
          }
        },
        "security": []
      }
    },
    "/v1/read": {
      "get": {
        "operationId": "readPage",
        "summary": "Any public web page or PDF as clean markdown",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The page, starting http:// or https://."
          },
          {
            "name": "max_chars",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 500,
              "maximum": 200000,
              "default": 50000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page as markdown, with its title"
          },
          "402": {
            "description": "Payment required (x402); see the PAYMENT-REQUIRED header"
          },
          "422": {
            "description": "The page has no readable text (often a bot check); not charged"
          },
          "502": {
            "description": "The page could not be fetched; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/extract": {
      "get": {
        "operationId": "extractPage",
        "summary": "Structured JSON from any web page, values only from the page text. Paid only.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The page, starting http:// or https://."
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated field names to fill, e.g. name,price,currency."
          },
          {
            "name": "schema",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "A JSON Schema (type object) to fill instead of fields."
          },
          {
            "name": "instructions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Up to 500 characters on what to extract."
          }
        ],
        "responses": {
          "200": {
            "description": "The filled fields"
          },
          "402": {
            "description": "Payment required: a key or x402"
          }
        },
        "security": []
      }
    },
    "/v1/email-check": {
      "get": {
        "operationId": "checkEmail",
        "summary": "Syntax, mail servers, disposable, role and free-provider flags for an email address",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The address to check."
          }
        ],
        "responses": {
          "200": {
            "description": "The verdict and the evidence for it"
          }
        },
        "security": []
      }
    },
    "/health": {
      "get": {
        "operationId": "health",
        "summary": "Liveness",
        "responses": {
          "200": {
            "description": "ok"
          }
        },
        "security": []
      }
    },
    "/v1/domain": {
      "get": {
        "operationId": "domainLookup",
        "summary": "Look up a domain (registration, DNS, email provider)",
        "description": "For one domain: whether it is registered, its registrar, created, updated and expiry dates, status codes and nameservers (from the registry's RDAP server), plus its A, AAAA, MX, NS and TXT records, the email provider behind its MX, and whether it publishes SPF and DMARC. No registrant names or contact details are returned.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A domain, URL or email address; the registered domain is used.",
            "example": "stripe.com"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/tech-stack": {
      "get": {
        "operationId": "detectTechStack",
        "summary": "Detect a website's tech stack",
        "description": "Fetch one web page and report the technologies behind it (CMS, ecommerce platform, analytics, CDN, web server, frameworks, payment processors, email provider) with a confidence and the evidence for each. Reads HTML, headers, cookies and DNS from one page load; it cannot see what only a running browser reveals.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A domain or a full web address to analyze.",
            "example": "shopify.com"
          },
          {
            "name": "min_confidence",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Hide detections below this confidence, 0 to 100. Default 50.",
            "example": "50"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/vat": {
      "get": {
        "operationId": "validateVat",
        "summary": "Validate an EU VAT number",
        "description": "Checks one VAT number against the European Commission's VIES service and returns whether it is a live registration and, where the member state shares it, the registered name. Covers the 27 EU states and Northern Ireland (XI). A busy or down member state is reported as an error, never as an invalid number.",
        "parameters": [
          {
            "name": "vat",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "VAT number starting with its two-letter country code. Spaces, dots and hyphens are ignored; GR is read as EL.",
            "example": "CZ00177041"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/company-registry": {
      "get": {
        "operationId": "searchCompanyRegistry",
        "summary": "Search an official company registry",
        "description": "Searches one country's official company register by name and returns registered companies in one consistent shape: number, legal name, status, legal form, dates, town and postcode, and a link to the register entry. Covers GB, NO, FR, FI, CZ, SK, IE, AU, the worldwide LEI register, and US entities in any state that hold an LEI (with their state filing number). Companies only, no directors or contact details.",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Company name to search for.",
            "example": "Equinor"
          },
          {
            "name": "country",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Register to search: gb, no, fr, fi, cz, sk, ie, au, us, or global for the LEI register.",
            "example": "no"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "With country us only: the US state the entity was formed in, two letters (de, ny, tx). Default: any state.",
            "example": "de"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Most companies to return, 1 to 100. Default 20.",
            "example": "10"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/papers": {
      "get": {
        "operationId": "searchPapers",
        "summary": "Search academic papers",
        "description": "Search the OpenAlex catalogue of scholarly papers by keyword, look papers up by DOI, list the papers that cite one work, or list a university's or journal's papers. Returns title, authors, year, citation count, DOI, abstract and a free full-text link when one exists.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search (default when query is given), doi (default when dois is given), cited_by, institution or source"
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keywords, for example graph neural networks. Double quotes match a phrase. Required for search; narrows institution and source results",
            "example": "retrieval augmented generation"
          },
          {
            "name": "dois",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "doi mode: up to 25 DOIs or OpenAlex ids, separated by commas",
            "example": "10.1038/nature14539"
          },
          {
            "name": "cited_work",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "cited_by mode: a DOI or OpenAlex id; returns the papers that cite it"
          },
          {
            "name": "institution",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "institution mode: a name, a ROR id or an OpenAlex id; the best name match is used and echoed in matched_entity"
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "source mode: a journal name, an ISSN or an OpenAlex id"
          },
          {
            "name": "from_year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only papers published this year or later"
          },
          {
            "name": "to_year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only papers published this year or earlier"
          },
          {
            "name": "min_citations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only papers cited at least this many times"
          },
          {
            "name": "open_access_only",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true to keep only papers with a free full text"
          },
          {
            "name": "exclude_retracted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true to drop retracted papers"
          },
          {
            "name": "work_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma separated: article, preprint, review, book, book-chapter, dissertation, dataset, report, letter, editorial, standard, other"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "relevance (needs query), citations, newest or oldest"
          },
          {
            "name": "search_scope",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "title_and_abstract (default) or full_text"
          },
          {
            "name": "max_results",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "How many papers, 1 to 50 (default 10)"
          },
          {
            "name": "include_abstract",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "false to leave abstracts out (default true)"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/hacker-news": {
      "get": {
        "operationId": "searchHackerNews",
        "summary": "Search Hacker News",
        "description": "Search Hacker News stories and comments with date, points and comment-count filters, read the live front page and the top, best, new, ask and show lists in rank order, or read whole comment threads. Every item links back to news.ycombinator.com.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search (default), front_page, top, best, new, ask, show or story_comments"
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: keywords. Empty matches everything the filters allow",
            "example": "sqlite"
          },
          {
            "name": "content_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: stories (default), comments or both"
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: relevance (default) or date (newest first)"
          },
          {
            "name": "search_in",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: all (default), title, url or text"
          },
          {
            "name": "story_tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "any (default), show_hn, ask_hn or poll"
          },
          {
            "name": "date_from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only items from this day on (UTC), YYYY-MM-DD",
            "example": "2024-01-01"
          },
          {
            "name": "date_to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only items up to the end of this day (UTC), YYYY-MM-DD"
          },
          {
            "name": "min_points",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Stories with at least this many points"
          },
          {
            "name": "min_comments",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Stories with at least this many comments"
          },
          {
            "name": "max_items",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "How many items, 1 to 50 (default 20; 50 for story_comments; front_page stops at 30)"
          },
          {
            "name": "story_ids",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "story_comments mode: up to 5 item ids or news.ycombinator.com links, separated by commas",
            "example": "8863"
          },
          {
            "name": "include_story",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "story_comments mode: false to leave the story itself out (default true)"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/sec-financials": {
      "get": {
        "operationId": "secFinancials",
        "summary": "SEC financials and screener",
        "description": "Reads US public company financials from SEC EDGAR XBRL. Company mode returns one company's reported history of a metric (revenue, net income, assets and 20 more, or any us-gaap tag) by ticker or CIK. Screen mode ranks every filer on one metric for one calendar period. Every figure carries period_type and a link to its filing. Reports figures, not advice.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "screen ranks all companies for one period; company gives one company's history. Defaults to company when company is set, else screen."
          },
          {
            "name": "metric",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "A name such as revenue, net_income, gross_profit, operating_income, rd_expense, sga_expense, interest_expense, income_tax, or a raw us-gaap tag like Revenues. Default revenue.",
            "example": "net_income"
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Company mode: ticker or CIK number.",
            "example": "AAPL"
          },
          {
            "name": "period",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Screen mode: CY2023 or CY2023Q1 (calendar year, optional quarter). Default CY2024.",
            "example": "CY2023"
          },
          {
            "name": "period_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keep only quarterly, half_year, nine_month, annual or instant figures. Default any."
          },
          {
            "name": "min_value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Lowest value to keep. Negatives are legal."
          },
          {
            "name": "max_value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Highest value to keep."
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "desc by default: largest value first in screen mode, newest period first in company mode."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Records to return, 1 to 100. Default 50."
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/hiring-summary": {
      "get": {
        "operationId": "hiringSummary",
        "summary": "Summarise a company's hiring",
        "description": "One company's hiring at a glance: open roles counted by department and by location, remote share, salary ranges per currency where the job board publishes pay, and which roles opened or closed in the last 7 or 30 days from a daily record of every board. Reads the company's live Greenhouse, Ashby, Lever or Workable board. Give a company name, board name or careers URL.",
        "parameters": [
          {
            "name": "company",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Company or board name (e.g. stripe), or a careers URL on Greenhouse, Ashby, Lever or Workable.",
            "example": "stripe"
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Change window: 7 or 30 days. Default 30.",
            "example": "30"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/federal-contracts": {
      "get": {
        "operationId": "federalContracts",
        "summary": "Federal contract awards and recompetes",
        "description": "Searches awarded US federal contracts on USAspending.gov by agency, keyword and dollar amount, largest first. Recompete mode instead lists contracts expiring soonest within a window (set min_amount to keep the search narrow), with the incumbent and days until expiry. Every record links to the official award page.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search lists awards, largest first; recompete lists contracts about to expire, soonest first. Defaults to recompete when an expiring_ field is set."
          },
          {
            "name": "keyword",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Free text across award descriptions and recipient names. Up to 500 characters.",
            "example": "cybersecurity"
          },
          {
            "name": "agency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Awarding top-tier agency name. Several names separated by a semicolon.",
            "example": "Department of Defense"
          },
          {
            "name": "min_amount",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only awards at or above this many dollars. Recompete mode usually needs this, or an agency or keyword, to be narrow enough.",
            "example": "5000000"
          },
          {
            "name": "expiring_within_days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recompete mode: contracts ending within this many days, 1 to 1825. Default 365.",
            "example": "365"
          },
          {
            "name": "expiring_after_days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recompete mode: skip contracts ending sooner than this, for bid lead time. Default 0.",
            "example": "90"
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD, awards with activity from this date. Default 2024-10-01 (the past year in recompete mode). Not before 2007-10-01."
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD. Default today."
          },
          {
            "name": "award_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Codes separated by commas, from one group (contracts A,B,C,D by default; 02 to 11 are grants and loans)."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Awards to return, 1 to 100. Default 25."
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/app-store": {
      "get": {
        "operationId": "appStoreLookup",
        "summary": "Look up Apple App Store apps",
        "description": "Search the Apple App Store, look apps up by id or bundle id, read customer reviews, or get the top free, paid and grossing charts, per country. Returns name, developer, price, rating, rating count, version, genres and the App Store link.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search, lookup, reviews or top_charts. Defaults to search when term is given, lookup when ids or bundle_id is given, top_charts when chart is given"
          },
          {
            "name": "term",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: keywords",
            "example": "meditation"
          },
          {
            "name": "ids",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "lookup and reviews: App Store ids (or apps.apple.com links), up to 50 for lookup, comma separated",
            "example": "310633997"
          },
          {
            "name": "bundle_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "lookup and reviews: bundle ids such as net.whatsapp.WhatsApp, up to 5 for lookup"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Two letter App Store storefront code (default us)",
            "example": "us"
          },
          {
            "name": "max_results",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "How many results, 1 to 50 (search 10, charts 25, reviews 50 by default)"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "reviews: page of 50 reviews, 1 to 10 (default 1)"
          },
          {
            "name": "review_sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "reviews: mostrecent (default) or mosthelpful"
          },
          {
            "name": "chart",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "top_charts: top-free (default), top-paid or top-grossing"
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "top_charts: all (default) or a category such as games, finance, productivity, health-and-fitness"
          },
          {
            "name": "include_description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true to add the description and release notes to app records"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/company": {
      "get": {
        "operationId": "companyLookup",
        "summary": "Everything public about a company",
        "description": "One company in one call, from its domain: registrar, DNS and email provider, the website's tech stack, and hiring from its own job board (open roles by department and place, salary ranges, roles opened or closed lately). Add name and country for the official register entry, or ticker for SEC figures. Each part links to its source; a part with nothing to report says why.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The company's website domain, URL or an email address at it.",
            "example": "stripe.com"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Company name. Improves the hiring match, and with country adds the official register entry.",
            "example": "Stripe"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Register for the name: gb, no, fr, fi, cz, sk, ie, au, us (US entities with an LEI, any state), or global (LEI). Needs name."
          },
          {
            "name": "ticker",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Stock ticker or SEC CIK, to add reported revenue from SEC filings."
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/company-contacts": {
      "get": {
        "operationId": "companyContacts",
        "summary": "How to reach a company, from its own site",
        "description": "Reads a company's own website (home, contact, about, team and careers pages, robots.txt honored) and returns what it published: phone numbers, role inboxes such as sales@ and info@, the contact page, its postal address, and its other addresses (people, departments, locations) exactly as published, US companies only. Every item links to the page it came from. Emails are never guessed.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The company's website domain, URL or an email address at it.",
            "example": "wpengine.com"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/new-businesses": {
      "get": {
        "operationId": "newBusinesses",
        "summary": "Newly formed US businesses and state register lookup",
        "description": "Searches the official Secretary of State business registers of New York, Colorado, Oregon, Connecticut and Pennsylvania, in one record format. mode new is a feed of entities formed in a date window, newest first: use it for new-business leads (LLCs and corporations that just registered) and prospecting. mode search finds entities by legal name and mode lookup by the state's own entity number: use them for KYB (know your business) checks on a supplier or counterparty, to confirm it exists, its type, status (active, delinquent, inactive) and formation date. Every record links to the state's own data row. Never returns officers, directors, individual registered agents, emails, phones or street addresses: business city, state and ZIP only. Each record carries the company's website when one was found with proof (its own pages show the exact legal name and the same city or state), else 'no website found'. New York, Oregon and Pennsylvania publish active entities only, so a missing entity there may be inactive or unregistered. Pennsylvania publishes monthly, so its newest entities are weeks old. If one state fails the others still return and the failure is listed in missing.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "new lists entities formed between since and until, newest first (the default). search finds entities whose legal name contains name. lookup fetches entities by entity_numbers."
          },
          {
            "name": "states",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Registers to read: any of NY, CO, OR, CT, PA, comma separated (an array also works). Default all five.",
            "example": "NY,CO"
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Earliest formation date, YYYY-MM-DD. In mode new it defaults to 7 days ago. In other modes it applies only when given.",
            "example": "2026-10-23"
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Latest formation date, YYYY-MM-DD, inclusive. In mode new it defaults to today.",
            "example": "2026-10-30"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Part of a legal business name, not case sensitive. Required for mode search; in mode new it narrows the feed.",
            "example": "bakery"
          },
          {
            "name": "entity_numbers",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The state's own entity numbers, digits only, comma separated, up to 200. Required for mode lookup. Numbers are not unique across states, so pick the state too.",
            "example": "20268272035"
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keep only one kind of entity: llc, corporation (for profit), nonprofit or partnership. Default any."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keep only active, active_or_delinquent or inactive entities. Default any. New York, Oregon and Pennsylvania are skipped for inactive."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Most entities to return across all states, newest first, 1 to 200. Default 50.",
            "example": "20"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/company-changes": {
      "get": {
        "operationId": "companyChanges",
        "summary": "What changed at a company, and when",
        "description": "The change feed for one company, from our own records: roles opened and closed day by day (daily job-board history), phones, role inboxes, contact page and address added, removed or changed on its own site, technologies added or dropped, and its status in the NY, CO, OR, CT or PA register. Give domain, company name, or state with entity_number. Each change has its day and a source link. The first call starts tracking a company; a call with no history is not charged.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The company's website domain, URL or an email address at it: contacts, tech, and hiring by name.",
            "example": "stripe.com"
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The company's name, to match its job board for hiring. Defaults to the domain's first label.",
            "example": "Stripe"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The register for entity_number: NY, CO, OR, CT or PA.",
            "example": "CO"
          },
          {
            "name": "entity_number",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The state's own entity number, digits only, with state.",
            "example": "20268147148"
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "First day, YYYY-MM-DD. Default 30 days before until.",
            "example": "2026-10-01"
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Last day, YYYY-MM-DD, inclusive. Default today.",
            "example": "2026-11-30"
          },
          {
            "name": "parts",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Which changes: any of hiring, contacts, tech, register, comma separated. Default all.",
            "example": "hiring,tech"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Most changes to return, newest first, 1 to 200. Default 100.",
            "example": "50"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/company-search": {
      "get": {
        "operationId": "companySearch",
        "summary": "Search the companies we track",
        "description": "Finds companies across everything we track: newly formed New York, Colorado, Oregon, Connecticut and Pennsylvania businesses with a website found with proof, and every FDIC-insured bank in any state. Filter by state, source, city, name, formation date, technology on their site (for example Shopify or WordPress), whether they publish a phone, role inbox or contact page, and hiring. Returns register details, website, technologies and job board, newest first. No match is never charged.",
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Two-letter US state codes, comma separated.",
            "example": "CO"
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Where the company came from: state_register (new businesses) or fdic (banks), comma separated.",
            "example": "state_register"
          },
          {
            "name": "city",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "City as the register gives it, not case sensitive.",
            "example": "Denver"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Part of the legal name.",
            "example": "plumbing"
          },
          {
            "name": "tech",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Technology names on the home page, comma separated; all must be present.",
            "example": "WordPress"
          },
          {
            "name": "formed_since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Formed on or after, YYYY-MM-DD.",
            "example": "2026-10-01"
          },
          {
            "name": "formed_until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Formed on or before, YYYY-MM-DD.",
            "example": "2026-10-30"
          },
          {
            "name": "has",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keep companies whose site publishes these: any of phone, role_email, contact_page.",
            "example": "phone"
          },
          {
            "name": "hiring",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true for companies with open roles on a job board we read, false for none.",
            "example": "true"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Companies per page, 1 to 100. Default 25.",
            "example": "25"
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Skip this many, for the next page.",
            "example": "0"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/ai-ml-jobs": {
      "get": {
        "operationId": "aiMlJobs",
        "summary": "AI and machine learning jobs",
        "description": "AI and machine learning jobs: every open machine learning, AI, LLM, computer vision, NLP and MLOps roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/cybersecurity-jobs": {
      "get": {
        "operationId": "cybersecurityJobs",
        "summary": "Cybersecurity jobs",
        "description": "Cybersecurity jobs: every open security engineering, analyst, AppSec, SOC, threat detection, incident response, GRC and CISO roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/devops-sre-jobs": {
      "get": {
        "operationId": "devopsSreJobs",
        "summary": "DevOps, SRE and cloud infrastructure jobs",
        "description": "DevOps, SRE and cloud infrastructure jobs: every open DevOps, site reliability, platform, cloud and infrastructure engineering roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/data-jobs": {
      "get": {
        "operationId": "dataJobs",
        "summary": "Data engineering, analytics and data science jobs",
        "description": "Data engineering, analytics and data science jobs: every open data engineer, analytics engineer, data analyst, data scientist, BI and data architect roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/sales-jobs": {
      "get": {
        "operationId": "salesJobs",
        "summary": "Sales jobs (AE, SDR, BDR, sales leadership)",
        "description": "Sales jobs (AE, SDR, BDR, sales leadership): every open account executive, SDR, BDR, account manager, sales engineer and sales leadership roles, a signal of which companies are growing their sales teams across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/it-support-jobs": {
      "get": {
        "operationId": "itSupportJobs",
        "summary": "IT support, helpdesk and systems administration jobs",
        "description": "IT support, helpdesk and systems administration jobs: every open IT support, helpdesk, service desk, desktop support, systems and network administration and IT management roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/accounting-finance-jobs": {
      "get": {
        "operationId": "accountingFinanceJobs",
        "summary": "Accounting and finance jobs",
        "description": "Accounting and finance jobs: every open accountant, controller, CPA, tax, audit, AP and AR, payroll, FP&A and finance leadership roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/construction-engineering-jobs": {
      "get": {
        "operationId": "constructionEngineeringJobs",
        "summary": "Construction and engineering jobs (civil, structural, MEP, mechanical, electrical)",
        "description": "Construction and engineering jobs (civil, structural, MEP, mechanical, electrical): every open construction, superintendent, estimator, civil, structural, MEP, mechanical, electrical and project engineering roles and the trades across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/healthcare-jobs": {
      "get": {
        "operationId": "healthcareJobs",
        "summary": "Healthcare and clinical jobs",
        "description": "Healthcare and clinical jobs: every open nursing, physician, nurse practitioner, therapist, pharmacy, dental, behavioral health and other clinical roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/new-businesses-new-york": {
      "get": {
        "operationId": "newBusinessesNewYork",
        "summary": "New businesses formed in New York",
        "description": "Every company, LLC, partnership and nonprofit formed in New York in the last 30 days, from the state's own open business register, newest first, 500 a page. Each has legal name, entity number, type, status, formation date, principal city, state and ZIP, a registered agent when it is a company, and a link to verify it on the state's record. No personal names or street addresses.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/new-businesses-colorado": {
      "get": {
        "operationId": "newBusinessesColorado",
        "summary": "New businesses formed in Colorado",
        "description": "Every company, LLC, partnership and nonprofit formed in Colorado in the last 30 days, from the state's own open business register, newest first, 500 a page. Each has legal name, entity number, type, status, formation date, principal city, state and ZIP, a registered agent when it is a company, and a link to verify it on the state's record. No personal names or street addresses.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/new-businesses-oregon": {
      "get": {
        "operationId": "newBusinessesOregon",
        "summary": "New businesses formed in Oregon",
        "description": "Every company, LLC, partnership and nonprofit formed in Oregon in the last 30 days, from the state's own open business register, newest first, 500 a page. Each has legal name, entity number, type, status, formation date, principal city, state and ZIP, a registered agent when it is a company, and a link to verify it on the state's record. No personal names or street addresses.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/new-businesses-connecticut": {
      "get": {
        "operationId": "newBusinessesConnecticut",
        "summary": "New businesses formed in Connecticut",
        "description": "Every company, LLC, partnership and nonprofit formed in Connecticut in the last 30 days, from the state's own open business register, newest first, 500 a page. Each has legal name, entity number, type, status, formation date, principal city, state and ZIP, a registered agent when it is a company, and a link to verify it on the state's record. No personal names or street addresses.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/new-federal-contracts": {
      "get": {
        "operationId": "newFederalContracts",
        "summary": "New federal contract awards over $1M",
        "description": "Every new US federal contract award of $1 million or more made in the last 30 days, from USAspending.gov, largest first, 500 a page. Each has the award id, the company that won it, amount, awarding agency and sub-agency, start and end dates, what it is for, and a link to the official award page.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/v1/remote-jobs-with-salary": {
      "get": {
        "operationId": "remoteJobsWithSalary",
        "summary": "Remote jobs with published salary",
        "description": "Remote jobs with published salary: every open remote roles of every kind whose job board publishes the pay range across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": []
      }
    },
    "/x402/v1/companies": {
      "get": {
        "operationId": "searchCompaniesX402",
        "summary": "Find which system a company's job board runs on (pay per call, x402)",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Company name or board name. Case and punctuation ignored."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Matching boards"
          },
          "400": {
            "description": "q was missing"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/jobs": {
      "get": {
        "operationId": "listJobsX402",
        "summary": "Every open job at one company (pay per call, x402)",
        "parameters": [
          {
            "name": "company",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Board name ('stripe'), careers URL, or system:name ('ashby:ramp')."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000,
              "default": 50
            }
          },
          {
            "name": "include_description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Open postings"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "404": {
            "description": "No such board on any supported system"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/changes": {
      "get": {
        "operationId": "jobChangesX402",
        "summary": "Jobs opened, closed, reopened or changed, day by day (pay per call, x402)",
        "description": "Read daily from every board in the directory. Call it every day with since set to the last day you saw to get only what changed.",
        "parameters": [
          {
            "name": "companies",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated company or board names, up to 50. Omit for every company."
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "First day, YYYY-MM-DD. Default: the latest published day."
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "kinds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated: new, removed, reopened, changed, board_gone."
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only jobs whose title contains this."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Changes, newest day first"
          },
          "400": {
            "description": "A malformed date, kind or company list"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/read": {
      "get": {
        "operationId": "readPageX402",
        "summary": "Any public web page or PDF as clean markdown (pay per call, x402)",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The page, starting http:// or https://."
          },
          {
            "name": "max_chars",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 500,
              "maximum": 200000,
              "default": 50000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The page as markdown, with its title"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "422": {
            "description": "The page has no readable text (often a bot check); not charged"
          },
          "502": {
            "description": "The page could not be fetched; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001500"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/email-check": {
      "get": {
        "operationId": "checkEmailX402",
        "summary": "Syntax, mail servers, disposable, role and free-provider flags for an email address (pay per call, x402)",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The address to check."
          }
        ],
        "responses": {
          "200": {
            "description": "The verdict and the evidence for it"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/extract": {
      "get": {
        "operationId": "extractPageX402",
        "summary": "Structured JSON from any web page, values only from the page text. Paid only. (pay per call, x402)",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The page, starting http:// or https://."
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated field names to fill, e.g. name,price,currency."
          },
          {
            "name": "schema",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "A JSON Schema (type object) to fill instead of fields."
          },
          {
            "name": "instructions",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Up to 500 characters on what to extract."
          }
        ],
        "responses": {
          "200": {
            "description": "The filled fields"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/domain": {
      "get": {
        "operationId": "domainLookupX402",
        "summary": "Look up a domain (registration, DNS, email provider) (pay per call, x402)",
        "description": "For one domain: whether it is registered, its registrar, created, updated and expiry dates, status codes and nameservers (from the registry's RDAP server), plus its A, AAAA, MX, NS and TXT records, the email provider behind its MX, and whether it publishes SPF and DMARC. No registrant names or contact details are returned.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A domain, URL or email address; the registered domain is used.",
            "example": "stripe.com"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/tech-stack": {
      "get": {
        "operationId": "detectTechStackX402",
        "summary": "Detect a website's tech stack (pay per call, x402)",
        "description": "Fetch one web page and report the technologies behind it (CMS, ecommerce platform, analytics, CDN, web server, frameworks, payment processors, email provider) with a confidence and the evidence for each. Reads HTML, headers, cookies and DNS from one page load; it cannot see what only a running browser reveals.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "A domain or a full web address to analyze.",
            "example": "shopify.com"
          },
          {
            "name": "min_confidence",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Hide detections below this confidence, 0 to 100. Default 50.",
            "example": "50"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/vat": {
      "get": {
        "operationId": "validateVatX402",
        "summary": "Validate an EU VAT number (pay per call, x402)",
        "description": "Checks one VAT number against the European Commission's VIES service and returns whether it is a live registration and, where the member state shares it, the registered name. Covers the 27 EU states and Northern Ireland (XI). A busy or down member state is reported as an error, never as an invalid number.",
        "parameters": [
          {
            "name": "vat",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "VAT number starting with its two-letter country code. Spaces, dots and hyphens are ignored; GR is read as EL.",
            "example": "CZ00177041"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/company-registry": {
      "get": {
        "operationId": "searchCompanyRegistryX402",
        "summary": "Search an official company registry (pay per call, x402)",
        "description": "Searches one country's official company register by name and returns registered companies in one consistent shape: number, legal name, status, legal form, dates, town and postcode, and a link to the register entry. Covers GB, NO, FR, FI, CZ, SK, IE, AU, the worldwide LEI register, and US entities in any state that hold an LEI (with their state filing number). Companies only, no directors or contact details.",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Company name to search for.",
            "example": "Equinor"
          },
          {
            "name": "country",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Register to search: gb, no, fr, fi, cz, sk, ie, au, us, or global for the LEI register.",
            "example": "no"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "With country us only: the US state the entity was formed in, two letters (de, ny, tx). Default: any state.",
            "example": "de"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Most companies to return, 1 to 100. Default 20.",
            "example": "10"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/papers": {
      "get": {
        "operationId": "searchPapersX402",
        "summary": "Search academic papers (pay per call, x402)",
        "description": "Search the OpenAlex catalogue of scholarly papers by keyword, look papers up by DOI, list the papers that cite one work, or list a university's or journal's papers. Returns title, authors, year, citation count, DOI, abstract and a free full-text link when one exists.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search (default when query is given), doi (default when dois is given), cited_by, institution or source"
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keywords, for example graph neural networks. Double quotes match a phrase. Required for search; narrows institution and source results",
            "example": "retrieval augmented generation"
          },
          {
            "name": "dois",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "doi mode: up to 25 DOIs or OpenAlex ids, separated by commas",
            "example": "10.1038/nature14539"
          },
          {
            "name": "cited_work",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "cited_by mode: a DOI or OpenAlex id; returns the papers that cite it"
          },
          {
            "name": "institution",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "institution mode: a name, a ROR id or an OpenAlex id; the best name match is used and echoed in matched_entity"
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "source mode: a journal name, an ISSN or an OpenAlex id"
          },
          {
            "name": "from_year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only papers published this year or later"
          },
          {
            "name": "to_year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only papers published this year or earlier"
          },
          {
            "name": "min_citations",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only papers cited at least this many times"
          },
          {
            "name": "open_access_only",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true to keep only papers with a free full text"
          },
          {
            "name": "exclude_retracted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true to drop retracted papers"
          },
          {
            "name": "work_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma separated: article, preprint, review, book, book-chapter, dissertation, dataset, report, letter, editorial, standard, other"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "relevance (needs query), citations, newest or oldest"
          },
          {
            "name": "search_scope",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "title_and_abstract (default) or full_text"
          },
          {
            "name": "max_results",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "How many papers, 1 to 50 (default 10)"
          },
          {
            "name": "include_abstract",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "false to leave abstracts out (default true)"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/hacker-news": {
      "get": {
        "operationId": "searchHackerNewsX402",
        "summary": "Search Hacker News (pay per call, x402)",
        "description": "Search Hacker News stories and comments with date, points and comment-count filters, read the live front page and the top, best, new, ask and show lists in rank order, or read whole comment threads. Every item links back to news.ycombinator.com.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search (default), front_page, top, best, new, ask, show or story_comments"
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: keywords. Empty matches everything the filters allow",
            "example": "sqlite"
          },
          {
            "name": "content_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: stories (default), comments or both"
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: relevance (default) or date (newest first)"
          },
          {
            "name": "search_in",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: all (default), title, url or text"
          },
          {
            "name": "story_tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "any (default), show_hn, ask_hn or poll"
          },
          {
            "name": "date_from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only items from this day on (UTC), YYYY-MM-DD",
            "example": "2024-01-01"
          },
          {
            "name": "date_to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only items up to the end of this day (UTC), YYYY-MM-DD"
          },
          {
            "name": "min_points",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Stories with at least this many points"
          },
          {
            "name": "min_comments",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Stories with at least this many comments"
          },
          {
            "name": "max_items",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "How many items, 1 to 50 (default 20; 50 for story_comments; front_page stops at 30)"
          },
          {
            "name": "story_ids",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "story_comments mode: up to 5 item ids or news.ycombinator.com links, separated by commas",
            "example": "8863"
          },
          {
            "name": "include_story",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "story_comments mode: false to leave the story itself out (default true)"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.001000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/sec-financials": {
      "get": {
        "operationId": "secFinancialsX402",
        "summary": "SEC financials and screener (pay per call, x402)",
        "description": "Reads US public company financials from SEC EDGAR XBRL. Company mode returns one company's reported history of a metric (revenue, net income, assets and 20 more, or any us-gaap tag) by ticker or CIK. Screen mode ranks every filer on one metric for one calendar period. Every figure carries period_type and a link to its filing. Reports figures, not advice.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "screen ranks all companies for one period; company gives one company's history. Defaults to company when company is set, else screen."
          },
          {
            "name": "metric",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "A name such as revenue, net_income, gross_profit, operating_income, rd_expense, sga_expense, interest_expense, income_tax, or a raw us-gaap tag like Revenues. Default revenue.",
            "example": "net_income"
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Company mode: ticker or CIK number.",
            "example": "AAPL"
          },
          {
            "name": "period",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Screen mode: CY2023 or CY2023Q1 (calendar year, optional quarter). Default CY2024.",
            "example": "CY2023"
          },
          {
            "name": "period_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keep only quarterly, half_year, nine_month, annual or instant figures. Default any."
          },
          {
            "name": "min_value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Lowest value to keep. Negatives are legal."
          },
          {
            "name": "max_value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Highest value to keep."
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "desc by default: largest value first in screen mode, newest period first in company mode."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Records to return, 1 to 100. Default 50."
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/hiring-summary": {
      "get": {
        "operationId": "hiringSummaryX402",
        "summary": "Summarise a company's hiring (pay per call, x402)",
        "description": "One company's hiring at a glance: open roles counted by department and by location, remote share, salary ranges per currency where the job board publishes pay, and which roles opened or closed in the last 7 or 30 days from a daily record of every board. Reads the company's live Greenhouse, Ashby, Lever or Workable board. Give a company name, board name or careers URL.",
        "parameters": [
          {
            "name": "company",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Company or board name (e.g. stripe), or a careers URL on Greenhouse, Ashby, Lever or Workable.",
            "example": "stripe"
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Change window: 7 or 30 days. Default 30.",
            "example": "30"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.005000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/federal-contracts": {
      "get": {
        "operationId": "federalContractsX402",
        "summary": "Federal contract awards and recompetes (pay per call, x402)",
        "description": "Searches awarded US federal contracts on USAspending.gov by agency, keyword and dollar amount, largest first. Recompete mode instead lists contracts expiring soonest within a window (set min_amount to keep the search narrow), with the incumbent and days until expiry. Every record links to the official award page.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search lists awards, largest first; recompete lists contracts about to expire, soonest first. Defaults to recompete when an expiring_ field is set."
          },
          {
            "name": "keyword",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Free text across award descriptions and recipient names. Up to 500 characters.",
            "example": "cybersecurity"
          },
          {
            "name": "agency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Awarding top-tier agency name. Several names separated by a semicolon.",
            "example": "Department of Defense"
          },
          {
            "name": "min_amount",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Only awards at or above this many dollars. Recompete mode usually needs this, or an agency or keyword, to be narrow enough.",
            "example": "5000000"
          },
          {
            "name": "expiring_within_days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recompete mode: contracts ending within this many days, 1 to 1825. Default 365.",
            "example": "365"
          },
          {
            "name": "expiring_after_days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recompete mode: skip contracts ending sooner than this, for bid lead time. Default 0.",
            "example": "90"
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD, awards with activity from this date. Default 2024-10-01 (the past year in recompete mode). Not before 2007-10-01."
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "YYYY-MM-DD. Default today."
          },
          {
            "name": "award_types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Codes separated by commas, from one group (contracts A,B,C,D by default; 02 to 11 are grants and loans)."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Awards to return, 1 to 100. Default 25."
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.003000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/app-store": {
      "get": {
        "operationId": "appStoreLookupX402",
        "summary": "Look up Apple App Store apps (pay per call, x402)",
        "description": "Search the Apple App Store, look apps up by id or bundle id, read customer reviews, or get the top free, paid and grossing charts, per country. Returns name, developer, price, rating, rating count, version, genres and the App Store link.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search, lookup, reviews or top_charts. Defaults to search when term is given, lookup when ids or bundle_id is given, top_charts when chart is given"
          },
          {
            "name": "term",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "search mode: keywords",
            "example": "meditation"
          },
          {
            "name": "ids",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "lookup and reviews: App Store ids (or apps.apple.com links), up to 50 for lookup, comma separated",
            "example": "310633997"
          },
          {
            "name": "bundle_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "lookup and reviews: bundle ids such as net.whatsapp.WhatsApp, up to 5 for lookup"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Two letter App Store storefront code (default us)",
            "example": "us"
          },
          {
            "name": "max_results",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "How many results, 1 to 50 (search 10, charts 25, reviews 50 by default)"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "reviews: page of 50 reviews, 1 to 10 (default 1)"
          },
          {
            "name": "review_sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "reviews: mostrecent (default) or mosthelpful"
          },
          {
            "name": "chart",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "top_charts: top-free (default), top-paid or top-grossing"
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "top_charts: all (default) or a category such as games, finance, productivity, health-and-fitness"
          },
          {
            "name": "include_description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true to add the description and release notes to app records"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.002000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/company": {
      "get": {
        "operationId": "companyLookupX402",
        "summary": "Everything public about a company (pay per call, x402)",
        "description": "One company in one call, from its domain: registrar, DNS and email provider, the website's tech stack, and hiring from its own job board (open roles by department and place, salary ranges, roles opened or closed lately). Add name and country for the official register entry, or ticker for SEC figures. Each part links to its source; a part with nothing to report says why.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The company's website domain, URL or an email address at it.",
            "example": "stripe.com"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Company name. Improves the hiring match, and with country adds the official register entry.",
            "example": "Stripe"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Register for the name: gb, no, fr, fi, cz, sk, ie, au, us (US entities with an LEI, any state), or global (LEI). Needs name."
          },
          {
            "name": "ticker",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Stock ticker or SEC CIK, to add reported revenue from SEC filings."
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/company-contacts": {
      "get": {
        "operationId": "companyContactsX402",
        "summary": "How to reach a company, from its own site (pay per call, x402)",
        "description": "Reads a company's own website (home, contact, about, team and careers pages, robots.txt honored) and returns what it published: phone numbers, role inboxes such as sales@ and info@, the contact page, its postal address, and its other addresses (people, departments, locations) exactly as published, US companies only. Every item links to the page it came from. Emails are never guessed.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The company's website domain, URL or an email address at it.",
            "example": "wpengine.com"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.020000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/new-businesses": {
      "get": {
        "operationId": "newBusinessesX402",
        "summary": "Newly formed US businesses and state register lookup (pay per call, x402)",
        "description": "Searches the official Secretary of State business registers of New York, Colorado, Oregon, Connecticut and Pennsylvania, in one record format. mode new is a feed of entities formed in a date window, newest first: use it for new-business leads (LLCs and corporations that just registered) and prospecting. mode search finds entities by legal name and mode lookup by the state's own entity number: use them for KYB (know your business) checks on a supplier or counterparty, to confirm it exists, its type, status (active, delinquent, inactive) and formation date. Every record links to the state's own data row. Never returns officers, directors, individual registered agents, emails, phones or street addresses: business city, state and ZIP only. Each record carries the company's website when one was found with proof (its own pages show the exact legal name and the same city or state), else 'no website found'. New York, Oregon and Pennsylvania publish active entities only, so a missing entity there may be inactive or unregistered. Pennsylvania publishes monthly, so its newest entities are weeks old. If one state fails the others still return and the failure is listed in missing.",
        "parameters": [
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "new lists entities formed between since and until, newest first (the default). search finds entities whose legal name contains name. lookup fetches entities by entity_numbers."
          },
          {
            "name": "states",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Registers to read: any of NY, CO, OR, CT, PA, comma separated (an array also works). Default all five.",
            "example": "NY,CO"
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Earliest formation date, YYYY-MM-DD. In mode new it defaults to 7 days ago. In other modes it applies only when given.",
            "example": "2026-10-23"
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Latest formation date, YYYY-MM-DD, inclusive. In mode new it defaults to today.",
            "example": "2026-10-30"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Part of a legal business name, not case sensitive. Required for mode search; in mode new it narrows the feed.",
            "example": "bakery"
          },
          {
            "name": "entity_numbers",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The state's own entity numbers, digits only, comma separated, up to 200. Required for mode lookup. Numbers are not unique across states, so pick the state too.",
            "example": "20268272035"
          },
          {
            "name": "entity_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keep only one kind of entity: llc, corporation (for profit), nonprofit or partnership. Default any."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keep only active, active_or_delinquent or inactive entities. Default any. New York, Oregon and Pennsylvania are skipped for inactive."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Most entities to return across all states, newest first, 1 to 200. Default 50.",
            "example": "20"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/company-changes": {
      "get": {
        "operationId": "companyChangesX402",
        "summary": "What changed at a company, and when (pay per call, x402)",
        "description": "The change feed for one company, from our own records: roles opened and closed day by day (daily job-board history), phones, role inboxes, contact page and address added, removed or changed on its own site, technologies added or dropped, and its status in the NY, CO, OR, CT or PA register. Give domain, company name, or state with entity_number. Each change has its day and a source link. The first call starts tracking a company; a call with no history is not charged.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The company's website domain, URL or an email address at it: contacts, tech, and hiring by name.",
            "example": "stripe.com"
          },
          {
            "name": "company",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The company's name, to match its job board for hiring. Defaults to the domain's first label.",
            "example": "Stripe"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The register for entity_number: NY, CO, OR, CT or PA.",
            "example": "CO"
          },
          {
            "name": "entity_number",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "The state's own entity number, digits only, with state.",
            "example": "20268147148"
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "First day, YYYY-MM-DD. Default 30 days before until.",
            "example": "2026-10-01"
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Last day, YYYY-MM-DD, inclusive. Default today.",
            "example": "2026-11-30"
          },
          {
            "name": "parts",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Which changes: any of hiring, contacts, tech, register, comma separated. Default all.",
            "example": "hiring,tech"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Most changes to return, newest first, 1 to 200. Default 100.",
            "example": "50"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/company-search": {
      "get": {
        "operationId": "companySearchX402",
        "summary": "Search the companies we track (pay per call, x402)",
        "description": "Finds companies across everything we track: newly formed New York, Colorado, Oregon, Connecticut and Pennsylvania businesses with a website found with proof, and every FDIC-insured bank in any state. Filter by state, source, city, name, formation date, technology on their site (for example Shopify or WordPress), whether they publish a phone, role inbox or contact page, and hiring. Returns register details, website, technologies and job board, newest first. No match is never charged.",
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Two-letter US state codes, comma separated.",
            "example": "CO"
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Where the company came from: state_register (new businesses) or fdic (banks), comma separated.",
            "example": "state_register"
          },
          {
            "name": "city",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "City as the register gives it, not case sensitive.",
            "example": "Denver"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Part of the legal name.",
            "example": "plumbing"
          },
          {
            "name": "tech",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Technology names on the home page, comma separated; all must be present.",
            "example": "WordPress"
          },
          {
            "name": "formed_since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Formed on or after, YYYY-MM-DD.",
            "example": "2026-10-01"
          },
          {
            "name": "formed_until",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Formed on or before, YYYY-MM-DD.",
            "example": "2026-10-30"
          },
          {
            "name": "has",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Keep companies whose site publishes these: any of phone, role_email, contact_page.",
            "example": "phone"
          },
          {
            "name": "hiring",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true for companies with open roles on a job board we read, false for none.",
            "example": "true"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Companies per page, 1 to 100. Default 25.",
            "example": "25"
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Skip this many, for the next page.",
            "example": "0"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/ai-ml-jobs": {
      "get": {
        "operationId": "aiMlJobsX402",
        "summary": "AI and machine learning jobs (pay per call, x402)",
        "description": "AI and machine learning jobs: every open machine learning, AI, LLM, computer vision, NLP and MLOps roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/cybersecurity-jobs": {
      "get": {
        "operationId": "cybersecurityJobsX402",
        "summary": "Cybersecurity jobs (pay per call, x402)",
        "description": "Cybersecurity jobs: every open security engineering, analyst, AppSec, SOC, threat detection, incident response, GRC and CISO roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/devops-sre-jobs": {
      "get": {
        "operationId": "devopsSreJobsX402",
        "summary": "DevOps, SRE and cloud infrastructure jobs (pay per call, x402)",
        "description": "DevOps, SRE and cloud infrastructure jobs: every open DevOps, site reliability, platform, cloud and infrastructure engineering roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/data-jobs": {
      "get": {
        "operationId": "dataJobsX402",
        "summary": "Data engineering, analytics and data science jobs (pay per call, x402)",
        "description": "Data engineering, analytics and data science jobs: every open data engineer, analytics engineer, data analyst, data scientist, BI and data architect roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/sales-jobs": {
      "get": {
        "operationId": "salesJobsX402",
        "summary": "Sales jobs (AE, SDR, BDR, sales leadership) (pay per call, x402)",
        "description": "Sales jobs (AE, SDR, BDR, sales leadership): every open account executive, SDR, BDR, account manager, sales engineer and sales leadership roles, a signal of which companies are growing their sales teams across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/it-support-jobs": {
      "get": {
        "operationId": "itSupportJobsX402",
        "summary": "IT support, helpdesk and systems administration jobs (pay per call, x402)",
        "description": "IT support, helpdesk and systems administration jobs: every open IT support, helpdesk, service desk, desktop support, systems and network administration and IT management roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/accounting-finance-jobs": {
      "get": {
        "operationId": "accountingFinanceJobsX402",
        "summary": "Accounting and finance jobs (pay per call, x402)",
        "description": "Accounting and finance jobs: every open accountant, controller, CPA, tax, audit, AP and AR, payroll, FP&A and finance leadership roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/construction-engineering-jobs": {
      "get": {
        "operationId": "constructionEngineeringJobsX402",
        "summary": "Construction and engineering jobs (civil, structural, MEP, mechanical, electrical) (pay per call, x402)",
        "description": "Construction and engineering jobs (civil, structural, MEP, mechanical, electrical): every open construction, superintendent, estimator, civil, structural, MEP, mechanical, electrical and project engineering roles and the trades across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/healthcare-jobs": {
      "get": {
        "operationId": "healthcareJobsX402",
        "summary": "Healthcare and clinical jobs (pay per call, x402)",
        "description": "Healthcare and clinical jobs: every open nursing, physician, nurse practitioner, therapist, pharmacy, dental, behavioral health and other clinical roles across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/new-businesses-new-york": {
      "get": {
        "operationId": "newBusinessesNewYorkX402",
        "summary": "New businesses formed in New York (pay per call, x402)",
        "description": "Every company, LLC, partnership and nonprofit formed in New York in the last 30 days, from the state's own open business register, newest first, 500 a page. Each has legal name, entity number, type, status, formation date, principal city, state and ZIP, a registered agent when it is a company, and a link to verify it on the state's record. No personal names or street addresses.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/new-businesses-colorado": {
      "get": {
        "operationId": "newBusinessesColoradoX402",
        "summary": "New businesses formed in Colorado (pay per call, x402)",
        "description": "Every company, LLC, partnership and nonprofit formed in Colorado in the last 30 days, from the state's own open business register, newest first, 500 a page. Each has legal name, entity number, type, status, formation date, principal city, state and ZIP, a registered agent when it is a company, and a link to verify it on the state's record. No personal names or street addresses.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/new-businesses-oregon": {
      "get": {
        "operationId": "newBusinessesOregonX402",
        "summary": "New businesses formed in Oregon (pay per call, x402)",
        "description": "Every company, LLC, partnership and nonprofit formed in Oregon in the last 30 days, from the state's own open business register, newest first, 500 a page. Each has legal name, entity number, type, status, formation date, principal city, state and ZIP, a registered agent when it is a company, and a link to verify it on the state's record. No personal names or street addresses.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/new-businesses-connecticut": {
      "get": {
        "operationId": "newBusinessesConnecticutX402",
        "summary": "New businesses formed in Connecticut (pay per call, x402)",
        "description": "Every company, LLC, partnership and nonprofit formed in Connecticut in the last 30 days, from the state's own open business register, newest first, 500 a page. Each has legal name, entity number, type, status, formation date, principal city, state and ZIP, a registered agent when it is a company, and a link to verify it on the state's record. No personal names or street addresses.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/new-federal-contracts": {
      "get": {
        "operationId": "newFederalContractsX402",
        "summary": "New federal contract awards over $1M (pay per call, x402)",
        "description": "Every new US federal contract award of $1 million or more made in the last 30 days, from USAspending.gov, largest first, 500 a page. Each has the award id, the company that won it, amount, awarding agency and sub-agency, start and end dates, what it is for, and a link to the official award page.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    },
    "/x402/v1/remote-jobs-with-salary": {
      "get": {
        "operationId": "remoteJobsWithSalaryX402",
        "summary": "Remote jobs with published salary (pay per call, x402)",
        "description": "Remote jobs with published salary: every open remote roles of every kind whose job board publishes the pay range across about 8,500 companies, read daily from their own job boards (Greenhouse, Ashby, Lever and Workable). Newest first, 500 a page, each with company, title, location, department, pay where the board publishes it, posting date and the link to apply.",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Page number from 1; 500 a page. The answer says how many pages exist.",
            "example": "1"
          }
        ],
        "responses": {
          "200": {
            "description": "The result"
          },
          "400": {
            "description": "Missing or malformed input; not charged"
          },
          "402": {
            "description": "Payment required (x402); the PAYMENT-REQUIRED header says what to pay"
          },
          "502": {
            "description": "The upstream source failed; not charged"
          }
        },
        "security": [],
        "x-payment-info": {
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.010000"
          },
          "protocols": [
            {
              "x402": {}
            }
          ]
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearer": {
        "type": "http",
        "scheme": "bearer",
        "description": "Optional. Without a key you get 10 requests a day and 25 jobs per request. A key is $10 once for 2,000 calls that never expire (https://buy.stripe.com/dRm7sM04G4iManHeO51Jm00) or $49 a month for 20,000 calls a month, refilled each billing month, cancel any time (https://buy.stripe.com/9B6aEYg3EbLe8fz35n1Jm01)."
      }
    }
  }
}