---
title: "Probe website"
method: POST
path: "/api/agents/website-probe"
tags: ["agents"]
---

# Probe website

`POST /api/agents/website-probe`

## Request

- Base URL: `https://beta.getsales.io/unibox/v1`
- URL: `https://beta.getsales.io/unibox/v1/api/agents/website-probe`
- Auth: HTTP bearer and API key in header `Team-SID`

One guarded GET of a domain's home page, 5 s, nothing spent: reachable, status, final_url, title, language, readable (no wall), linkedin_company (the page slug it links). 422 website_invalid.

Contract:
- MCP tool `probe_website`, registry package `mcp.unibox/agents`, mount `unibox.website`.
- Operation `action`, response envelope `action`.
- Flags: read only.

## Request body

- ProbeWebsiteRequest: Request body of `probe_website`.
  - `domain` string, required: A bare domain or an address, with or without https://.

## Response `200`

`action` success envelope.

- ProbeWebsiteResponse
  - `success` true, required
  - `operation` 'action', required
  - `action` string, required: kebab-case verb; matches the route segment.
  - `item` unknown, required
  - `result` object, required
    - `reachable` boolean, required: Something answered the GET.
    - `status` integer, nullable, required: Its HTTP status; null when nothing answered.
    - `final_url` string, nullable, required: The address that answered, after the redirects.
    - `final_domain` string, nullable, required: Its host.
    - `redirected` boolean, required: The final host is another than the one asked (the apex and its www are one host).
    - `title` string, nullable, required: The title tag as plain text, 200 characters at most.
    - `language` string, nullable, required: The html tag's lang as its two-letter code.
    - `readable` boolean, required: Readable text: a status under 400, 200 characters of text at least, and no sign-in, consent or bot wall.
    - `linkedin_company` string, nullable, required: The slug of the LinkedIn company page the home page links (a footer's social row): what read_linkedin_company takes as ln_nickname; null when the page links none.
  - `meta` object, required
    - `trace_id` string, required: UUID v7; same 128-bit value as the X-Trace-Id header.
    - `span_id` string, required: 16 hex chars, root span of this request.
    - `timestamp` string, required: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
    - `duration_ms` integer, required: Server-side wall clock.
    - `team_sid` string, nullable: The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.
    - `actor_type` string, nullable: user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.

## Other responses

- `4XX`: MCP error envelope. `error.code` is one of validation_failed, nothing_to_update, not_found, relation_not_found, invalid_transition, limit_exceeded, payment_required, duplicate_rejected, conflict, delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.
- `5XX`: MCP error envelope with `error.code` internal_error or service_unavailable.

---

[API](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-unibox.md) - [All operations](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-unibox/llms.txt) - [OpenAPI document](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-unibox/revisions/8f1bc317897f?raw)
