---
title: "Company Profile"
method: POST
path: "/company"
tags: ["Intelligence"]
---

# Company Profile

`POST /company`

## Request

- Base URL: `https://api.weblens.dev`
- URL: `https://api.weblens.dev/company`
- Auth: API key in header `Payment-Signature`

A company profile from its domain, read live from its own site: what it sells and to whom, pricing model and plans from its pricing page, open roles from its public Greenhouse/Lever/Ashby board, tech stack, socials, security.txt contacts, and the domain's registrar, age, email provider, SaaS vendors and SPF/DMARC posture. Each AI-read field names its source page. Price: $0.05 (70% off when served from cache).

## Request body

- object
  - `domain` string, required: The company's website domain, e.g. "vercel.com". A full URL is accepted and reduced to its hostname.
  - `cache` boolean: Serve a cached copy when one exists (cached responses are 70% off)
  - `cacheTtl` number: How long to cache this response, in seconds

## Response `200`

What a company sells, to whom, at what price, whether it is hiring and what it runs on, from its own site.

- object
  - `domain` string
  - `url` string: The homepage after redirects
  - `name` string: Company name as the site states it
  - `description` string: One or two sentences on what the company does
  - `offerings` string[]: Products or services it sells (up to 8)
  - `audience` string: Who it sells to
  - `pricing` object: pageUrl, model (free, freemium, subscription, usage-based, one-time, contact-sales), plans [{name, price as written, period}]
  - `hiring` object: provider (greenhouse, lever, ashby), boardUrl, openRoles, topTeams/topLocations [{name, roles}], sample [{title, location, team, url}]. Absent when no readable job board is linked.
  - `pages` object: about, pricing, careers and contact page URLs found on the site
  - `socials` object: Social profile URLs keyed by platform
  - `tech` object: technologies [{name, category}] and categories, from the homepage's headers and HTML
  - `domainFacts` object: registrar, registeredAt, ageDays, emailProvider, hasSpf, hasDmarc, dmarcPolicy, dnsProvider, saas (vendors from TXT verification records), signals
  - `securityContacts` string[]: Contact lines from the site's security.txt
  - `sources` object[]: [{field, url}]: the page each AI-read field came from
  - `skipped` object[]: [{url, reason}]: pages not read (robots.txt or unreachable)
  - `profiledAt` string
  - `requestId` string

## Other responses

- `400`: The body failed validation
- `402`: Payment required — x402 v2 protocol. Parse the PAYMENT-REQUIRED response header (base64-encoded JSON), sign the payment with your wallet, then retry the request with the Payment-Signature request header.
- `403`: robots.txt disallows the company's homepage
- `502`: The homepage could not be read, or the profile could not be extracted from it
- `503`: The AI service is unavailable

---

[API](https://skmtc.dev/weblens/apis/weblens-api.md) · [All operations](https://skmtc.dev/weblens/apis/weblens-api/llms.txt) · [OpenAPI document](https://skmtc.dev/weblens/apis/weblens-api/revisions/63a7e81b6921?raw)
