ReefAPI Utilities & AI API

The Utilities & AI API from ReefAPI — 163 operation(s) for utilities & ai.

Operations 163

POST /agent-source/v1/source_url Inspect a public URL for source-reliability: reachability, canonical + full… #
POST /agent-source/v1/official_source Resolve the OFFICIAL URL a curated provider publishes for a given need… #
POST /agent-source/v1/verify_claim Check whether one or more public source URLs support a factual claim — returns… #
POST /agent-source/v1/pricing_lookup Current developer/LLM pricing for a curated provider, parsed live from the… #
POST /agent-source/v1/pricing_compare Compare current pricing across several curated providers (optionally filtered… #
POST /agent-source/v1/providers List the curated provider whitelist + each provider's capabilities (which… #
POST /barcode/v1/lookup Barcode → one merged product: title/brand/category/image/description +… #
POST /barcode/v1/batch Up to 20 barcodes in one call → array of merged products (input order… #
POST /barcode/v1/by_brand All products for a brand/manufacturer → product cards with pagination. #
POST /barcode/v1/by_prefix GS1 company-prefix (partial-barcode) search → products whose barcode starts… #
POST /barcode/v1/by_mpn Manufacturer-Part-Number / model lookup → products with that MPN/model… #
POST /barcode/v1/validate Validate + decode a barcode WITHOUT a network call: mod-10 check digit, GTIN… #
POST /domain-availability/v1/check Is one domain available? #
POST /domain-availability/v1/bulk_check One NAME across many TLDs → availability map (which of name.com/.io/.ai/… are… #
POST /domain-availability/v1/rdap Full WHOIS via RDAP for a registered domain (registrar, created/expires… #
POST /domain-availability/v1/suggest Name variations (prefix/suffix/TLD permutations, deterministic — no LLM) each… #
POST /domain-availability/v1/batch Many DIFFERENT full domains in one call → availability for each (bulk check) #
POST /domain-intel/v1/whois Domain registration (WHOIS) via RDAP: registrar (+ IANA id), reseller, status… #
POST /domain-intel/v1/dns DNS records over DNS-over-HTTPS: A/AAAA/MX/TXT/NS/CNAME/SOA/CAA by default… #
POST /domain-intel/v1/reverse_dns Reverse DNS (PTR): the hostname each of the domain's A/AAAA IPs resolves back… #
POST /domain-intel/v1/hosting Hosting / ASN / IP-owner: resolves the domain's A+AAAA IPs and looks up each… #
POST /domain-intel/v1/dnssec DNSSEC signing status: the DoH AD (Authenticated-Data) flag (the resolver… #
POST /domain-intel/v1/ssl_certs SSL/TLS certificates from Certificate Transparency (CT) logs (certspotter… #
POST /domain-intel/v1/subdomains Subdomain discovery via Certificate-Transparency-log cert SANs (the standard… #
POST /domain-intel/v1/availability Domain registration availability via RDAP (registered ⇔ an RDAP record exists). #
POST /domain-intel/v1/tld_list The IANA list of all delegated top-level domains (optionally substring-filtered) #
POST /domain-intel/v1/tld_detail Per-TLD metadata: ccTLD vs gTLD and its IANA RDAP server(s) (or a note that it… #
POST /domain-intel/v1/tech_detect Tech-stack fingerprint from the homepage response headers + HTML: web server… #
POST /domain-intel/v1/full_report One-call merge: whois + dns + dnssec + ssl_certs + subdomains (and optionally… #
POST /enrich-company/v1/company_domain domain → entity-resolved company profile (core groups) with per-field provenance #
POST /enrich-company/v1/company_domain_rich everything in company_domain + firmographics (LinkedIn/Indeed/Glassdoor)… #
POST /enrich-company/v1/batch enrich up to 10 domains in one call (core groups, cache-first, per-domain… #
POST /enrich-url/v1/classify Any URL → final_url, cleaned_url (tracking stripped), domain… #
POST /enrich-url/v1/extract_entity Any URL → a lightweight entity card with title, image, description, price… #
POST /enrich-url/v1/batch Classify up to 20 URLs in one call (the link-list cleanup + routing use-case)… #
POST /enrich-url/v1/catalog_resolve META (no network): given a known platform name OR a URL's host, return which… #
POST /file-convert/v1/pdf_extract_text Extract text from a PDF (per page). #
POST /file-convert/v1/pdf_metadata PDF document properties: title/author/dates/producer, page count & size… #
POST /file-convert/v1/pdf_merge Merge 2-20 PDFs into one (input order preserved). #
POST /file-convert/v1/pdf_split Split a PDF: pages='2-5,8' extracts those pages into one PDF; chunk_size=N… #
POST /file-convert/v1/pdf_rotate Rotate pages clockwise by 90/180/270° (all pages or a range). #
POST /file-convert/v1/pdf_to_images Render PDF pages to PNG/JPG/WebP (pypdfium2). #
POST /file-convert/v1/images_to_pdf Combine 1-20 images into a single PDF (one page per image; page_size=a4/letter… #
POST /file-convert/v1/pdf_watermark Stamp a text or image watermark over pages (true alpha overlay; diagonal or… #
POST /file-convert/v1/pdf_fill_form AcroForm filling. #
POST /file-convert/v1/pdf_redact TRUE redaction: target pages are re-rendered with the matches blacked out and… #
POST /file-convert/v1/pdf_compress Shrink a PDF: stream recompression + embedded-image re-encode… #
POST /file-convert/v1/pdf_protect Encrypt a PDF with AES-256 (user password to open; optional owner password). #
POST /file-convert/v1/pdf_unlock Remove encryption from a PDF — REQUIRES the correct password (we never crack or… #
POST /file-convert/v1/pdf_repair Best-effort structural repair (broken xref/trailer/stream lengths) via a… #
POST /file-convert/v1/image_convert Convert between raster formats (jpg/png/webp/tiff/bmp/gif/avif; animated… #
POST /file-convert/v1/image_resize Resize with fit=contain (aspect kept, fits inside box) / cover (fills+crops) /… #
POST /file-convert/v1/image_optimize Smart perceptual compression (TinyPNG-style): binary-searches the lowest… #
POST /file-convert/v1/image_thumbnail Fast thumbnail (16-2048px box; square=true centre-crops to a square). #
POST /file-convert/v1/image_metadata Read image facts + EXIF (+GPS) — and with strip=true return a copy with ALL… #
POST /file-convert/v1/image_rotate Rotate (90/180/270 clockwise) and/or flip (horizontal/vertical). #
POST /file-convert/v1/image_crop Crop a pixel box (x, y from top-left + width × height). #
POST /file-convert/v1/doc_to_markdown Document → clean markdown for RAG/agents. #
POST /file-convert/v1/extract_tables Pull every table out of a PDF / xlsx / docx / html as JSON rows (+optional CSV… #
POST /file-convert/v1/ocr_image OCR an image → text + word count + confidence (tesseract 5, printed text… #
POST /file-convert/v1/ocr_pdf OCR a scanned PDF: output=text → per-page text+confidence… #
POST /file-convert/v1/office_convert Office → PDF (and html/txt; spreadsheets also → csv; text docs also → docx) via… #
POST /file-convert/v1/audio_extract Extract the audio track from a video (mp4/webm/mkv/avi) → mp3 (default) / m4a /… #
POST /file-convert/v1/audio_convert Convert between audio formats (mp3/wav/flac/ogg/m4a in →… #
POST /file-convert/v1/media_probe ffprobe metadata for any audio/video file: container, duration, bitrate… #
POST /file-convert/v1/data_convert Deterministic data-format conversion: CSV ↔ JSON ↔ XML ↔ YAML ↔ Excel(xlsx)… #
POST /file-convert/v1/formats Capability matrix: every action with its accepted input formats, targets and… #
POST /fitness/v1/exercises Browse or search the full exercise library (800+ exercises from wger.de). #
POST /fitness/v1/by_bodypart All exercises targeting a specific body part — e.g. #
POST /fitness/v1/by_equipment All exercises that use a specific piece of equipment — e.g. #
POST /fitness/v1/by_target All exercises that target a specific muscle — e.g. #
POST /fitness/v1/exercise_detail Full detail for a single exercise by its id — name, body part, primary and… #
POST /fitness/v1/bodypart_list List all available body part categories (e.g. #
POST /fitness/v1/equipment_list List all available equipment types (e.g. #
POST /fitness/v1/target_list List all available target muscles (e.g. #
POST /geo-intel/v1/check Full AI-readiness report for a URL: AI-crawler access map + llms.txt + schema +… #
POST /geo-intel/v1/crawlers AI-crawler access map from robots.txt: per-bot allow/block (Google… #
POST /geo-intel/v1/llms_txt Detect + parse + validate /llms.txt (and /llms-full.txt) — the emerging… #
POST /geo-intel/v1/schema Extract and classify schema.org structured data (JSON-LD and @graph) for AI… #
POST /geo-intel/v1/score Composite AI-readiness score (0-100) + transparent per-pillar breakdown… #
POST /geo-intel/v1/batch Score up to 20 sites concurrently in one call (each independently SSRF-guarded). #
POST /geo-postal/v1/eu_regions Coordinates OR postal code → EU/EFTA/candidate statistical regions: country… #
POST /geo-postal/v1/tr_regions Türkiye: koordinat, posta kodu VEYA il/ilçe/mahalle adı → resmî idari hiyerarşi… #
POST /geo-postal/v1/in_postal India: PIN code OR post-office name → post offices, district, state, lat/lon… #
POST /geo-postal/v1/us_regions United States: ZIP code OR coordinates → state, county + 5-digit county FIPS… #
POST /geo-postal/v1/us_census United States census-grade geocode: street ADDRESS, ZIP, or coordinates →… #
POST /geo-postal/v1/admin_boundary GLOBAL coordinates → administrative boundary hierarchy ADM0/ADM1/ADM2… #
POST /geo-postal/v1/postal_lookup country + postal code → region metadata for ~100 countries (GeoNames postal… #
POST /geo-postal/v1/postal_distance Great-circle distance between two postal codes (same or different countries) #
POST /geo-postal/v1/postal_radius All postal codes within a radius of a postal code (centroid-based) #
POST /geo-postal/v1/batch Resolve up to 50 mixed lookups in one call (cheap local queries) #
POST /holidays/v1/holidays public holidays for a country + year (full Nager fields + derived… #
POST /holidays/v1/is_workday is a given date a working day for a country? #
POST /holidays/v1/workday_count business-day count over a date range: workdays/weekend_days/holiday_days + the… #
POST /holidays/v1/next_holidays upcoming public holidays (next ~365 days) with daysUntil #
POST /holidays/v1/long_weekends long-weekend windows for a country + year (+ bridge-day suggestions) #
POST /holidays/v1/countries the supported country set (code → name) #
POST /ip-geolocation/v1/lookup geolocate ONE IPv4/IPv6 → country/region/city/lat-lon/timezone/ASN/ISP/org +… #
POST /ip-geolocation/v1/batch geolocate up to 100 IPs in one call #
POST /phone-validate/v1/validate validate ONE number → validity + format/region/line-type/carrier/timezone/locati… #
POST /phone-validate/v1/batch validate up to 100 numbers in one call (shared default region) #
POST /recall/v1/recall_detail Full detail for one recall by its FDA recall_number (category auto-detected… #
POST /recall/v1/by_company All recalls for a recalling firm / manufacturer, newest first, paginated #
POST /recall/v1/latest Most recent recalls across all categories (or one), within the last N days #
POST /recall/v1/batch Run multiple keyword searches in one call (compliance-watch over a product list) #
POST /recall/v1/stats Aggregate recall counts grouped by a field… #
POST /recall/v1/categories The recall taxonomy: FDA categories + EU Safety Gate product-category &… #
POST /recall/v1/eu_recall One EU Safety Gate (RAPEX) recall/alert by notification id — product, risk… #
POST /recall/v1/eu_recalls Search/list EU Safety Gate alerts (the EU analogue of `search`): pages over… #
POST /recall/v1/eu_latest The newest EU Safety Gate weekly report fully expanded into its ~80-100 product… #
POST /translate/v1/translate Translate text into a single target language. #
POST /translate/v1/translate_multi Translate the SAME text into MANY target languages in a single call — the… #
POST /translate/v1/translate_batch Translate MANY strings into ONE target language in a single call — built for… #
POST /translate/v1/detect Detect the language of a piece of text. #
POST /translate/v1/dictionary Word-level dictionary lookup: translate a word/short phrase and get its… #
POST /translate/v1/languages List all supported languages (code → English name). #
POST /translate/v1/speak Text-to-speech: turn text into spoken audio (MP3). #
POST /url-resolver/v1/resolve Follow the redirect chain to the final URL (hop-by-hop, every status observable) #
POST /url-resolver/v1/normalize Resolve then strip tracking params (utm_*/fbclid/gclid…) → canonical URL #
POST /url-resolver/v1/detect_affiliate Detect the affiliate network/params/merchant across the whole redirect chain… #
POST /url-resolver/v1/product_hint Identify marketplace + product-id + the ReefAPI engine that can fetch the… #
POST /url-resolver/v1/preview Link unfurl: OpenGraph + Twitter-card title/description/image/favicon… #
POST /url-resolver/v1/safety Heuristic URL-risk flags (ip-host, non-https, punycode, userinfo, high-abuse… #
POST /url-resolver/v1/full One call: resolve + normalize + detect_affiliate + product_hint + preview +… #
POST /url-resolver/v1/batch Resolve up to 50 URLs concurrently in one call — each URL is validated and… #
POST /validate/v1/vat Validate an EU VAT number via VIES → validity + registered company name &… #
POST /validate/v1/iban Validate + parse an IBAN offline (ISO 13616 mod-97) → country, BBAN… #
POST /validate/v1/email Validate an email: syntax + live MX + disposable-domain + role-account flags #
POST /validate/v1/batch Validate up to 100 mixed items ({type:vat|iban|email,value}) in one call #
POST /vehicle/v1/vin_decode decode a VIN → make/model/year/trim/engine/specs (vPIC) #
POST /vehicle/v1/vin_decode_batch decode up to 50 VINs in one call (vPIC batch) #
POST /vehicle/v1/vin_decode_flat per-variable VIN decode — one row per NHTSA variable with its label (the… #
POST /vehicle/v1/fuel_economy EPA fuel economy — MPG/MPGe (city/highway/combined), CO2, annual fuel cost, EV… #
POST /vehicle/v1/fuel_economy_options list EPA trims (each → an id for fuel_economy) for a year+make+model #
POST /vehicle/v1/fuel_prices current US national average fuel prices (regular/midgrade/premium/diesel/e85/ele… #
POST /vehicle/v1/canadian_specs dimensional & weight specs (length, width, height, wheelbase, curb weight… #
POST /vehicle/v1/recalls safety recalls by make+model+modelYear, or by campaignNumber #
POST /vehicle/v1/safety_ratings NCAP star ratings + crash-test media; by vehicleId, or year+make+model… #
POST /vehicle/v1/complaints consumer complaints by make+model+modelYear #
POST /vehicle/v1/models models for a make (optionally a modelYear / vehicleType) #
POST /vehicle/v1/makes all makes, or makes for a vehicleType (car/truck/mpv/motorcycle/...) #
POST /vehicle/v1/manufacturers all manufacturers (paged) or details for one #
POST /vehicle/v1/wmi_decode decode a 3-char WMI to its manufacturer #
POST /vehicle/v1/manufacturer_wmis all WMIs registered to a manufacturer #
POST /vehicle/v1/vehicle_types vehicle types produced by a make #
POST /vehicle/v1/product_options recall/complaint enumeration tree (modelYears → makes → models; issueType=r|c) #
POST /vehicle/v1/plant_codes equipment (tire) plant codes for a year #
POST /weather-intel/v1/environment_current premium combined snapshot: current weather + AQ + active alerts + nearby… #
POST /weather-intel/v1/forecast global point forecast (MET Norway, ~9 days): hourly steps + daily aggregates… #
POST /weather-intel/v1/air_quality nearest-station air quality (OpenAQ v3): pollutants + computed AQI-US/EAQI-EU +… #
POST /weather-intel/v1/alerts official severe-weather warnings by country/US-state or coordinate: EU… #
POST /weather-intel/v1/hazards_nearby GDACS multi-hazard events (earthquake/cyclone/flood/volcano/wildfire/drought)… #
POST /weather-intel/v1/disasters global GDACS disaster events with type/alert-level/date/bbox filters, or a… #
POST /weather-intel/v1/earthquakes USGS earthquake catalog (earthquake.usgs.gov, public domain): filter by… #
POST /weather-intel/v1/natural_events NASA EONET natural-event catalog (eonet.gsfc.nasa.gov, NASA open data)… #
POST /weather-intel/v1/fires Live wildfire and thermal-anomaly hotspots from NASA FIRMS… #
POST /weather-intel/v1/geocode Place name → coordinates (Open-Meteo Geocoding, GeoNames-backed, free/keyless)… #
POST /weather-intel/v1/historical Historical weather (Open-Meteo Archive / ERA5 reanalysis, 1940→present… #
POST /weather-intel/v1/marine Marine / ocean-wave forecast (Open-Meteo Marine, free/keyless) for a… #
POST /weather-intel/v1/air_quality_forecast Air-quality FORECAST + pollen (Open-Meteo Air-Quality, CAMS-backed… #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

reefapi-utilities-ai-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reef Utilities & AI API
  version: 1.0.0
  description: Unified data-API gateway. Call POST /{engine}/v1/{action} with an x-api-key header; every response is the { ok, data, meta, error } envelope.
servers:
- url: https://api.reefapi.com
security:
- ApiKeyAuth: []
tags:
- name: Utilities & AI
paths:
  /agent-source/v1/source_url:
    post:
      operationId: agent_source_source_url
      summary: 'Inspect a public URL for source-reliability: reachability, canonical + full…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                check_archive:
                  type: string
                official_for:
                  type: string
              required:
              - url
            example:
              url: https://openai.com/api/pricing/
              official_for: openai
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /agent-source/v1/official_source:
    post:
      operationId: agent_source_official_source
      summary: Resolve the OFFICIAL URL a curated provider publishes for a given need…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                entity:
                  type: string
                need_type:
                  type: string
                verify:
                  type: string
              required:
              - entity
            example:
              entity: OpenAI
              need_type: pricing
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /agent-source/v1/verify_claim:
    post:
      operationId: agent_source_verify_claim
      summary: Check whether one or more public source URLs support a factual claim — returns…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                claim:
                  type: string
                url:
                  type: string
                urls:
                  type: string
              required:
              - claim
              - url
            example:
              claim: Claude Opus 4.5 costs $5 per million input tokens
              url: https://docs.claude.com/en/docs/about-claude/pricing
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /agent-source/v1/pricing_lookup:
    post:
      operationId: agent_source_pricing_lookup
      summary: Current developer/LLM pricing for a curated provider, parsed live from the…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                provider:
                  type: string
                model:
                  type: string
                limit:
                  type: string
              required:
              - provider
            example:
              provider: openrouter
              model: claude
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /agent-source/v1/pricing_compare:
    post:
      operationId: agent_source_pricing_compare
      summary: Compare current pricing across several curated providers (optionally filtered…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                providers:
                  type: string
                model:
                  type: string
              required:
              - providers
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /agent-source/v1/providers:
    post:
      operationId: agent_source_providers
      summary: List the curated provider whitelist + each provider's capabilities (which…
      tags:
      - Utilities & AI
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                provider:
                  type: string
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /barcode/v1/lookup:
    post:
      operationId: barcode_lookup
      summary: 'Barcode → one merged product: title/brand/category/image/description +…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                barcode:
                  type: string
                source:
                  type: string
                off_db:
                  type: string
                deep_weight:
                  type: string
              required:
              - barcode
            example:
              barcode: '5449000000996'
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /barcode/v1/batch:
    post:
      operationId: barcode_batch
      summary: Up to 20 barcodes in one call → array of merged products (input order…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                barcodes:
                  type: string
                source:
                  type: string
                off_db:
                  type: string
                deep_weight:
                  type: string
              required:
              - barcodes
            example:
              barcodes: 5449000000996,0885909950805
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /barcode/v1/search:
    post:
      operationId: barcode_search
      summary: Free-text product-name search across the open databases → product cards with…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                category:
                  type: string
                off_db:
                  type: string
                source:
                  type: string
                page:
                  type: string
                page_size:
                  type: string
              required:
              - query
            example:
              query: nutella
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /barcode/v1/by_brand:
    post:
      operationId: barcode_by_brand
      summary: All products for a brand/manufacturer → product cards with pagination.
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                brand:
                  type: string
                category:
                  type: string
                off_db:
                  type: string
                page:
                  type: string
                page_size:
                  type: string
              required:
              - brand
            example:
              brand: coca-cola
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /barcode/v1/by_prefix:
    post:
      operationId: barcode_by_prefix
      summary: GS1 company-prefix (partial-barcode) search → products whose barcode starts…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                prefix:
                  type: string
                off_db:
                  type: string
                page:
                  type: string
                page_size:
                  type: string
              required:
              - prefix
            example:
              prefix: '5449000'
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /barcode/v1/by_mpn:
    post:
      operationId: barcode_by_mpn
      summary: Manufacturer-Part-Number / model lookup → products with that MPN/model…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                mpn:
                  type: string
                page:
                  type: string
                page_size:
                  type: string
              required:
              - mpn
            example:
              mpn: 910-005565
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /barcode/v1/validate:
    post:
      operationId: barcode_validate
      summary: 'Validate + decode a barcode WITHOUT a network call: mod-10 check digit, GTIN…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                barcode:
                  type: string
              required:
              - barcode
            example:
              barcode: '40123455'
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-availability/v1/check:
    post:
      operationId: domain_availability_check
      summary: Is one domain available?
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                name:
                  type: string
                tld:
                  type: string
                signal:
                  type: string
                whois:
                  type: string
                include_pii:
                  type: string
              required:
              - domain
            example:
              domain: google.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-availability/v1/bulk_check:
    post:
      operationId: domain_availability_bulk_check
      summary: One NAME across many TLDs → availability map (which of name.com/.io/.ai/… are…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                tlds:
                  type: string
                signal:
                  type: string
              required:
              - name
            example:
              name: google
              tlds: com,net,org
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-availability/v1/rdap:
    post:
      operationId: domain_availability_rdap
      summary: Full WHOIS via RDAP for a registered domain (registrar, created/expires…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                raw:
                  type: string
                include_pii:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-availability/v1/suggest:
    post:
      operationId: domain_availability_suggest
      summary: Name variations (prefix/suffix/TLD permutations, deterministic — no LLM) each…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                tlds:
                  type: string
                signal:
                  type: string
              required:
              - name
            example:
              name: reefapi
              tlds: com,io,ai
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-availability/v1/batch:
    post:
      operationId: domain_availability_batch
      summary: Many DIFFERENT full domains in one call → availability for each (bulk check)
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domains:
                  type: string
                signal:
                  type: string
              required:
              - domains
            example:
              domains: google.com,this-name-is-surely-free-9z8x7q.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/whois:
    post:
      operationId: domain_intel_whois
      summary: 'Domain registration (WHOIS) via RDAP: registrar (+ IANA id), reseller, status…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                raw:
                  type: string
                include_pii:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/dns:
    post:
      operationId: domain_intel_dns
      summary: 'DNS records over DNS-over-HTTPS: A/AAAA/MX/TXT/NS/CNAME/SOA/CAA by default…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                types:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/reverse_dns:
    post:
      operationId: domain_intel_reverse_dns
      summary: 'Reverse DNS (PTR): the hostname each of the domain''s A/AAAA IPs resolves back…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/hosting:
    post:
      operationId: domain_intel_hosting
      summary: 'Hosting / ASN / IP-owner: resolves the domain''s A+AAAA IPs and looks up each…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/dnssec:
    post:
      operationId: domain_intel_dnssec
      summary: 'DNSSEC signing status: the DoH AD (Authenticated-Data) flag (the resolver…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
              required:
              - domain
            example:
              domain: cloudflare.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/ssl_certs:
    post:
      operationId: domain_intel_ssl_certs
      summary: SSL/TLS certificates from Certificate Transparency (CT) logs (certspotter…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                limit:
                  type: string
                deep:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/subdomains:
    post:
      operationId: domain_intel_subdomains
      summary: Subdomain discovery via Certificate-Transparency-log cert SANs (the standard…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                deep:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/availability:
    post:
      operationId: domain_intel_availability
      summary: Domain registration availability via RDAP (registered ⇔ an RDAP record exists).
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/tld_list:
    post:
      operationId: domain_intel_tld_list
      summary: The IANA list of all delegated top-level domains (optionally substring-filtered)
      tags:
      - Utilities & AI
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                search:
                  type: string
                limit:
                  type: string
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/tld_detail:
    post:
      operationId: domain_intel_tld_detail
      summary: 'Per-TLD metadata: ccTLD vs gTLD and its IANA RDAP server(s) (or a note that it…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                tld:
                  type: string
              required:
              - tld
            example:
              tld: com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/tech_detect:
    post:
      operationId: domain_intel_tech_detect
      summary: 'Tech-stack fingerprint from the homepage response headers + HTML: web server…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /domain-intel/v1/full_report:
    post:
      operationId: domain_intel_full_report
      summary: 'One-call merge: whois + dns + dnssec + ssl_certs + subdomains (and optionally…'
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                include_tech:
                  type: string
                include_hosting:
                  type: string
                include_pii:
                  type: string
                deep:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /enrich-company/v1/company_domain:
    post:
      operationId: enrich_company_company_domain
      summary: domain → entity-resolved company profile (core groups) with per-field provenance
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                include:
                  type: string
                exclude:
                  type: string
              required:
              - domain
            example:
              domain: github.com
              include:
              - domain
              - presence
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /enrich-company/v1/company_domain_rich:
    post:
      operationId: enrich_company_company_domain_rich
      summary: everything in company_domain + firmographics (LinkedIn/Indeed/Glassdoor)…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                include:
                  type: string
                exclude:
                  type: string
              required:
              - domain
            example:
              domain: github.com
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /enrich-company/v1/batch:
    post:
      operationId: enrich_company_batch
      summary: enrich up to 10 domains in one call (core groups, cache-first, per-domain…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domains:
                  type: string
                include:
                  type: string
                exclude:
                  type: string
              required:
              - domains
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Envelope'
        '401':
          description: Missing or invalid x-api-key
        '429':
          description: Rate limited or quota exhausted
  /enrich-url/v1/classify:
    post:
      operationId: enrich_url_classify
      summary: Any URL → final_url, cleaned_url (tracking stripped), domain…
      tags:
      - Utilities & AI
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                deep:
                  type: string
              required:
              - url
            example:
              url: https://www.amazon.com/dp/B08N5WRWNW?tag=aff-20&utm_source=x
      responses:
        '200':
          description: Result envelope
          content:
            application/json:
              schema:
  

# --- truncated at 32 KB (176 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/reefapi/refs/heads/main/openapi/reefapi-utilities-ai-api-openapi.yml