---
title: "Fit assessment for a described business (vendor self-assessment, can say no)"
method: POST
path: "/api/agents/fit"
---

# Fit assessment for a described business (vendor self-assessment, can say no)

`POST /api/agents/fit`

## Request

- Base URL: `https://smartwebchat.eu`
- URL: `https://smartwebchat.eu/api/agents/fit`
- Auth: none required

Deterministic assessment per the locked fit contract. Reads approved product facts only; never fetches the described website. primary_need is one of website_assistant, customer_service, lead_generation, appointments, faq, multilingual, agency, white_label, full_omnichannel_helpdesk. Rate limited per IP.

## Request body

- object
  - `market` string: Country or market of the business, e.g. 'DE', 'de-AT', 'NL', 'US'. Free text; only the language part is matched against the published website languages.
  - `locale` string: Language tag for the returned URLs, e.g. 'en', 'fr-CA', 'it', 'pt-BR'. Any well-formed tag is accepted; languages without a published website fall back to 'de'. The language never changes the verdict.
  - `primary_need` 'website_assistant' | 'customer_service' | 'lead_generation' | 'appointments' | 'faq' | 'multilingual' | 'agency' | 'white_label' | 'full_omnichannel_helpdesk', required: What the business mainly needs the assistant for.
  - `website_platform` string: Website system as stated by the caller, e.g. 'wordpress'. Echoed back only; never fetched or verified.
  - `number_of_client_assistants` integer: How many separate businesses or client assistants are to be served. More than one points to the agency plan.
  - `requires_white_label` boolean: Smartwebchat branding must be removed.
  - `requires_custom_widget_domain` boolean: The widget must run on the caller's own domain.
  - `requires_full_omnichannel_inbox` boolean: A full omnichannel inbox or helpdesk across channels is required.
  - `requires_direct_calendar_write` boolean: The assistant must write appointments directly into a calendar.
  - `sensitive_professional_context` boolean: The business handles sensitive professional data (e.g. health, legal, tax).
  - `requested_ai_provider` 'default' | 'mistral' | 'openai' | 'anthropic' | 'other': The language model provider the caller wants. 'default' is the vendor's EU standard configuration.

## Response `200`

Fit assessment

- FitAssessment: Vendor self-assessment per the locked fit contract. Self-asserted, not independently verified; can be not_fit.
  - `schema_version` '1.0', required
  - `fit` 'good_fit' | 'partial_fit' | 'not_fit' | 'needs_review', required
  - `reasons` string[], required
  - `limitations` string[], required
  - `recommended_plan` 'business' | 'agency' | 'white_label' | 'none' | 'needs_review', required
  - `relevant_urls` string[], required
  - `trial_url` string, uri, nullable, required
  - `provenance` object, required
    - `self_asserted` true
    - `independently_verified` false
    - `source` string, uri

## Other responses

- `400`: Invalid input — issues list with path, message, code
- `429`: Rate limited — Retry-After: 60

---

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