OpenAPI Schema¶
This page renders from partner-docs/openapi.json.
How to use this page
Treat this schema as authoritative for field shapes, enums, and required properties.
For integration semantics and decision handling, prefer the curated guidance in API Reference > Endpoints, API Reference > Assessment Checks and Codes, and API Reference > Errors.
The published schema is filtered for partner use and excludes /v1/admin/* endpoints.
Refresh that file before publishing docs:
uv run python scripts/export_openapi.py
Swiss Company Name Validation API 1.2.1.dev0¶
API for screening proposed Swiss company names against Swiss registry data, trademark data, and EHRA-oriented naming rules.
Authentication¶
Use X-API-Key for all public business endpoints. GET /health and GET
/version are unauthenticated.
Recommended Workflow¶
- Use
/v1/name/assessmentfor the primary registration-oriented decision on one name. - Use
/v1/name/screeningwhen you want assessment, registry conflicts, trademark screening, and optional domain checks in one call. - Use the search endpoints individually when you need raw sub-check outputs.
Notes¶
- Successful business endpoints include
X-Trace-Idfor support and trace correlation. - Deprecated
.../eligibilityendpoints remain available for backwards compatibility, but new integrations should prefer/v1/name/assessment.
System¶
GET /health¶
Service health
Description Lightweight readiness/liveness endpoint for load balancers, orchestrators, and uptime checks.
No authentication is required. A healthy instance returns
`{"status": "ok"}` with HTTP 200.
Response 200 OK¶
application/json
{
"status": "string"
}
Schema of the response body
{
"properties": {
"status": {
"type": "string",
"title": "Status",
"description": "Health status",
"default": "ok"
}
},
"type": "object",
"title": "HealthResponse",
"description": "Response for GET /health endpoint."
}
GET /version¶
Build metadata
Description Returns build and deployment metadata such as service version, git SHA, build timestamp, and image reference when available.
Use this endpoint for deployment verification and release traceability.
No authentication is required.
Response 200 OK¶
application/json
{
"service": "string",
"version": "string",
"git_sha": null,
"build_time": null,
"image_ref": null,
"image_digest": null,
"environment": null
}
Schema of the response body
{
"properties": {
"service": {
"type": "string",
"title": "Service",
"description": "Stable service identifier"
},
"version": {
"type": "string",
"title": "Version",
"description": "Application semantic version"
},
"git_sha": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Git Sha",
"description": "Git commit SHA of the build"
},
"build_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Build Time",
"description": "Build timestamp in ISO 8601 format"
},
"image_ref": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image Ref",
"description": "Container image reference used for deployment"
},
"image_digest": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image Digest",
"description": "Container image digest for exact artifact traceability"
},
"environment": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Environment",
"description": "Deployment environment such as dev, staging, or prod"
}
},
"type": "object",
"required": [
"service",
"version"
],
"title": "VersionResponse",
"description": "Response for GET /version endpoint."
}
Registry Search¶
POST /v1/conflicts/search¶
Check company name conflicts
Description Search the Swiss company registry for identical and similar company names that could conflict with a proposed name.
Use this endpoint when you want registry collision data only.
Key response fields:
- `registrable`: `true` only when no exact identity match exists
- `identityMatch`: the exact existing registry hit, if present
- `similarMatches`: visually or phonetically similar names that may still
require review
This endpoint does not decide full registrability under Swiss naming law.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"name": "string",
"limit": 0,
"minRisk": "High"
}
Schema of the request body
{
"properties": {
"name": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"title": "Name",
"description": "Company name to check for conflicts"
},
"limit": {
"type": "integer",
"maximum": 100.0,
"minimum": 1.0,
"title": "Limit",
"description": "Maximum number of results (1-100)",
"default": 25
},
"minRisk": {
"$ref": "#/components/schemas/RiskLevelParam",
"description": "Minimum risk level filter (inclusive of specified level and higher)",
"default": "Low"
}
},
"type": "object",
"required": [
"name"
],
"title": "SearchRequest",
"description": "Request body for POST /v1/conflicts/search.\n\nAttributes:\n name: Original company name to check (required).\n limit: Maximum results to return (1-100, default 25).\n minRisk: Minimum risk level filter, inclusive of higher levels.",
"examples": [
{
"limit": 25,
"minRisk": "Low",
"name": "Müller & Söhne AG"
}
]
}
Response 200 OK¶
application/json
{
"input": {
"name": "string",
"nameNorm": "string",
"nameCore": "string",
"phoneticPrimary": "string",
"phoneticAlt": "string"
},
"registrable": true,
"identityMatch": null,
"similarMatches": [
{
"sourceCompanyId": "string",
"nameDisplay": "string",
"legalSeat": null,
"nameNorm": "string",
"visualScore": 10.12,
"phoneticMatch": true,
"risk": "High"
}
]
}
Schema of the response body
{
"properties": {
"input": {
"$ref": "#/components/schemas/SearchInputEcho",
"description": "Echoed and normalized input"
},
"registrable": {
"type": "boolean",
"title": "Registrable",
"description": "True if no identity match exists (name can potentially be registered)"
},
"identityMatch": {
"anyOf": [
{
"$ref": "#/components/schemas/IdentityMatchResponse"
},
{
"type": "null"
}
],
"description": "The identity match if one exists, otherwise null"
},
"similarMatches": {
"items": {
"$ref": "#/components/schemas/SimilarMatchResponse"
},
"type": "array",
"title": "Similarmatches",
"description": "List of similar matches ordered by risk"
}
},
"type": "object",
"required": [
"input",
"registrable",
"identityMatch",
"similarMatches"
],
"title": "SearchResponse",
"description": "Response body for successful conflict search.\n\nSeparates legal identity (OR Art. 951) from confusion risk (OR Art. 956):\n- identityMatch: Legally identical name → automatic rejection\n- similarMatches: Similar names → requires human assessment",
"examples": [
{
"input": {
"name": "Müller & Söhne AG",
"nameCore": "mueller soehne",
"nameNorm": "mueller soehne",
"phoneticAlt": "MLRS",
"phoneticPrimary": "MLRS"
},
"registrable": true,
"similarMatches": [
{
"legalSeat": "Zürich",
"nameDisplay": "Mueller und Soehne GmbH",
"nameNorm": "mueller soehne",
"phoneticMatch": true,
"risk": "High",
"sourceCompanyId": "CHE101835433",
"visualScore": 0.85
}
]
}
]
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Consumer Search¶
POST /v1/consumer/company-search¶
Search company conflicts for checkname.ch
Description Consumer-oriented company search endpoint for checkname.ch.
This endpoint reuses the same Postgres-backed conflict search logic as
`/v1/conflicts/search`, but returns a flattened result shape tailored to the
current web-app flow where the full results are persisted in Convex and the
preview is derived server-side.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"name": "string",
"limit": 0,
"minRisk": "High"
}
Schema of the request body
{
"properties": {
"name": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"title": "Name",
"description": "Company name to check for conflicts"
},
"limit": {
"type": "integer",
"maximum": 100.0,
"minimum": 1.0,
"title": "Limit",
"description": "Maximum number of displayable company results to return",
"default": 100
},
"minRisk": {
"$ref": "#/components/schemas/RiskLevelParam",
"description": "Minimum risk level filter (inclusive of specified level and higher)",
"default": "Low"
}
},
"type": "object",
"required": [
"name"
],
"title": "ConsumerCompanySearchRequest",
"description": "Request body for POST /v1/consumer/company-search.",
"examples": [
{
"limit": 100,
"minRisk": "Low",
"name": "Muller Soehne GmbH"
}
]
}
Response 200 OK¶
application/json
{
"input": {
"name": "string",
"nameNorm": "string",
"nameCore": "string",
"phoneticPrimary": "string",
"phoneticAlt": "string"
},
"summary": {
"registrable": true,
"hasIdentityMatch": true,
"totalResults": 0
},
"fullResults": [
{
"doc_id": "string",
"name": "string",
"registry": "string",
"strategies": [
"string"
],
"uid": "string",
"link": "string",
"companyType": "string",
"legalSeat": null,
"nameNorm": "string",
"visualScore": null,
"phoneticMatch": null,
"risk": null,
"matchType": "string"
}
],
"identityMatch": null
}
Schema of the response body
{
"properties": {
"input": {
"$ref": "#/components/schemas/SearchInputEcho",
"description": "Echoed and normalized input"
},
"summary": {
"$ref": "#/components/schemas/ConsumerCompanySearchSummary",
"description": "Consumer-friendly summary of the company search result"
},
"fullResults": {
"items": {
"$ref": "#/components/schemas/ConsumerCompanySearchResult"
},
"type": "array",
"title": "Fullresults",
"description": "Flattened company rows for full-result persistence in the web app"
},
"identityMatch": {
"anyOf": [
{
"$ref": "#/components/schemas/IdentityMatchResponse"
},
{
"type": "null"
}
],
"description": "Separate legal identity match payload for downstream logic"
}
},
"type": "object",
"required": [
"input",
"summary",
"fullResults",
"identityMatch"
],
"title": "ConsumerCompanySearchResponse",
"description": "Response body for POST /v1/consumer/company-search."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Trademark Search¶
POST /v1/trademarks/search¶
Search registered trademarks
Description Search the ingested trademark dataset for potentially similar verbal marks.
Use this endpoint when you want trademark screening only.
Matching combines normalized text similarity, phonetic similarity, and
optional Nice class overlap context. Returned risk levels are screening
guidance, not a formal legal clearance opinion.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"query": "string",
"limit": 0,
"minRisk": "High",
"niceClasses": null
}
Schema of the request body
{
"properties": {
"query": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"title": "Query",
"description": "Trademark text to search for similar existing trademarks"
},
"limit": {
"type": "integer",
"maximum": 100.0,
"minimum": 1.0,
"title": "Limit",
"description": "Maximum number of results (1-100)",
"default": 25
},
"minRisk": {
"$ref": "#/components/schemas/RiskLevelParam",
"description": "Minimum risk level filter (inclusive of specified level and higher)",
"default": "Low"
},
"niceClasses": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Niceclasses",
"description": "Optional intended Nice classes (values 1-45)"
}
},
"type": "object",
"required": [
"query"
],
"title": "TrademarkSearchRequest",
"description": "Request body for POST /v1/trademarks/search.\n\nAttributes:\n query: Proposed trademark text to compare against registered trademarks.\n limit: Maximum results to return (1-100, default 25).\n minRisk: Minimum risk level filter, inclusive of higher levels.\n niceClasses: Optional intended Nice classes (1-45) to weight overlap.",
"examples": [
{
"limit": 20,
"minRisk": "Low",
"niceClasses": [
35,
42
],
"query": "Mueller Soehne"
}
]
}
Response 200 OK¶
application/json
{
"input": {
"query": "string",
"queryNorm": "string",
"queryCore": "string",
"phoneticPrimary": "string",
"phoneticAlt": "string",
"niceClasses": [
0
]
},
"goodsServicesBasis": "string",
"similarMatches": [
{
"sourceRecordId": "string",
"registrationNumber": null,
"applicationNumberText": null,
"markText": null,
"markTextNorm": "string",
"status": null,
"niceClasses": [
0
],
"classOverlap": [
0
],
"relatedClassOverlap": [
0
],
"visualScore": 10.12,
"phoneticMatch": true,
"matchBasis": [
"string"
],
"risk": "High"
}
]
}
Schema of the response body
{
"properties": {
"input": {
"$ref": "#/components/schemas/TrademarkSearchInputEcho",
"description": "Echoed and normalized input"
},
"goodsServicesBasis": {
"type": "string",
"title": "Goodsservicesbasis",
"description": "Goods/services context basis: 'nice_classes' or 'unspecified'"
},
"similarMatches": {
"items": {
"$ref": "#/components/schemas/TrademarkSimilarMatchResponse"
},
"type": "array",
"title": "Similarmatches",
"description": "List of similar trademark matches ordered by risk"
}
},
"type": "object",
"required": [
"input",
"goodsServicesBasis",
"similarMatches"
],
"title": "TrademarkSearchResponse",
"description": "Response body for POST /v1/trademarks/search."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
POST /v1/consumer/trademark-search¶
Search trademarks with consumer response shape
Description Search the trademark dataset and return a flattened consumer-oriented response that separates exact textual matches from other similar marks.
This endpoint is intended for direct web-app consumption. Use it when you
want
one payload with:
- summary.hasIdenticalMatches
- identicalMatches
- similarMatches
- fullResults
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"query": "string",
"limit": 0,
"minRisk": "High",
"niceClasses": null
}
Schema of the request body
{
"properties": {
"query": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"title": "Query",
"description": "Trademark text to search for identical and similar registered trademarks"
},
"limit": {
"type": "integer",
"maximum": 100.0,
"minimum": 1.0,
"title": "Limit",
"description": "Maximum number of displayable trademark results to return",
"default": 100
},
"minRisk": {
"$ref": "#/components/schemas/RiskLevelParam",
"description": "Minimum risk level filter (inclusive of specified level and higher)",
"default": "Low"
},
"niceClasses": {
"anyOf": [
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Niceclasses",
"description": "Optional intended Nice classes (values 1-45)"
}
},
"type": "object",
"required": [
"query"
],
"title": "ConsumerTrademarkSearchRequest",
"description": "Request body for POST /v1/consumer/trademark-search.",
"examples": [
{
"limit": 100,
"minRisk": "Low",
"niceClasses": [
35,
42
],
"query": "Mueller Soehne"
}
]
}
Response 200 OK¶
application/json
{
"input": {
"query": "string",
"queryNorm": "string",
"queryCore": "string",
"phoneticPrimary": "string",
"phoneticAlt": "string",
"niceClasses": [
0
]
},
"summary": {
"hasIdenticalMatches": true,
"identicalMatchCount": 0,
"similarMatchCount": 0,
"totalResults": 0,
"goodsServicesBasis": "string"
},
"identicalMatches": [
{
"doc_id": "string",
"sourceRecordId": "string",
"name": "string",
"database": "string",
"strategies": [
"string"
],
"class": "string",
"link": "string",
"status": null,
"registrationNumber": null,
"applicant": "string",
"registrationDate": null,
"applicationDate": null,
"expiryDate": null,
"markFeatureCategory": null,
"score": 10.12,
"visualScore": null,
"phoneticMatch": null,
"risk": null,
"matchType": "string",
"matchBasis": [
"string"
],
"classOverlap": [
0
],
"relatedClassOverlap": [
0
]
}
],
"similarMatches": null,
"fullResults": null
}
Schema of the response body
{
"properties": {
"input": {
"$ref": "#/components/schemas/TrademarkSearchInputEcho",
"description": "Echoed and normalized input"
},
"summary": {
"$ref": "#/components/schemas/ConsumerTrademarkSearchSummary",
"description": "Consumer-friendly summary of the trademark search result"
},
"identicalMatches": {
"items": {
"$ref": "#/components/schemas/ConsumerTrademarkSearchResult"
},
"type": "array",
"title": "Identicalmatches",
"description": "Exact textual trademark matches"
},
"similarMatches": {
"items": {
"$ref": "#/components/schemas/ConsumerTrademarkSearchResult"
},
"type": "array",
"title": "Similarmatches",
"description": "Non-identical similar trademark matches"
},
"fullResults": {
"items": {
"$ref": "#/components/schemas/ConsumerTrademarkSearchResult"
},
"type": "array",
"title": "Fullresults",
"description": "Flattened trademark rows for full-result persistence in the web app"
}
},
"type": "object",
"required": [
"input",
"summary",
"fullResults"
],
"title": "ConsumerTrademarkSearchResponse",
"description": "Response body for POST /v1/consumer/trademark-search."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Pro Analysis¶
POST /v1/pro/absolute-grounds¶
Run Pro absolute-grounds analysis
Description Compute the absolute-grounds section used by Checkname Pro.
This endpoint is intentionally compute-only. It does not create, own, or
persist user analyses; those product concerns stay in the application layer.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"wordmark": "string",
"markType": "word_mark",
"goodsServicesDescription": "string",
"niceClasses": [
"string"
],
"language": "de"
}
Schema of the request body
{
"properties": {
"wordmark": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"title": "Wordmark"
},
"markType": {
"$ref": "#/components/schemas/ProMarkType"
},
"goodsServicesDescription": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"title": "Goodsservicesdescription"
},
"niceClasses": {
"items": {
"type": "string"
},
"type": "array",
"title": "Niceclasses"
},
"language": {
"$ref": "#/components/schemas/ProTextLanguage",
"description": "Required response language for generated reasoning text. Supported values: `de`, `en`."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"wordmark",
"markType",
"goodsServicesDescription",
"language"
],
"title": "ProAbsoluteGroundsRequest",
"description": "Request body for POST /v1/pro/absolute-grounds.",
"examples": [
{
"goodsServicesDescription": "Mineral water, flavored waters, and non-alcoholic alpine herb beverages; retail services for beverages.",
"language": "de",
"markType": "word_mark",
"niceClasses": [
"32",
"35"
],
"wordmark": "Alpenquell"
}
]
}
Response 200 OK¶
application/json
{
"rollup": "clear",
"summary": {},
"criteria": [
{
"key": "string",
"title": "string",
"sub": "string",
"verdict": null,
"reasoning": "string",
"legalRefs": [
"string"
],
"categories": [
"string"
],
"evidence": null
}
]
}
Schema of the response body
{
"properties": {
"rollup": {
"$ref": "#/components/schemas/ProAbsoluteGroundsVerdict"
},
"summary": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"title": "Summary"
},
"criteria": {
"items": {
"$ref": "#/components/schemas/ProAbsoluteGroundCriterionModel"
},
"type": "array",
"title": "Criteria"
}
},
"type": "object",
"required": [
"rollup",
"summary"
],
"title": "ProAbsoluteGroundsResponse",
"description": "Response body for POST /v1/pro/absolute-grounds."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
POST /v1/pro/trademarks/identity-search¶
Run Pro trademark identity search
Description Return exact trademark identity hits for the Checkname Pro identity table.
This route reuses the shared trademark search service and only adapts the
response shape for the Pro product surface.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"query": "string",
"niceClasses": [
0
],
"registers": [
"IGE_CH"
]
}
Schema of the request body
{
"properties": {
"query": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"title": "Query"
},
"niceClasses": {
"items": {
"type": "integer"
},
"type": "array",
"title": "Niceclasses"
},
"registers": {
"items": {
"$ref": "#/components/schemas/ProTrademarkRegister"
},
"type": "array",
"title": "Registers"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"query"
],
"title": "ProTrademarkIdentitySearchRequest",
"description": "Request body for POST /v1/pro/trademarks/identity-search.",
"examples": [
{
"niceClasses": [
32,
35
],
"query": "Alpenquell",
"registers": [
"IGE_CH"
]
}
]
}
Response 200 OK¶
application/json
{
"totalCount": 0,
"hits": [
{
"docId": "string",
"register": "IGE_CH",
"wordmark": "string",
"logoUrl": null,
"niceClasses": [
"string"
],
"status": "registered",
"applicationNumber": null,
"registrationNumber": null,
"applicationDate": null,
"registrationDate": null,
"holder": {
"name": "string",
"city": null,
"country": null
},
"link": "string"
}
]
}
Schema of the response body
{
"properties": {
"totalCount": {
"type": "integer",
"minimum": 0.0,
"title": "Totalcount"
},
"hits": {
"items": {
"$ref": "#/components/schemas/ProTrademarkIdentityHitModel"
},
"type": "array",
"title": "Hits"
}
},
"type": "object",
"required": [
"totalCount"
],
"title": "ProTrademarkIdentitySearchResponse",
"description": "Response body for POST /v1/pro/trademarks/identity-search."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
POST /v1/pro/similarity-search¶
Run Pro multi-source similarity search
Description Aggregate Pro similarity hits across trademark, company, and domain sources.
The endpoint may return `state=partial` when one source is unavailable or
not implemented. This preserves usable data for the Pro workflow without making the route responsible for owning the workflow state itself.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"query": "string",
"niceClasses": [
0
],
"sources": [
"trademark"
],
"limitPerSource": 0,
"domainTlds": [
"string"
]
}
Schema of the request body
{
"properties": {
"query": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"title": "Query"
},
"niceClasses": {
"items": {
"type": "integer"
},
"type": "array",
"title": "Niceclasses"
},
"sources": {
"items": {
"$ref": "#/components/schemas/ProSimilaritySource"
},
"type": "array",
"title": "Sources"
},
"limitPerSource": {
"type": "integer",
"maximum": 100.0,
"minimum": 1.0,
"title": "Limitpersource",
"default": 25
},
"domainTlds": {
"items": {
"type": "string"
},
"type": "array",
"title": "Domaintlds"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"query"
],
"title": "ProSimilaritySearchRequest",
"description": "Request body for POST /v1/pro/similarity-search.",
"examples": [
{
"domainTlds": [
"ch",
"com",
"swiss"
],
"limitPerSource": 15,
"niceClasses": [
32,
35
],
"query": "Alpenquell",
"sources": [
"trademark",
"company",
"domain"
]
}
]
}
Response 200 OK¶
application/json
{
"state": "complete",
"totalCount": 0,
"buckets": {
"high": 0,
"medium": 0,
"low": 0
},
"hits": [
{
"docId": "string",
"source": "trademark",
"label": "string",
"link": "string",
"context": "string",
"similarityType": "phonetic",
"riskLevel": "high",
"statusText": "string",
"holderText": "string",
"categories": [
"string"
]
}
],
"companyIdentityMatch": null,
"issues": [
{
"source": null,
"code": "DOMAIN_LABEL_EMPTY",
"message": "string",
"retryable": true
}
]
}
Schema of the response body
{
"properties": {
"state": {
"$ref": "#/components/schemas/ProSimilarityState"
},
"totalCount": {
"type": "integer",
"minimum": 0.0,
"title": "Totalcount"
},
"buckets": {
"$ref": "#/components/schemas/ProSimilarityBucketsModel"
},
"hits": {
"items": {
"$ref": "#/components/schemas/ProSimilarityHitModel"
},
"type": "array",
"title": "Hits"
},
"companyIdentityMatch": {
"anyOf": [
{
"$ref": "#/components/schemas/ProCompanyIdentityHitModel"
},
{
"type": "null"
}
]
},
"issues": {
"items": {
"$ref": "#/components/schemas/ProSimilarityIssueModel"
},
"type": "array",
"title": "Issues"
}
},
"type": "object",
"required": [
"state",
"totalCount",
"buckets"
],
"title": "ProSimilaritySearchResponse",
"description": "Response body for POST /v1/pro/similarity-search."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
POST /v1/pro/nice-classes/suggest¶
Suggest Nice classes for Pro intake
Description Suggest Nice classes from the supplied goods/services description for the Checkname Pro intake workflow.
This endpoint is compute-only and returns a lightweight draft suggestion
that can be accepted or adjusted by the user in the application layer.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"goodsServicesDescription": "string",
"language": "de"
}
Schema of the request body
{
"properties": {
"goodsServicesDescription": {
"type": "string",
"maxLength": 4000,
"minLength": 1,
"title": "Goodsservicesdescription"
},
"language": {
"$ref": "#/components/schemas/ProTextLanguage",
"description": "Required response language for generated rationale text. Supported values: `de`, `en`."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"goodsServicesDescription",
"language"
],
"title": "ProNiceClassSuggestionRequest",
"description": "Request body for POST /v1/pro/nice-classes/suggest.",
"examples": [
{
"goodsServicesDescription": "SaaS software for law firms, document automation tools, and online legal-tech consulting services.",
"language": "de"
}
]
}
Response 200 OK¶
application/json
{
"suggestions": [
{
"niceClass": 0,
"rationale": "string"
}
],
"sourceRef": "string"
}
Schema of the response body
{
"properties": {
"suggestions": {
"items": {
"$ref": "#/components/schemas/ProNiceClassSuggestionModel"
},
"type": "array",
"title": "Suggestions"
},
"sourceRef": {
"type": "string",
"title": "Sourceref"
}
},
"type": "object",
"required": [
"sourceRef"
],
"title": "ProNiceClassSuggestionResponse",
"description": "Response body for POST /v1/pro/nice-classes/suggest."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
POST /v1/pro/famous-marks¶
Run Pro famous-marks check
Description Return famous-mark signals for the Checkname Pro workflow.
This initial Python implementation uses a deterministic seed-list heuristic
and keeps the product workflow state outside the API.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"query": "string",
"niceClasses": [
0
],
"goodsServicesDescription": "string",
"language": "de"
}
Schema of the request body
{
"properties": {
"query": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"title": "Query"
},
"niceClasses": {
"items": {
"type": "integer"
},
"type": "array",
"title": "Niceclasses"
},
"goodsServicesDescription": {
"type": "string",
"maxLength": 4000,
"title": "Goodsservicesdescription",
"default": ""
},
"language": {
"$ref": "#/components/schemas/ProTextLanguage",
"description": "Required response language for generated rationale text. Supported values: `de`, `en`."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"query",
"language"
],
"title": "ProFamousMarksRequest",
"description": "Request body for POST /v1/pro/famous-marks.",
"examples": [
{
"goodsServicesDescription": "Coffee capsules, roasted coffee, coffee machines, and online retail services for coffee products.",
"language": "de",
"niceClasses": [
30,
35
],
"query": "Nespresso Alpine"
}
]
}
Response 200 OK¶
application/json
{
"anyMatch": true,
"totalCount": 0,
"testedBrands": [
"string"
],
"sourceRef": "string",
"hits": [
{
"brand": "string",
"rationale": "string",
"crossClass": true,
"triggerType": "identical",
"categories": [
"string"
]
}
]
}
Schema of the response body
{
"properties": {
"anyMatch": {
"type": "boolean",
"title": "Anymatch"
},
"totalCount": {
"type": "integer",
"minimum": 0.0,
"title": "Totalcount"
},
"testedBrands": {
"items": {
"type": "string"
},
"type": "array",
"title": "Testedbrands"
},
"sourceRef": {
"type": "string",
"title": "Sourceref"
},
"hits": {
"items": {
"$ref": "#/components/schemas/ProFamousMarkHitModel"
},
"type": "array",
"title": "Hits"
}
},
"type": "object",
"required": [
"anyMatch",
"totalCount",
"sourceRef"
],
"title": "ProFamousMarksResponse",
"description": "Response body for POST /v1/pro/famous-marks."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
POST /v1/pro/recommendation¶
Build Pro recommendation block
Description Build the Pro recommendation and overview blocks from previously computed sections.
This endpoint intentionally accepts section payloads rather than an analysis
ID so the Python API remains a compute service rather than the owner of user workflows.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"absoluteGrounds": null,
"identity": null,
"similarity": null,
"famousMarks": null,
"language": "de"
}
Schema of the request body
{
"properties": {
"absoluteGrounds": {
"anyOf": [
{
"$ref": "#/components/schemas/ProAbsoluteGroundsResponse-Input"
},
{
"type": "null"
}
]
},
"identity": {
"anyOf": [
{
"$ref": "#/components/schemas/ProTrademarkIdentitySearchResponse-Input"
},
{
"type": "null"
}
]
},
"similarity": {
"anyOf": [
{
"$ref": "#/components/schemas/ProSimilaritySearchResponse-Input"
},
{
"type": "null"
}
]
},
"famousMarks": {
"anyOf": [
{
"$ref": "#/components/schemas/ProFamousMarksResponse-Input"
},
{
"type": "null"
}
]
},
"language": {
"$ref": "#/components/schemas/ProTextLanguage",
"description": "Response language for generated recommendation copy. Supported values: `de`, `en`.",
"default": "de"
}
},
"additionalProperties": false,
"type": "object",
"title": "ProRecommendationRequest",
"description": "Request body for POST /v1/pro/recommendation.",
"examples": [
{
"absoluteGrounds": {
"criteria": [
{
"categories": [
"invented_or_arbitrary_element"
],
"key": "distinctiveness",
"legalRefs": [
"MSchG Art. 2 lit. a"
],
"reasoning": "The wording is not directly descriptive for the claimed goods/services.",
"sub": "MSchG Art. 2 lit. a",
"title": "Distinctiveness",
"verdict": "clear"
}
],
"rollup": "clear",
"summary": {
"text": "No absolute-ground blocker surfaced."
}
},
"famousMarks": {
"anyMatch": false,
"hits": [],
"sourceRef": "llm_v1",
"testedBrands": [],
"totalCount": 0
},
"identity": {
"hits": [],
"totalCount": 0
},
"similarity": {
"buckets": {
"high": 1,
"low": 0,
"medium": 0
},
"hits": [
{
"categories": [
"phonetic_similarity",
"same_nice_class",
"high_risk"
],
"context": "Nice classes: 32, 35; basis: phonetic_match, query_prefix_tokens, class_overlap",
"docId": "TM-2024-001234",
"holderText": "Alpenquelle Getränke AG",
"label": "ALPENQUELLE",
"link": "/v1/trademarks/TM-2024-001234",
"riskLevel": "high",
"similarityType": "phonetic",
"source": "trademark",
"statusText": "Registered trademark"
}
],
"issues": [],
"state": "complete",
"totalCount": 1
}
}
]
}
Response 200 OK¶
application/json
{
"verdict": {
"riskIndex": 0,
"riskLevel": "none",
"headline": "string"
},
"recommendation": {
"verdicts": [
{
"key": "string",
"label": "string",
"value": "yes",
"reasonPill": {
"tone": "ok",
"text": "string",
"categories": [
"string"
]
}
}
],
"quote": "string"
},
"overview": {
"topFindings": [
{
"key": "string",
"tone": null,
"headline": "string",
"detail": "string",
"categories": [
"string"
]
}
]
}
}
Schema of the response body
{
"properties": {
"verdict": {
"$ref": "#/components/schemas/ProRecommendationVerdictModel"
},
"recommendation": {
"$ref": "#/components/schemas/ProRecommendationBlockModel"
},
"overview": {
"$ref": "#/components/schemas/ProOverviewModel"
}
},
"type": "object",
"required": [
"verdict",
"recommendation",
"overview"
],
"title": "ProRecommendationResponse",
"description": "Response body for POST /v1/pro/recommendation."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Domain Availability¶
POST /v1/domains/availability¶
Check domain availability
Description Check one proposed domain label across selected TLDs.
This endpoint performs best-effort live internet lookups. Per-TLD results
are:
- registered: evidence indicates the domain is already taken
- likely_available: no registration evidence was found
- unknown: the lookup was inconclusive
Treat this as a convenience signal, not as a reservation or legal guarantee.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"name": "string",
"tlds": [
"string"
]
}
Schema of the request body
{
"properties": {
"name": {
"type": "string",
"maxLength": 63,
"minLength": 1,
"title": "Name",
"description": "Base domain label to check (for example 'acme')"
},
"tlds": {
"items": {
"type": "string"
},
"type": "array",
"maxItems": 10,
"minItems": 1,
"title": "Tlds",
"description": "Target TLD list (for example ['ch', 'com'])"
}
},
"type": "object",
"required": [
"name",
"tlds"
],
"title": "DomainAvailabilityRequest",
"description": "Request body for POST /v1/domains/availability.\n\nAttributes:\n name: Base domain label to check (without TLD).\n tlds: Target TLD values from the supported allowlist.",
"examples": [
{
"name": "acme",
"tlds": [
"ch",
"swiss",
"com",
"net"
]
}
]
}
Response 200 OK¶
application/json
{
"input": {
"name": "string",
"nameNorm": "string",
"tlds": [
"string"
]
},
"results": [
{
"fqdn": "string",
"tld": "string",
"status": "registered",
"available": null,
"source": "string",
"reason": "string",
"checkedAt": "string"
}
],
"summary": {
"registeredCount": 0,
"likelyAvailableCount": 0,
"unknownCount": 0
}
}
Schema of the response body
{
"properties": {
"input": {
"$ref": "#/components/schemas/DomainAvailabilityInputEcho",
"description": "Echoed and normalized input"
},
"results": {
"items": {
"$ref": "#/components/schemas/DomainAvailabilityResultResponse"
},
"type": "array",
"title": "Results",
"description": "Per-TLD availability check results"
},
"summary": {
"$ref": "#/components/schemas/DomainAvailabilitySummaryResponse",
"description": "Summary counts by status"
}
},
"type": "object",
"required": [
"input",
"results",
"summary"
],
"title": "DomainAvailabilityResponse",
"description": "Response body for POST /v1/domains/availability.",
"examples": [
{
"input": {
"name": "acme",
"nameNorm": "acme",
"tlds": [
"ch",
"com"
]
},
"results": [
{
"available": false,
"checkedAt": "2026-03-22T12:00:00Z",
"fqdn": "acme.ch",
"reason": "dns_or_rdap_positive",
"source": "dns+rdap",
"status": "registered",
"tld": "ch"
},
{
"available": true,
"checkedAt": "2026-03-22T12:00:01Z",
"fqdn": "acme.com",
"reason": "no_delegation_and_rdap_not_found",
"source": "dns+rdap",
"status": "likely_available",
"tld": "com"
}
],
"summary": {
"likelyAvailableCount": 1,
"registeredCount": 1,
"unknownCount": 0
}
}
]
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 502 Bad Gateway¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 504 Gateway Timeout¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Legacy Eligibility¶
POST /v1/name/eligibility¶
Legacy company name eligibility (v1)
Description Deprecated legacy eligibility endpoint retained for backwards compatibility.
It combines deterministic validation with optional semantic analysis, but
new
integrations should prefer /v1/name/assessment, which provides clearer
decision semantics and better traceability.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"companyName": "string",
"legalForm": "stock_corporation",
"activityScope": null,
"language": "de",
"ownerFullName": null,
"checkLevel": "basic"
}
Schema of the request body
{
"properties": {
"companyName": {
"type": "string",
"maxLength": 256,
"minLength": 3,
"title": "Companyname",
"description": "The proposed company name to analyze. Prefer providing the base name without legal-form suffix (e.g., 'Legiqo' instead of 'Legiqo GmbH') for best consistency."
},
"legalForm": {
"$ref": "#/components/schemas/SupportedLegalForm",
"description": "Target legal form type (language-neutral). Allowed values: 'stock_corporation' (AG/SA), 'limited_liability' (GmbH/Sàrl/Sagl), 'sole_proprietorship' (Einzelunternehmen)"
},
"activityScope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Activityscope",
"description": "Description of the company's purpose (Zweck)"
},
"language": {
"$ref": "#/components/schemas/Language",
"description": "Language context for validation. Affects name interpretation and response messages."
},
"ownerFullName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ownerfullname",
"description": "Full name of the owner (required for Einzelunternehmen)"
},
"checkLevel": {
"$ref": "#/components/schemas/ComplianceCheckLevel",
"description": "'basic' (Deterministic rules only) or 'full' (Deterministic rules + advanced semantic analysis)",
"default": "full"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"companyName",
"legalForm",
"language"
],
"title": "ComplianceAnalysisRequest",
"description": "Request body for POST /v1/name/eligibility.\n\nAttributes:\n companyName: The proposed company name to analyze.\n legalForm: Target legal form (e.g., \"AG\", \"GmbH\").\n activityScope: Description of the company's purpose.\n language: Primary language of the name.\n ownerFullName: Full name of the owner (for Sole Proprietorship).\n checkLevel: 'basic' or 'full'.",
"examples": [
{
"activityScope": "Development of software for bakeries",
"checkLevel": "full",
"companyName": "Müller & Söhne Banking",
"language": "en",
"legalForm": "stock_corporation"
}
]
}
Response 200 OK¶
application/json
{
"input": {
"companyName": "string",
"legalForm": "stock_corporation",
"activityScope": null,
"language": "de",
"ownerFullName": null
},
"overallStatus": "COMPLIANT",
"issues": [
{
"code": "string",
"severity": "CRITICAL",
"message": "string",
"source": "string",
"ruleRef": null
}
],
"registrableNames": null,
"metadata": null
}
Schema of the response body
{
"properties": {
"input": {
"$ref": "#/components/schemas/ComplianceAnalysisInputEcho"
},
"overallStatus": {
"$ref": "#/components/schemas/ComplianceOverallStatus"
},
"issues": {
"items": {
"$ref": "#/components/schemas/ValidationIssueModel"
},
"type": "array",
"title": "Issues"
},
"registrableNames": {
"anyOf": [
{
"$ref": "#/components/schemas/RegistrableNamesModel"
},
{
"type": "null"
}
],
"description": "The full registrable company names in all 4 languages (base name + legal form suffix)"
},
"metadata": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Metadata",
"description": "Processing metadata"
}
},
"type": "object",
"required": [
"input",
"overallStatus",
"issues"
],
"title": "ComplianceAnalysisResponse",
"description": "Response body for compliance analysis.",
"examples": [
{
"input": {
"activityScope": "Development of software",
"companyName": "Legiqo",
"language": "en",
"legalForm": "limited_liability"
},
"issues": [],
"metadata": {
"processingTimeMs": 150
},
"overallStatus": "COMPLIANT",
"registrableNames": {
"de": "Legiqo GmbH",
"en": "Legiqo LLC",
"fr": "Legiqo Sàrl",
"it": "Legiqo Sagl"
}
}
]
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
POST /v2/name/eligibility¶
Legacy company name eligibility (v2)
Description Deprecated legacy eligibility endpoint with additional seat and owner context, plus structured semantic rule output.
Kept for compatibility with earlier clients. New integrations should prefer
`/v1/name/assessment`.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"companyName": "string",
"legalForm": "stock_corporation",
"activityScope": null,
"language": "de",
"ownerSurname": null,
"legalSeat": null,
"checkLevel": "basic"
}
Schema of the request body
{
"properties": {
"companyName": {
"type": "string",
"maxLength": 256,
"minLength": 3,
"title": "Companyname",
"description": "The proposed company name to analyze. Prefer providing the base name without legal-form suffix (e.g., 'Legiqo' instead of 'Legiqo GmbH') for best consistency."
},
"legalForm": {
"$ref": "#/components/schemas/SupportedLegalForm",
"description": "Target legal form type (language-neutral). Allowed values: 'stock_corporation' (AG/SA), 'limited_liability' (GmbH/Sàrl/Sagl), 'sole_proprietorship' (Einzelunternehmen)"
},
"activityScope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Activityscope",
"description": "Description of the company's purpose (Zweck)"
},
"language": {
"$ref": "#/components/schemas/Language",
"description": "Language context for validation and response messages."
},
"ownerSurname": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ownersurname",
"description": "Owner surname (required only for sole proprietorship checks). V2 accepts ownerSurname only."
},
"legalSeat": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Legalseat",
"description": "Optional legal seat (municipality/city) used for geographic consistency checks against geographic terms in companyName. Providing this reduces seat-context warnings and improves review quality."
},
"checkLevel": {
"$ref": "#/components/schemas/ComplianceCheckLevel",
"description": "'basic' (Deterministic rules only) or 'full' (Deterministic rules + advanced semantic analysis)",
"default": "full"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"companyName",
"legalForm",
"language"
],
"title": "ComplianceAnalysisV2Request",
"description": "Request body for POST /v2/name/eligibility.\n\nV2 keeps deterministic + semantic checks while supporting additional optional\ncontext fields used for Weisung-aligned warnings/review.",
"examples": [
{
"activityScope": "Legal tech services",
"checkLevel": "full",
"companyName": "Legiqo",
"language": "en",
"legalForm": "limited_liability",
"legalSeat": "Zürich"
}
]
}
Response 200 OK¶
application/json
{
"input": {
"companyName": "string",
"legalForm": "stock_corporation",
"activityScope": null,
"language": "de",
"ownerSurname": null,
"legalSeat": null
},
"overallStatus": "COMPLIANT",
"issues": [
{
"code": "string",
"severity": "CRITICAL",
"message": "string",
"source": "string",
"ruleRef": null
}
],
"semanticEvaluation": null,
"registrableNames": null,
"metadata": null
}
Schema of the response body
{
"properties": {
"input": {
"$ref": "#/components/schemas/ComplianceAnalysisInputEchoV2"
},
"overallStatus": {
"$ref": "#/components/schemas/ComplianceOverallStatus"
},
"issues": {
"items": {
"$ref": "#/components/schemas/ValidationIssueModel"
},
"type": "array",
"title": "Issues"
},
"semanticEvaluation": {
"anyOf": [
{
"$ref": "#/components/schemas/SemanticRegistrationEvaluationV2Model"
},
{
"type": "null"
}
],
"description": "Structured semantic evaluation from the v2 LLM pipeline (full mode only)"
},
"registrableNames": {
"anyOf": [
{
"$ref": "#/components/schemas/RegistrableNamesModel"
},
{
"type": "null"
}
],
"description": "The full registrable company names in all 4 languages (base name + legal form suffix)"
},
"metadata": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Metadata",
"description": "Processing metadata"
}
},
"type": "object",
"required": [
"input",
"overallStatus",
"issues"
],
"title": "ComplianceAnalysisV2Response",
"description": "Response body for v2 compliance analysis."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
POST /v3/name/eligibility¶
Legacy company name eligibility (v3)
Description Deprecated legacy eligibility endpoint exposing classifier-style semantic extraction output.
It extends the legacy flow with multilingual variant support, but does not
provide the decision-oriented experience of `/v1/name/assessment`.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"companyName": "string",
"legalForm": "stock_corporation",
"activityScope": null,
"language": "de",
"ownerSurname": null,
"legalSeat": null,
"languageVariants": [
{
"name": "string",
"lang": null
}
],
"checkLevel": "basic"
}
Schema of the request body
{
"properties": {
"companyName": {
"type": "string",
"maxLength": 256,
"minLength": 3,
"title": "Companyname",
"description": "The proposed company name to analyze. Prefer providing the base name without legal-form suffix (e.g., 'Legiqo' instead of 'Legiqo GmbH') for best consistency."
},
"legalForm": {
"$ref": "#/components/schemas/SupportedLegalForm",
"description": "Target legal form type (language-neutral). Allowed values: 'stock_corporation' (AG/SA), 'limited_liability' (GmbH/Sarl/Sagl), 'sole_proprietorship' (Einzelunternehmen)"
},
"activityScope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Activityscope",
"description": "Description of the company's purpose (Zweck)"
},
"language": {
"$ref": "#/components/schemas/Language",
"description": "Primary language context for name interpretation. Human-readable `message` fields are English fallback copy; clients should render localized UI text from stable codes."
},
"ownerSurname": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ownersurname",
"description": "Owner surname (required only for sole proprietorship checks)."
},
"legalSeat": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Legalseat",
"description": "Optional legal seat (municipality/city) for geographic checks."
},
"languageVariants": {
"items": {
"$ref": "#/components/schemas/LanguageVariantV3Model"
},
"type": "array",
"title": "Languagevariants",
"description": "Optional intended multilingual register variants to evaluate content consistency (Weisung 2.1.3.2)."
},
"checkLevel": {
"$ref": "#/components/schemas/ComplianceCheckLevel",
"description": "'basic' (Deterministic rules only) or 'full' (Deterministic rules + advanced semantic analysis)",
"default": "full"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"companyName",
"legalForm",
"language"
],
"title": "ComplianceAnalysisV3Request",
"description": "Request body for POST /v3/name/eligibility.\n\nV3 keeps v2 deterministic context and adds optional languageVariants so the\nclassifier can check multilingual consistency explicitly.",
"examples": [
{
"activityScope": "Manufacture and sale of watches",
"checkLevel": "full",
"companyName": "IED Uhrenfabrik AG",
"language": "de",
"languageVariants": [
{
"lang": "de",
"name": "IED Uhrenfabrik AG"
},
{
"lang": "en",
"name": "IED Watch Ltd"
}
],
"legalForm": "stock_corporation",
"legalSeat": "Zurich"
}
]
}
Response 200 OK¶
application/json
{
"input": {
"companyName": "string",
"legalForm": "stock_corporation",
"activityScope": null,
"language": "de",
"ownerSurname": null,
"legalSeat": null,
"languageVariants": [
{
"name": "string",
"lang": null
}
]
},
"findings": [
{
"code": "string",
"severity": "CRITICAL",
"message": "string",
"source": "string",
"ruleRef": null
}
],
"semanticEvaluation": null,
"registrableNames": null,
"metadata": null
}
Schema of the response body
{
"properties": {
"input": {
"$ref": "#/components/schemas/ComplianceAnalysisInputEchoV3"
},
"findings": {
"items": {
"$ref": "#/components/schemas/ValidationIssueModel"
},
"type": "array",
"title": "Findings",
"description": "Deterministic findings returned by the endpoint. V3 semantic extraction is exposed separately in semanticEvaluation."
},
"semanticEvaluation": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Semanticevaluation",
"description": "Structured semantic extraction payload from the v3 classifier (full mode only)"
},
"registrableNames": {
"anyOf": [
{
"$ref": "#/components/schemas/RegistrableNamesModel"
},
{
"type": "null"
}
],
"description": "The full registrable company names in all 4 languages (base name + legal form suffix)"
},
"metadata": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Metadata",
"description": "Processing metadata"
}
},
"type": "object",
"required": [
"input",
"findings"
],
"title": "ComplianceAnalysisV3Response",
"description": "Response body for v3 compliance analysis."
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
Assessment¶
POST /v1/name/assessment¶
Assess one company name
Description Primary decision endpoint for evaluating one proposed Swiss company name.
It combines deterministic EHRA-oriented checks, optional semantic
extraction,
and a configurable risk profile to produce a business-facing
overallStatus.
Use this endpoint for new integrations that want a single assessment outcome
rather than raw sub-check results.
Important response semantics:
- HTTP 200 means the assessment executed successfully
- `overallStatus` carries the main registration-oriented outcome
- `issues[]` and `semanticEvaluation` explain the outcome
- `traceId` and `X-Trace-Id` support trace lookup and support workflows
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"companyName": "string",
"legalForm": "stock_corporation",
"activityScope": null,
"language": "de",
"ownerSurname": null,
"legalSeat": null,
"languageVariants": [
{
"name": "string",
"lang": null
}
],
"checkLevel": "basic",
"riskProfile": "balanced"
}
Schema of the request body
{
"properties": {
"companyName": {
"type": "string",
"maxLength": 256,
"minLength": 3,
"title": "Companyname",
"description": "The proposed company name to analyze. For assessment, provide the full primary name including legal-form suffix (e.g., 'Legiqo GmbH') and keep it consistent with `legalForm`."
},
"legalForm": {
"$ref": "#/components/schemas/SupportedLegalForm",
"description": "Target legal form type (language-neutral). Allowed values: 'stock_corporation' (AG/SA), 'limited_liability' (GmbH/Sarl/Sagl), 'sole_proprietorship' (Einzelunternehmen)"
},
"activityScope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Activityscope",
"description": "Description of the company's purpose (Zweck)"
},
"language": {
"$ref": "#/components/schemas/Language",
"description": "Primary language context for deterministic checks/messages."
},
"ownerSurname": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ownersurname",
"description": "Owner surname (required only for sole proprietorship checks)."
},
"legalSeat": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Legalseat",
"description": "Optional legal seat (municipality/city) for geographic checks."
},
"languageVariants": {
"items": {
"$ref": "#/components/schemas/LanguageVariantV3Model"
},
"type": "array",
"title": "Languagevariants",
"description": "Optional intended multilingual register variants to evaluate content consistency."
},
"checkLevel": {
"$ref": "#/components/schemas/ComplianceCheckLevel",
"description": "'basic' (Deterministic checks only) or 'full' (Deterministic checks + semantic extraction)",
"default": "full"
},
"riskProfile": {
"$ref": "#/components/schemas/RiskProfile",
"description": "Static risk profile used for mapping flags to final status.",
"default": "balanced"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"companyName",
"legalForm",
"language"
],
"title": "CompanyNameAssessmentRequest",
"description": "Request body for POST /v1/name/assessment.",
"examples": [
{
"activityScope": "Manufacture and sale of watches",
"checkLevel": "full",
"companyName": "IED Uhrenfabrik AG",
"language": "de",
"languageVariants": [
{
"lang": "de",
"name": "IED Uhrenfabrik AG"
},
{
"lang": "en",
"name": "IED Watch Ltd"
}
],
"legalForm": "stock_corporation",
"legalSeat": "Zurich",
"riskProfile": "balanced"
}
]
}
Response 200 OK¶
application/json
{
"companyName": "string",
"overallStatus": "CLEAR_TO_FILE",
"riskProfileApplied": "balanced",
"issues": [
{
"code": "string",
"severity": "INFO",
"category": "SYNTAX",
"message": "string"
}
],
"semanticSignals": null,
"semanticFailOpen": null,
"traceId": null
}
Schema of the response body
{
"properties": {
"companyName": {
"type": "string",
"title": "Companyname",
"description": "Original company name that was evaluated"
},
"overallStatus": {
"$ref": "#/components/schemas/AssessmentStatus",
"description": "Final filing-oriented outcome after risk-profile mapping"
},
"riskProfileApplied": {
"$ref": "#/components/schemas/RiskProfile",
"description": "Risk profile that mapped surfaced issues to the final outcome"
},
"issues": {
"items": {
"$ref": "#/components/schemas/NameIssueModel"
},
"type": "array",
"title": "Issues",
"description": "Triggered machine-readable issues for deterministic client handling"
},
"semanticSignals": {
"anyOf": [
{
"$ref": "#/components/schemas/SemanticSignalsModel"
},
{
"type": "null"
}
],
"description": "Structured semantic signals from the optional full pipeline"
},
"semanticFailOpen": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Semanticfailopen",
"description": "True when semantic execution was requested but unavailable"
},
"traceId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Traceid",
"description": "Support and audit correlation identifier"
}
},
"type": "object",
"required": [
"companyName",
"overallStatus",
"riskProfileApplied",
"issues"
],
"title": "CompanyNameDecisionResponse",
"description": "Decision-oriented response body for POST /v1/name/assessment.",
"examples": [
{
"companyName": "Legiqo GmbH",
"issues": [],
"overallStatus": "CLEAR_TO_FILE",
"riskProfileApplied": "balanced",
"semanticFailOpen": false,
"semanticSignals": {
"containsGeographicTerm": false,
"impliedActivities": [],
"isPurelyDescriptive": false
},
"traceId": "trc_f8bfb7db8e4848fabc0b2b2dfeb7fe48"
},
{
"companyName": "Kaufhaus AG",
"issues": [
{
"category": "SEMANTIC",
"code": "WARN_PURELY_DESCRIPTIVE",
"message": "The name appears purely descriptive and may lack distinctiveness.",
"severity": "WARNING"
}
],
"overallStatus": "MANUAL_REVIEW_ADVISED",
"riskProfileApplied": "balanced",
"semanticFailOpen": false,
"semanticSignals": {
"impliedActivities": [
"Retail"
],
"isPurelyDescriptive": true
},
"traceId": "trc_88fe2ab77c67438e8c7a4ca886ab1652"
},
{
"companyName": "Swiss Bank Consulting GmbH",
"issues": [
{
"category": "REGULATORY",
"code": "WARN_FINMA_LICENSE_REQUIRED",
"message": "Regulated financial terms suggest FINMA authorization may be required.",
"severity": "ERROR"
}
],
"overallStatus": "REGISTRY_REJECTION_LIKELY",
"riskProfileApplied": "balanced",
"semanticFailOpen": false,
"semanticSignals": {
"impliedInvestmentOrBankingActivity": true
},
"traceId": "trc_3c7d870bb27a4f75986fbca863f0591c"
}
]
}
| Name | Description | Schema |
|---|---|---|
| X-Trace-Id | Correlation id for this request. | string |
| X-RateLimit-Limit | Request limit for current window. | string |
| X-RateLimit-Remaining | Remaining requests in current window. | string |
| X-RateLimit-Reset | Unix timestamp when current window resets. | string |
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
| Name | Description | Schema |
|---|---|---|
| Retry-After | Seconds to wait before retrying. | string |
| X-RateLimit-Limit | Request limit for current window. | string |
| X-RateLimit-Remaining | Always 0 when rate-limited. | string |
| X-RateLimit-Reset | Unix timestamp when current window resets. | string |
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
Screening¶
GET /v1/name/screening/catalog¶
Get screening response catalog
Description
Return the stable codes, enum values, and English fallback descriptions used by
/v1/name/screening. Clients should use these codes as UI copy keys.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Response 200 OK¶
application/json
{
"assessmentIssueCodes": [
{
"code": "string",
"severity": "INFO",
"category": "SYNTAX",
"message": "string"
}
],
"assessmentIssueSeverities": null,
"assessmentIssueCategories": null,
"overallStatuses": [
"CLEAR_TO_FILE"
],
"resultStates": [
"COMPLETE"
],
"nextActions": [
"PROCEED"
],
"driverSources": [
"assessment"
],
"driverCodes": [
{
"code": "ASSESSMENT_WARNING_FLAGS",
"source": null,
"defaultSeverity": "info",
"message": "string"
}
],
"driverSeverities": null,
"checkStates": [
"completed"
],
"riskLevels": [
"High"
],
"errorCodes": [
"VALIDATION_ERROR"
]
}
Schema of the response body
{
"properties": {
"assessmentIssueCodes": {
"items": {
"$ref": "#/components/schemas/ScreeningAssessmentIssueCatalogItem"
},
"type": "array",
"title": "Assessmentissuecodes"
},
"assessmentIssueSeverities": {
"items": {
"$ref": "#/components/schemas/FlagSeverity"
},
"type": "array",
"title": "Assessmentissueseverities"
},
"assessmentIssueCategories": {
"items": {
"$ref": "#/components/schemas/FlagCategory"
},
"type": "array",
"title": "Assessmentissuecategories"
},
"overallStatuses": {
"items": {
"$ref": "#/components/schemas/AssessmentStatus"
},
"type": "array",
"title": "Overallstatuses"
},
"resultStates": {
"items": {
"$ref": "#/components/schemas/ScreeningResultState"
},
"type": "array",
"title": "Resultstates"
},
"nextActions": {
"items": {
"$ref": "#/components/schemas/ScreeningNextAction"
},
"type": "array",
"title": "Nextactions"
},
"driverSources": {
"items": {
"$ref": "#/components/schemas/ScreeningDriverSource"
},
"type": "array",
"title": "Driversources"
},
"driverCodes": {
"items": {
"$ref": "#/components/schemas/ScreeningDriverCatalogItem"
},
"type": "array",
"title": "Drivercodes"
},
"driverSeverities": {
"items": {
"$ref": "#/components/schemas/ScreeningDriverSeverity"
},
"type": "array",
"title": "Driverseverities"
},
"checkStates": {
"items": {
"$ref": "#/components/schemas/ScreeningCheckStatus"
},
"type": "array",
"title": "Checkstates"
},
"riskLevels": {
"items": {
"$ref": "#/components/schemas/RiskLevelParam"
},
"type": "array",
"title": "Risklevels"
},
"errorCodes": {
"items": {
"$ref": "#/components/schemas/ErrorCode"
},
"type": "array",
"title": "Errorcodes"
}
},
"type": "object",
"required": [
"assessmentIssueCodes",
"assessmentIssueSeverities",
"assessmentIssueCategories",
"overallStatuses",
"resultStates",
"nextActions",
"driverSources",
"driverCodes",
"driverSeverities",
"checkStates",
"riskLevels",
"errorCodes"
],
"title": "ScreeningResponseCatalogModel",
"description": "Runtime catalog of stable values used by POST /v1/name/screening.",
"examples": [
{
"assessmentIssueCategories": [
"SYNTAX",
"LEGAL_FORM",
"GEOGRAPHIC",
"TRANSLATION",
"SEMANTIC",
"REGULATORY"
],
"assessmentIssueCodes": [
{
"category": "LEGAL_FORM",
"code": "ERR_MISSING_LEGAL_FORM",
"message": "The legal form is missing or not recognizable in the primary name.",
"severity": "ERROR"
}
],
"assessmentIssueSeverities": [
"INFO",
"WARNING",
"ERROR"
],
"checkStates": [
"completed",
"failed",
"not_requested"
],
"driverCodes": [
{
"code": "ASSESSMENT_BLOCKING_FLAGS",
"defaultSeverity": "block",
"message": "Assessment blocking flags contributed to the screening result.",
"source": "assessment"
}
],
"driverSeverities": [
"info",
"warning",
"review",
"block"
],
"driverSources": [
"assessment",
"conflicts"
],
"errorCodes": [
"VALIDATION_ERROR",
"UPSTREAM_TIMEOUT"
],
"nextActions": [
"PROCEED",
"ROUTE_TO_MANUAL_REVIEW"
],
"overallStatuses": [
"CLEAR_TO_FILE",
"MANUAL_REVIEW_ADVISED"
],
"resultStates": [
"COMPLETE",
"PARTIAL"
],
"riskLevels": [
"High",
"Medium",
"Low"
]
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
POST /v1/name/screening¶
Run bundled company name screening
Description Bundled orchestration endpoint for integrations that want multiple screening signals for the same proposed company name in one request.
Default bundle:
- company name assessment
- company conflict search
- trademark search
Optional bundle:
- domain availability checks (explicit label + TLDs required)
Read the response as follows:
- `overallStatus` is the primary business outcome
- `resultState=PARTIAL` means one or more requested checks failed
- `drivers[]` highlights the factors that most influenced the result
- `details` contains compact per-check output for completed checks
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
Request body
application/json
{
"companyName": "string",
"legalForm": "stock_corporation",
"activityScope": null,
"language": "de",
"ownerSurname": null,
"legalSeat": null,
"languageVariants": [
{
"name": "string",
"lang": null
}
],
"checkLevel": "basic",
"riskProfile": "balanced",
"checks": {
"ehraCompliance": {
"enabled": true
},
"conflicts": {
"enabled": true,
"limit": 0,
"minRisk": "High"
},
"trademarks": {
"enabled": true,
"limit": 0,
"minRisk": null,
"niceClasses": null
},
"domains": {
"enabled": true,
"label": null,
"tlds": null
}
}
}
Schema of the request body
{
"properties": {
"companyName": {
"type": "string",
"maxLength": 256,
"minLength": 3,
"title": "Companyname",
"description": "The proposed company name to analyze. For assessment, provide the full primary name including legal-form suffix (e.g., 'Legiqo GmbH') and keep it consistent with `legalForm`."
},
"legalForm": {
"$ref": "#/components/schemas/SupportedLegalForm",
"description": "Target legal form type (language-neutral). Allowed values: 'stock_corporation' (AG/SA), 'limited_liability' (GmbH/Sarl/Sagl), 'sole_proprietorship' (Einzelunternehmen)"
},
"activityScope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Activityscope",
"description": "Description of the company's purpose (Zweck)"
},
"language": {
"$ref": "#/components/schemas/Language",
"description": "Primary language context for deterministic checks/messages."
},
"ownerSurname": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ownersurname",
"description": "Owner surname (required only for sole proprietorship checks)."
},
"legalSeat": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Legalseat",
"description": "Optional legal seat (municipality/city) for geographic checks."
},
"languageVariants": {
"items": {
"$ref": "#/components/schemas/LanguageVariantV3Model"
},
"type": "array",
"title": "Languagevariants",
"description": "Optional intended multilingual register variants to evaluate content consistency."
},
"checkLevel": {
"$ref": "#/components/schemas/ComplianceCheckLevel",
"description": "'basic' (Deterministic checks only) or 'full' (Deterministic checks + semantic extraction)",
"default": "full"
},
"riskProfile": {
"$ref": "#/components/schemas/RiskProfile",
"description": "Static risk profile used for mapping flags to final status.",
"default": "balanced"
},
"checks": {
"$ref": "#/components/schemas/CompanyNameScreeningChecksRequest",
"description": "Optional overrides for which screening checks run. If omitted, the default bundle is assessment + conflicts + trademarks, with domains disabled."
}
},
"additionalProperties": false,
"type": "object",
"required": [
"companyName",
"legalForm",
"language"
],
"title": "CompanyNameScreeningRequest",
"description": "Request body for POST /v1/name/screening.",
"examples": [
{
"activityScope": "Software consulting",
"checkLevel": "full",
"checks": {
"conflicts": {
"enabled": true,
"limit": 25,
"minRisk": "Low"
},
"domains": {
"enabled": false
},
"ehraCompliance": {
"enabled": true
},
"trademarks": {
"enabled": true,
"limit": 20,
"minRisk": "Low",
"niceClasses": [
35,
42
]
}
},
"companyName": "Legiqo GmbH",
"language": "de",
"languageVariants": [],
"legalForm": "limited_liability",
"legalSeat": "Zurich",
"riskProfile": "balanced"
}
]
}
Response 200 OK¶
application/json
{
"overallStatus": "CLEAR_TO_FILE",
"resultState": "COMPLETE",
"nextAction": "PROCEED",
"drivers": [
{
"source": "assessment",
"code": "ASSESSMENT_WARNING_FLAGS",
"severity": "info"
}
],
"primaryConcern": null,
"checkStates": {
"ehraCompliance": "completed",
"conflicts": null,
"trademarks": null,
"domains": null
},
"executionIssues": [
{
"check": "string",
"code": "string",
"message": "string",
"retryable": null
}
],
"details": {
"ehraCompliance": null,
"conflicts": null,
"trademarks": null,
"domains": null
},
"traceId": "string"
}
Schema of the response body
{
"properties": {
"overallStatus": {
"$ref": "#/components/schemas/AssessmentStatus",
"description": "Top-level filing-oriented decision for the requested screening bundle"
},
"resultState": {
"$ref": "#/components/schemas/ScreeningResultState",
"description": "Whether all requested checks completed successfully"
},
"nextAction": {
"$ref": "#/components/schemas/ScreeningNextAction",
"description": "Recommended downstream workflow action for integrators"
},
"drivers": {
"items": {
"$ref": "#/components/schemas/ScreeningDriverModel"
},
"type": "array",
"title": "Drivers",
"description": "Machine-readable reasons that materially contributed to the outcome"
},
"primaryConcern": {
"anyOf": [
{
"$ref": "#/components/schemas/ScreeningPrimaryConcernModel"
},
{
"type": "null"
}
],
"description": "Single strongest issue to display prominently in simple workflows"
},
"checkStates": {
"$ref": "#/components/schemas/ScreeningCheckStatesModel",
"description": "Execution state for each screening sub-check"
},
"executionIssues": {
"items": {
"$ref": "#/components/schemas/ScreeningExecutionIssueModel"
},
"type": "array",
"title": "Executionissues",
"description": "Per-check execution failures for requested checks that did not complete"
},
"details": {
"$ref": "#/components/schemas/ScreeningDetailsModel",
"description": "Compact details for successfully completed checks"
},
"traceId": {
"type": "string",
"title": "Traceid",
"description": "Support and audit correlation identifier"
}
},
"type": "object",
"required": [
"overallStatus",
"resultState",
"nextAction",
"checkStates",
"details",
"traceId"
],
"title": "CompanyNameScreeningResponse",
"description": "Response body for POST /v1/name/screening.",
"examples": [
{
"checkStates": {
"conflicts": "completed",
"domains": "not_requested",
"ehraCompliance": "completed",
"trademarks": "completed"
},
"details": {
"conflicts": {
"hasMoreMatches": true,
"highestRisk": "Low",
"identityMatchFound": false,
"matchCountsByRisk": {
"high": 0,
"low": 2,
"medium": 0
},
"similarMatchCount": 2,
"topMatches": []
},
"ehraCompliance": {
"issues": [],
"semanticFailOpen": false
},
"trademarks": {
"goodsServicesContextApplied": true,
"hasMoreMatches": false,
"highestRisk": "High",
"matchCountsByRisk": {
"high": 1,
"low": 0,
"medium": 0
},
"similarMatchCount": 1,
"topMatches": []
}
},
"drivers": [
{
"code": "TRADEMARK_MATCHES",
"severity": "review",
"source": "trademarks"
}
],
"executionIssues": [],
"nextAction": "ROUTE_TO_MANUAL_REVIEW",
"overallStatus": "MANUAL_REVIEW_ADVISED",
"primaryConcern": {
"code": "TRADEMARK_MATCHES",
"label": "LEGIC",
"referenceId": "600643",
"risk": "High",
"severity": "review",
"source": "trademarks"
},
"resultState": "COMPLETE",
"traceId": "trc_screening_example"
}
]
}
Response 400 Bad Request¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Registry Lookup¶
GET /v1/company/{source_company_id}¶
Get company record by source ID
Description Look up one stored company record by source company ID, for example a CHE identifier returned from conflict search results.
The response includes the main company fields plus all stored name variants.
Authentication is required.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
| source_company_id | path | string | No |
Response 200 OK¶
application/json
{
"source_company_id": "string",
"source_system": "string",
"name_display": "string",
"name_norm": "string",
"legal_seat": null,
"legal_form": null,
"chid": null,
"ehraid": null,
"is_deleted": true,
"name_variants": [
{
"name_raw": "string",
"name_kind": "string",
"lang": "string",
"is_primary": true
}
]
}
Schema of the response body
{
"properties": {
"source_company_id": {
"type": "string",
"title": "Source Company Id",
"description": "Unique identifier (e.g., CHE number)"
},
"source_system": {
"type": "string",
"title": "Source System",
"description": "Source system identifier"
},
"name_display": {
"type": "string",
"title": "Name Display",
"description": "Display name"
},
"name_norm": {
"type": "string",
"title": "Name Norm",
"description": "Normalized name"
},
"legal_seat": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Legal Seat",
"description": "Municipality where company is registered"
},
"legal_form": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Legal Form",
"description": "Legal form (e.g., AG, GmbH)"
},
"chid": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Chid",
"description": "CH identification number"
},
"ehraid": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ehraid",
"description": "EHRA ID"
},
"is_deleted": {
"type": "boolean",
"title": "Is Deleted",
"description": "Whether company is soft-deleted"
},
"name_variants": {
"items": {
"$ref": "#/components/schemas/CompanyNameVariant"
},
"type": "array",
"title": "Name Variants",
"description": "All name variants for this company"
}
},
"type": "object",
"required": [
"source_company_id",
"source_system",
"name_display",
"name_norm",
"legal_seat",
"legal_form",
"chid",
"ehraid",
"is_deleted",
"name_variants"
],
"title": "CompanyDetail",
"description": "Detailed company information for lookup endpoint.",
"examples": [
{
"chid": "CHE-101.835.433",
"ehraid": "12345",
"is_deleted": false,
"legal_form": "AG",
"legal_seat": "Zürich",
"name_display": "Müller & Söhne AG",
"name_norm": "mueller soehne",
"name_variants": [
{
"is_primary": true,
"lang": "de",
"name_kind": "legal",
"name_raw": "Müller & Söhne AG"
}
],
"source_company_id": "CHE101835433",
"source_system": "zefix_linda"
}
]
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 404 Not Found¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
Trademark Lookup¶
GET /v1/trademarks/{source_record_id}¶
Get trademark record by source ID
Description Look up one stored trademark record by source record ID.
The response includes the main trademark metadata plus Nice classes, Vienna
classifications, and stored party records.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
| ClientApiKeyAuth | header | string | N/A | No | Client API key for public endpoints. |
| source_record_id | path | string | No |
Response 200 OK¶
application/json
{
"sourceRecordId": "string",
"sourceSystem": "string",
"registrationOfficeCode": null,
"applicationNumber": null,
"registrationNumber": null,
"applicationDate": null,
"registrationDate": null,
"expiryDate": null,
"status": null,
"markCategory": null,
"markFeatureCategory": null,
"wordmark": "string",
"wordmarkNorm": "string",
"colorClaimed": null,
"niceClasses": [
0
],
"viennaClassifications": [
{
"category": null,
"division": null,
"section": null
}
],
"parties": [
{
"role": "string",
"fullName": null,
"legalEntityName": null,
"countryCode": null,
"addressLines": [
"string"
]
}
],
"isDeleted": true
}
Schema of the response body
{
"properties": {
"sourceRecordId": {
"type": "string",
"title": "Sourcerecordid"
},
"sourceSystem": {
"type": "string",
"title": "Sourcesystem"
},
"registrationOfficeCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Registrationofficecode"
},
"applicationNumber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Applicationnumber"
},
"registrationNumber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Registrationnumber"
},
"applicationDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Applicationdate"
},
"registrationDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Registrationdate"
},
"expiryDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Expirydate"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Status"
},
"markCategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Markcategory"
},
"markFeatureCategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Markfeaturecategory"
},
"wordmark": {
"type": "string",
"title": "Wordmark"
},
"wordmarkNorm": {
"type": "string",
"title": "Wordmarknorm"
},
"colorClaimed": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Colorclaimed"
},
"niceClasses": {
"items": {
"type": "integer"
},
"type": "array",
"title": "Niceclasses"
},
"viennaClassifications": {
"items": {
"$ref": "#/components/schemas/TrademarkViennaClassificationModel"
},
"type": "array",
"title": "Viennaclassifications"
},
"parties": {
"items": {
"$ref": "#/components/schemas/TrademarkPartyDetailModel"
},
"type": "array",
"title": "Parties"
},
"isDeleted": {
"type": "boolean",
"title": "Isdeleted"
}
},
"type": "object",
"required": [
"sourceRecordId",
"sourceSystem",
"wordmark",
"wordmarkNorm",
"isDeleted"
],
"title": "TrademarkDetailResponse",
"description": "Detailed trademark record for GET /v1/trademarks/{sourceRecordId}."
}
Response 401 Unauthorized¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 404 Not Found¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 429 Too Many Requests¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 500 Internal Server Error¶
application/json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "string",
"details": null
}
}
Schema of the response body
{
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorDetail",
"description": "Error information"
}
},
"type": "object",
"required": [
"error"
],
"title": "ErrorResponse",
"description": "Wrapper for error responses.",
"examples": [
{
"error": {
"code": "VALIDATION_ERROR",
"details": {
"field": "name",
"nameNorm": "ab"
},
"message": "name is too short after normalization"
}
}
]
}
Response 422 Unprocessable Entity¶
application/json
{
"detail": [
{
"loc": [
null
],
"msg": "string",
"type": "string"
}
]
}
Schema of the response body
{
"properties": {
"detail": {
"items": {
"$ref": "#/components/schemas/ValidationError"
},
"type": "array",
"title": "Detail"
}
},
"type": "object",
"title": "HTTPValidationError"
}
Schemas¶
AdminBreakdownItemModel¶
| Name | Type |
|---|---|
| count | integer |
| value | string |
AdminCompanyDataStatsResponse¶
| Name | Type |
|---|---|
| activeCompanies | integer |
| companiesWithTradeNames | integer |
| deletedCompanies | integer |
| distinctLegalSeats | integer |
| generatedAt | string |
| lastSync | |
| latestSourceUpdateAt | |
| latestStoredUpdateAt | |
| nameLanguageBreakdown | Array<AdminBreakdownItemModel> |
| topLegalForms | Array<AdminBreakdownItemModel> |
| totalCompanies | integer |
| totalCompanyNames | integer |
| totalLegalNames | integer |
| totalTradeNames | integer |
AdminDashboardResponse¶
| Name | Type |
|---|---|
| companies | AdminDatasetOverviewModel |
| generatedAt | string |
| searchOverview | SearchMetricsOverviewResponse |
| topConsumers | Array<SearchConsumerMetricsModel> |
| topSearchTerms | Array<SearchTopTermModel> |
| trademarks | AdminDatasetOverviewModel |
AdminDataOverviewResponse¶
| Name | Type |
|---|---|
| companies | AdminDatasetOverviewModel |
| generatedAt | string |
| trademarks | AdminDatasetOverviewModel |
AdminDatasetOverviewModel¶
| Name | Type |
|---|---|
| activeEntries | integer |
| deletedEntries | integer |
| lastSync | |
| latestSourceUpdateAt | |
| latestStoredUpdateAt | |
| totalEntries | integer |
AdminDatasetSyncRunModel¶
| Name | Type |
|---|---|
| durationSeconds | |
| finishedAt | |
| id | integer |
| mode | string |
| rowsFailed | integer |
| rowsUpserted | integer |
| startedAt | string |
| status |
AdminTrademarkDataStatsResponse¶
| Name | Type |
|---|---|
| activeTrademarks | integer |
| categoryBreakdown | Array<AdminBreakdownItemModel> |
| deletedTrademarks | integer |
| generatedAt | string |
| lastSync | |
| latestStoredUpdateAt | |
| latestVersionAt | |
| statusBreakdown | Array<AdminBreakdownItemModel> |
| totalNiceClassAssignments | integer |
| totalPartyRecords | integer |
| totalTrademarks | integer |
| totalViennaClassifications | integer |
| trademarksWithoutVerbalElement | integer |
| trademarksWithVerbalElement | integer |
ApiConsumerCreateRequest¶
| Name | Type |
|---|---|
| contactEmail | |
| description | |
| name | string |
ApiConsumerModel¶
| Name | Type |
|---|---|
| code | string |
| contactEmail | |
| createdAt | string |
| description | |
| id | integer |
| isActive | boolean |
| name | string |
| updatedAt | string |
ApiConsumerUpdateRequest¶
| Name | Type |
|---|---|
| contactEmail | |
| description | |
| isActive | |
| name |
ApiKeyCreateRequest¶
| Name | Type |
|---|---|
| allowNonExpiring | boolean |
| consumerId | integer |
| createdBy | |
| description | |
| displayName | |
| expiresAt |
ApiKeyCreateResponse¶
| Name | Type |
|---|---|
| apiKey | string |
| key | ApiKeyModel |
ApiKeyListResponse¶
| Name | Type |
|---|---|
| items | Array<ApiKeyModel> |
| limit | integer |
| offset | integer |
| total | integer |
ApiKeyModel¶
| Name | Type |
|---|---|
| consumerCode | string |
| consumerId | integer |
| createdAt | string |
| createdBy | |
| description | |
| displayName | |
| expiresAt | |
| id | integer |
| isActive | boolean |
| keyLast4 | string |
| keyPrefix | string |
| lastUsedAt | |
| revokedAt | |
| updatedAt | string |
AssessmentCheckCatalogItemModel¶
| Name | Type |
|---|---|
| checkVersion | string |
| legalBasis | Array<string> |
| parentStepIds | Array<string> |
| possibleOutcomes | Array<string> |
| resultingFlagCode | |
| sequence | integer |
| sourceType | string |
| stage | string |
| stepId | string |
| title | string |
| whatItDoes | string |
AssessmentCheckStepModel¶
| Name | Type |
|---|---|
| applicable | boolean |
| checkVersion | string |
| confidence | |
| inputSnapshot | |
| legalBasis | Array<string> |
| outcome | string |
| outputSnapshot | |
| parentStepIds | Array<string> |
| resultingFlagCode | |
| sequence | integer |
| sourceType | string |
| stage | string |
| stepId | string |
| title | string |
| triggered | boolean |
| whatItDoes | string |
AssessmentDeterministicCheckModel¶
| Name | Type |
|---|---|
| checkId | string |
| evidence | |
| reason | string |
| triggered | boolean |
AssessmentExplanationModel¶
| Name | Type |
|---|---|
| allChecks | Array<AssessmentCheckStepModel> |
| decisionPath | Array<string> |
| deterministicChecks | Array<AssessmentDeterministicCheckModel> |
| finalRationale | string |
| ruleEngineMapping | Array<AssessmentRuleEngineMappingModel> |
| semanticChecks | Array<AssessmentSemanticCheckModel> |
AssessmentRuleEngineMappingModel¶
| Name | Type |
|---|---|
| category | FlagCategory |
| code | string |
| contributesToOverallStatus | boolean |
| profileSeverity | FlagSeverity |
| reason | string |
AssessmentSemanticCheckModel¶
| Name | Type |
|---|---|
| checkId | string |
| evidence | |
| reason | string |
| triggered | boolean |
| value |
AssessmentStatus¶
Type: string
AssessmentTraceCompareRequest¶
| Name | Type |
|---|---|
| traceIdA | string |
| traceIdB | string |
AssessmentTraceCompareResponse¶
| Name | Type |
|---|---|
| changedChecks | Array<AssessmentTraceDiffCheckModel> |
| decisiveChecksA | Array<string> |
| decisiveChecksB | Array<string> |
| overallStatusA | |
| overallStatusB | |
| traceIdA | string |
| traceIdB | string |
AssessmentTraceDetailResponse¶
| Name | Type |
|---|---|
| createdAt | string |
| endpoint | string |
| explanation | |
| response | CompanyNameDecisionResponse |
| statusCode | integer |
| traceId | string |
AssessmentTraceDiffCheckModel¶
| Name | Type |
|---|---|
| outcomeA | string |
| outcomeB | string |
| stepId | string |
| triggeredA | boolean |
| triggeredB | boolean |
AssessmentTraceListItemModel¶
| Name | Type |
|---|---|
| companyName | |
| createdAt | string |
| decisiveChecks | Array<string> |
| durationMs | |
| overallStatus | |
| riskProfile | |
| statusCode | integer |
| traceId | string |
| triggeredCount | integer |
AssessmentTraceListResponse¶
| Name | Type |
|---|---|
| items | Array<AssessmentTraceListItemModel> |
| limit | integer |
| offset | integer |
| total | integer |
CompanyDetail¶
| Name | Type |
|---|---|
| chid | |
| ehraid | |
| is_deleted | boolean |
| legal_form | |
| legal_seat | |
| name_display | string |
| name_norm | string |
| name_variants | Array<CompanyNameVariant> |
| source_company_id | string |
| source_system | string |
CompanyNameAssessmentRequest¶
| Name | Type |
|---|---|
| activityScope | |
| checkLevel | ComplianceCheckLevel |
| companyName | string |
| language | Language |
| languageVariants | Array<LanguageVariantV3Model> |
| legalForm | SupportedLegalForm |
| legalSeat | |
| ownerSurname | |
| riskProfile | RiskProfile |
CompanyNameDecisionResponse¶
| Name | Type |
|---|---|
| companyName | string |
| issues | Array<NameIssueModel> |
| overallStatus | AssessmentStatus |
| riskProfileApplied | RiskProfile |
| semanticFailOpen | |
| semanticSignals | |
| traceId |
CompanyNameScreeningChecksRequest¶
| Name | Type |
|---|---|
| conflicts | ScreeningConflictsOptions |
| domains | ScreeningDomainsOptions |
| ehraCompliance | ScreeningEhraComplianceOptions |
| trademarks | ScreeningTrademarksOptions |
CompanyNameScreeningRequest¶
| Name | Type |
|---|---|
| activityScope | |
| checkLevel | ComplianceCheckLevel |
| checks | CompanyNameScreeningChecksRequest |
| companyName | string |
| language | Language |
| languageVariants | Array<LanguageVariantV3Model> |
| legalForm | SupportedLegalForm |
| legalSeat | |
| ownerSurname | |
| riskProfile | RiskProfile |
CompanyNameScreeningResponse¶
| Name | Type |
|---|---|
| checkStates | ScreeningCheckStatesModel |
| details | ScreeningDetailsModel |
| drivers | Array<ScreeningDriverModel> |
| executionIssues | Array<ScreeningExecutionIssueModel> |
| nextAction | ScreeningNextAction |
| overallStatus | AssessmentStatus |
| primaryConcern | |
| resultState | ScreeningResultState |
| traceId | string |
CompanyNameVariant¶
| Name | Type |
|---|---|
| is_primary | boolean |
| lang | string |
| name_kind | string |
| name_raw | string |
ComplianceAnalysisInputEcho¶
| Name | Type |
|---|---|
| activityScope | |
| companyName | string |
| language | Language |
| legalForm | SupportedLegalForm |
| ownerFullName |
ComplianceAnalysisInputEchoV2¶
| Name | Type |
|---|---|
| activityScope | |
| companyName | string |
| language | Language |
| legalForm | SupportedLegalForm |
| legalSeat | |
| ownerSurname |
ComplianceAnalysisInputEchoV3¶
| Name | Type |
|---|---|
| activityScope | |
| companyName | string |
| language | Language |
| languageVariants | Array<LanguageVariantV3Model> |
| legalForm | SupportedLegalForm |
| legalSeat | |
| ownerSurname |
ComplianceAnalysisRequest¶
| Name | Type |
|---|---|
| activityScope | |
| checkLevel | ComplianceCheckLevel |
| companyName | string |
| language | Language |
| legalForm | SupportedLegalForm |
| ownerFullName |
ComplianceAnalysisResponse¶
| Name | Type |
|---|---|
| input | ComplianceAnalysisInputEcho |
| issues | Array<ValidationIssueModel> |
| metadata | |
| overallStatus | ComplianceOverallStatus |
| registrableNames |
ComplianceAnalysisV2Request¶
| Name | Type |
|---|---|
| activityScope | |
| checkLevel | ComplianceCheckLevel |
| companyName | string |
| language | Language |
| legalForm | SupportedLegalForm |
| legalSeat | |
| ownerSurname |
ComplianceAnalysisV2Response¶
| Name | Type |
|---|---|
| input | ComplianceAnalysisInputEchoV2 |
| issues | Array<ValidationIssueModel> |
| metadata | |
| overallStatus | ComplianceOverallStatus |
| registrableNames | |
| semanticEvaluation |
ComplianceAnalysisV3Request¶
| Name | Type |
|---|---|
| activityScope | |
| checkLevel | ComplianceCheckLevel |
| companyName | string |
| language | Language |
| languageVariants | Array<LanguageVariantV3Model> |
| legalForm | SupportedLegalForm |
| legalSeat | |
| ownerSurname |
ComplianceAnalysisV3Response¶
| Name | Type |
|---|---|
| findings | Array<ValidationIssueModel> |
| input | ComplianceAnalysisInputEchoV3 |
| metadata | |
| registrableNames | |
| semanticEvaluation |
ComplianceCheckLevel¶
Type: string
ComplianceOverallStatus¶
Type: string
ConsumerCompanySearchRequest¶
| Name | Type |
|---|---|
| limit | integer |
| minRisk | RiskLevelParam |
| name | string |
ConsumerCompanySearchResponse¶
| Name | Type |
|---|---|
| fullResults | Array<ConsumerCompanySearchResult> |
| identityMatch | |
| input | SearchInputEcho |
| summary | ConsumerCompanySearchSummary |
ConsumerCompanySearchResult¶
| Name | Type |
|---|---|
| companyType | string |
| doc_id | string |
| legalSeat | |
| link | string |
| matchType | string |
| name | string |
| nameNorm | string |
| phoneticMatch | |
| registry | string |
| risk | |
| strategies | Array<string> |
| uid | string |
| visualScore |
ConsumerCompanySearchSummary¶
| Name | Type |
|---|---|
| hasIdentityMatch | boolean |
| registrable | boolean |
| totalResults | integer |
ConsumerTrademarkSearchRequest¶
| Name | Type |
|---|---|
| limit | integer |
| minRisk | RiskLevelParam |
| niceClasses | |
| query | string |
ConsumerTrademarkSearchResponse¶
| Name | Type |
|---|---|
| fullResults | Array<ConsumerTrademarkSearchResult> |
| identicalMatches | Array<ConsumerTrademarkSearchResult> |
| input | TrademarkSearchInputEcho |
| similarMatches | Array<ConsumerTrademarkSearchResult> |
| summary | ConsumerTrademarkSearchSummary |
ConsumerTrademarkSearchResult¶
| Name | Type |
|---|---|
| applicant | string |
| applicationDate | |
| class | string |
| classOverlap | Array<integer> |
| database | string |
| doc_id | string |
| expiryDate | |
| link | string |
| markFeatureCategory | |
| matchBasis | Array<string> |
| matchType | string |
| name | string |
| phoneticMatch | |
| registrationDate | |
| registrationNumber | |
| relatedClassOverlap | Array<integer> |
| risk | |
| score | number |
| sourceRecordId | string |
| status | |
| strategies | Array<string> |
| visualScore |
ConsumerTrademarkSearchSummary¶
| Name | Type |
|---|---|
| goodsServicesBasis | string |
| hasIdenticalMatches | boolean |
| identicalMatchCount | integer |
| similarMatchCount | integer |
| totalResults | integer |
DomainAvailabilityInputEcho¶
| Name | Type |
|---|---|
| name | string |
| nameNorm | string |
| tlds | Array<string> |
DomainAvailabilityRequest¶
| Name | Type |
|---|---|
| name | string |
| tlds | Array<string> |
DomainAvailabilityResponse¶
| Name | Type |
|---|---|
| input | DomainAvailabilityInputEcho |
| results | Array<DomainAvailabilityResultResponse> |
| summary | DomainAvailabilitySummaryResponse |
DomainAvailabilityResultResponse¶
| Name | Type |
|---|---|
| available | |
| checkedAt | string |
| fqdn | string |
| reason | string |
| source | string |
| status | DomainAvailabilityStatus |
| tld | string |
DomainAvailabilityStatus¶
Type: string
DomainAvailabilitySummaryResponse¶
| Name | Type |
|---|---|
| likelyAvailableCount | integer |
| registeredCount | integer |
| unknownCount | integer |
ErrorCode¶
Type: string
ErrorDetail¶
| Name | Type |
|---|---|
| code | ErrorCode |
| details | |
| message | string |
ErrorResponse¶
| Name | Type |
|---|---|
| error | ErrorDetail |
FlagCategory¶
Type: string
FlagSeverity¶
Type: string
HealthResponse¶
| Name | Type |
|---|---|
| status | string |
HTTPValidationError¶
| Name | Type |
|---|---|
| detail | Array<ValidationError> |
IdentityMatchResponse¶
| Name | Type |
|---|---|
| legalSeat | |
| nameDisplay | string |
| nameNorm | string |
| sourceCompanyId | string |
IngestionRunInfo¶
| Name | Type |
|---|---|
| finished_at | |
| id | integer |
| mode | string |
| rows_failed | integer |
| rows_upserted | integer |
| started_at | string |
Language¶
Type: string
LanguageVariantV3Model¶
| Name | Type |
|---|---|
| lang | Language |
| name | string |
NameIssueModel¶
| Name | Type |
|---|---|
| category | FlagCategory |
| code | string |
| message | string |
| severity | FlagSeverity |
ProAbsoluteGroundCriterionModel¶
| Name | Type |
|---|---|
| categories | Array<string> |
| evidence | |
| key | string |
| legalRefs | Array<string> |
| reasoning | string |
| sub | string |
| title | string |
| verdict | ProAbsoluteGroundsVerdict |
ProAbsoluteGroundsEvidenceModel¶
| Name | Type |
|---|---|
| matchedAbbreviations | Array<string> |
| matchedGenericTerms | Array<string> |
| matchedOriginOrQualityTerms | Array<string> |
| matchedPromotionalTerms | Array<string> |
ProAbsoluteGroundsRequest¶
| Name | Type |
|---|---|
| goodsServicesDescription | string |
| language | ProTextLanguage |
| markType | ProMarkType |
| niceClasses | Array<string> |
| wordmark | string |
ProAbsoluteGroundsResponse-Input¶
| Name | Type |
|---|---|
| criteria | Array<ProAbsoluteGroundCriterionModel> |
| rollup | ProAbsoluteGroundsVerdict |
| summary |
ProAbsoluteGroundsResponse-Output¶
| Name | Type |
|---|---|
| criteria | Array<ProAbsoluteGroundCriterionModel> |
| rollup | ProAbsoluteGroundsVerdict |
| summary |
ProAbsoluteGroundsVerdict¶
Type: string
ProCompanyIdentityHitModel¶
| Name | Type |
|---|---|
| docId | string |
| holderText | string |
| label | string |
| legalSeat | |
| link | string |
| nameNorm | string |
| statusText | string |
ProFamousMarkHitModel¶
| Name | Type |
|---|---|
| brand | string |
| categories | Array<string> |
| crossClass | boolean |
| rationale | string |
| triggerType | ProFamousMarkTriggerType |
ProFamousMarksRequest¶
| Name | Type |
|---|---|
| goodsServicesDescription | string |
| language | ProTextLanguage |
| niceClasses | Array<integer> |
| query | string |
ProFamousMarksResponse-Input¶
| Name | Type |
|---|---|
| anyMatch | boolean |
| hits | Array<ProFamousMarkHitModel> |
| sourceRef | string |
| testedBrands | Array<string> |
| totalCount | integer |
ProFamousMarksResponse-Output¶
| Name | Type |
|---|---|
| anyMatch | boolean |
| hits | Array<ProFamousMarkHitModel> |
| sourceRef | string |
| testedBrands | Array<string> |
| totalCount | integer |
ProFamousMarkTriggerType¶
Type: string
ProMarkType¶
Type: string
ProNiceClassSuggestionModel¶
| Name | Type |
|---|---|
| niceClass | integer |
| rationale | string |
ProNiceClassSuggestionRequest¶
| Name | Type |
|---|---|
| goodsServicesDescription | string |
| language | ProTextLanguage |
ProNiceClassSuggestionResponse¶
| Name | Type |
|---|---|
| sourceRef | string |
| suggestions | Array<ProNiceClassSuggestionModel> |
ProOverviewFindingModel¶
| Name | Type |
|---|---|
| categories | Array<string> |
| detail | string |
| headline | string |
| key | string |
| tone | ProVerdictTone |
ProOverviewModel¶
| Name | Type |
|---|---|
| topFindings | Array<ProOverviewFindingModel> |
ProReasonPillModel¶
| Name | Type |
|---|---|
| categories | Array<string> |
| text | string |
| tone | ProVerdictTone |
ProRecommendationBlockModel¶
| Name | Type |
|---|---|
| quote | string |
| verdicts | Array<ProRecommendationVerdictLineModel> |
ProRecommendationRequest¶
| Name | Type |
|---|---|
| absoluteGrounds | |
| famousMarks | |
| identity | |
| language | ProTextLanguage |
| similarity |
ProRecommendationResponse¶
| Name | Type |
|---|---|
| overview | ProOverviewModel |
| recommendation | ProRecommendationBlockModel |
| verdict | ProRecommendationVerdictModel |
ProRecommendationVerdictLineModel¶
| Name | Type |
|---|---|
| key | string |
| label | string |
| reasonPill | ProReasonPillModel |
| value | ProVerdictValue |
ProRecommendationVerdictModel¶
| Name | Type |
|---|---|
| headline | string |
| riskIndex | integer |
| riskLevel | ProRiskLevel |
ProRiskLevel¶
Type: string
ProSimilarityBucketsModel¶
| Name | Type |
|---|---|
| high | integer |
| low | integer |
| medium | integer |
ProSimilarityHitModel¶
| Name | Type |
|---|---|
| categories | Array<string> |
| context | string |
| docId | string |
| holderText | string |
| label | string |
| link | string |
| riskLevel | ProSimilarityRiskLevel |
| similarityType | ProSimilarityType |
| source | ProSimilaritySource |
| statusText | string |
ProSimilarityIssueCode¶
Type: string
ProSimilarityIssueModel¶
| Name | Type |
|---|---|
| code | ProSimilarityIssueCode |
| message | string |
| retryable | boolean |
| source | ProSimilaritySource |
ProSimilarityRiskLevel¶
Type: string
ProSimilaritySearchRequest¶
| Name | Type |
|---|---|
| domainTlds | Array<string> |
| limitPerSource | integer |
| niceClasses | Array<integer> |
| query | string |
| sources | Array<ProSimilaritySource> |
ProSimilaritySearchResponse-Input¶
| Name | Type |
|---|---|
| buckets | ProSimilarityBucketsModel |
| companyIdentityMatch | |
| hits | Array<ProSimilarityHitModel> |
| issues | Array<ProSimilarityIssueModel> |
| state | ProSimilarityState |
| totalCount | integer |
ProSimilaritySearchResponse-Output¶
| Name | Type |
|---|---|
| buckets | ProSimilarityBucketsModel |
| companyIdentityMatch | |
| hits | Array<ProSimilarityHitModel> |
| issues | Array<ProSimilarityIssueModel> |
| state | ProSimilarityState |
| totalCount | integer |
ProSimilaritySource¶
Type: string
ProSimilarityState¶
Type: string
ProSimilarityType¶
Type: string
ProTextLanguage¶
Type: string
ProTrademarkHolderModel¶
| Name | Type |
|---|---|
| city | |
| country | |
| name | string |
ProTrademarkIdentityHitModel¶
| Name | Type |
|---|---|
| applicationDate | |
| applicationNumber | |
| docId | string |
| holder | ProTrademarkHolderModel |
| link | string |
| logoUrl | |
| niceClasses | Array<string> |
| register | ProTrademarkRegister |
| registrationDate | |
| registrationNumber | |
| status | ProTrademarkStatus |
| wordmark | string |
ProTrademarkIdentitySearchRequest¶
| Name | Type |
|---|---|
| niceClasses | Array<integer> |
| query | string |
| registers | Array<ProTrademarkRegister> |
ProTrademarkIdentitySearchResponse-Input¶
| Name | Type |
|---|---|
| hits | Array<ProTrademarkIdentityHitModel> |
| totalCount | integer |
ProTrademarkIdentitySearchResponse-Output¶
| Name | Type |
|---|---|
| hits | Array<ProTrademarkIdentityHitModel> |
| totalCount | integer |
ProTrademarkRegister¶
Type: string
ProTrademarkStatus¶
Type: string
ProVerdictTone¶
Type: string
ProVerdictValue¶
Type: string
RegistrableNamesModel¶
| Name | Type |
|---|---|
| de | string |
| en | string |
| fr | string |
| it | string |
RestrictedTermCategoryModel¶
| Name | Type |
|---|---|
| code | string |
| defaultSeverity | string |
| description | |
| id | integer |
| isActive | boolean |
| matchMode | string |
| name | string |
| ruleRef | |
| sectionNumber | |
| sectionTitle |
RestrictedTermCreateRequest¶
| Name | Type |
|---|---|
| categoryCode | string |
| createdBy | |
| description | |
| languageCode | |
| matchModeOverride | |
| severityOverride | |
| term | string |
RestrictedTermListResponse¶
| Name | Type |
|---|---|
| items | Array<RestrictedTermModel> |
| limit | integer |
| offset | integer |
| total | integer |
RestrictedTermModel¶
| Name | Type |
|---|---|
| categoryCode | string |
| categoryId | integer |
| createdAt | string |
| createdBy | |
| description | |
| id | integer |
| isActive | boolean |
| languageCode | |
| matchModeOverride | |
| severityOverride | |
| source | string |
| term | string |
| updatedAt | string |
RestrictedTermUpdateRequest¶
| Name | Type |
|---|---|
| categoryCode | |
| description | |
| isActive | |
| languageCode | |
| matchModeOverride | |
| severityOverride | |
| term |
RiskLevelParam¶
Type: string
RiskProfile¶
Type: string
ScreeningAssessmentIssueCatalogItem¶
| Name | Type |
|---|---|
| category | FlagCategory |
| code | string |
| message | string |
| severity | FlagSeverity |
ScreeningCheckStatesModel¶
| Name | Type |
|---|---|
| conflicts | ScreeningCheckStatus |
| domains | ScreeningCheckStatus |
| ehraCompliance | ScreeningCheckStatus |
| trademarks | ScreeningCheckStatus |
ScreeningCheckStatus¶
Type: string
ScreeningConflictsDetailsModel¶
| Name | Type |
|---|---|
| hasMoreMatches | boolean |
| highestRisk | |
| identityMatch | |
| identityMatchFound | boolean |
| matchCountsByRisk | ScreeningRiskCountsModel |
| similarMatchCount | integer |
| topMatches | Array<SimilarMatchResponse> |
ScreeningConflictsOptions¶
| Name | Type |
|---|---|
| enabled | boolean |
| limit | integer |
| minRisk | RiskLevelParam |
ScreeningDetailsModel¶
| Name | Type |
|---|---|
| conflicts | |
| domains | |
| ehraCompliance | |
| trademarks |
ScreeningDomainsDetailsModel¶
| Name | Type |
|---|---|
| likelyAvailableCount | integer |
| registeredCount | integer |
| results | Array<DomainAvailabilityResultResponse> |
| unknownCount | integer |
ScreeningDomainsOptions¶
| Name | Type |
|---|---|
| enabled | boolean |
| label | |
| tlds |
ScreeningDriverCatalogItem¶
| Name | Type |
|---|---|
| code | ScreeningDriverCode |
| defaultSeverity | ScreeningDriverSeverity |
| message | string |
| source | ScreeningDriverSource |
ScreeningDriverCode¶
Type: string
ScreeningDriverModel¶
| Name | Type |
|---|---|
| code | ScreeningDriverCode |
| severity | ScreeningDriverSeverity |
| source | ScreeningDriverSource |
ScreeningDriverSeverity¶
Type: string
ScreeningDriverSource¶
Type: string
ScreeningEhraComplianceDetailsModel¶
| Name | Type |
|---|---|
| issues | Array<NameIssueModel> |
| semanticFailOpen |
ScreeningEhraComplianceOptions¶
| Name | Type |
|---|---|
| enabled | boolean |
ScreeningExecutionIssueModel¶
| Name | Type |
|---|---|
| check | string |
| code | string |
| message | string |
| retryable |
ScreeningNextAction¶
Type: string
ScreeningPrimaryConcernModel¶
| Name | Type |
|---|---|
| code | ScreeningDriverCode |
| label | |
| referenceId | |
| risk | |
| severity | ScreeningDriverSeverity |
| source | ScreeningDriverSource |
ScreeningResponseCatalogModel¶
| Name | Type |
|---|---|
| assessmentIssueCategories | Array<FlagCategory> |
| assessmentIssueCodes | Array<ScreeningAssessmentIssueCatalogItem> |
| assessmentIssueSeverities | Array<FlagSeverity> |
| checkStates | Array<ScreeningCheckStatus> |
| driverCodes | Array<ScreeningDriverCatalogItem> |
| driverSeverities | Array<ScreeningDriverSeverity> |
| driverSources | Array<ScreeningDriverSource> |
| errorCodes | Array<ErrorCode> |
| nextActions | Array<ScreeningNextAction> |
| overallStatuses | Array<AssessmentStatus> |
| resultStates | Array<ScreeningResultState> |
| riskLevels | Array<RiskLevelParam> |
ScreeningResultState¶
Type: string
ScreeningRiskCountsModel¶
| Name | Type |
|---|---|
| high | integer |
| low | integer |
| medium | integer |
ScreeningTrademarksDetailsModel¶
| Name | Type |
|---|---|
| goodsServicesContextApplied | boolean |
| hasMoreMatches | boolean |
| highestRisk | |
| matchCountsByRisk | ScreeningRiskCountsModel |
| similarMatchCount | integer |
| topMatches | Array<TrademarkSimilarMatchResponse> |
ScreeningTrademarksOptions¶
| Name | Type |
|---|---|
| enabled | boolean |
| limit | integer |
| minRisk | RiskLevelParam |
| niceClasses |
SearchConsumerMetricsModel¶
| Name | Type |
|---|---|
| avgDurationMs | |
| consumerCode | |
| consumerId | |
| consumerName | |
| errorRequests | integer |
| latestRequestAt | |
| p95DurationMs | |
| successRequests | integer |
| totalRequests | integer |
SearchConsumerMetricsResponse¶
| Name | Type |
|---|---|
| items | Array<SearchConsumerMetricsModel> |
SearchEventListResponse¶
| Name | Type |
|---|---|
| items | Array<SearchEventLogModel> |
| limit | integer |
| offset | integer |
| total | integer |
SearchEventLogModel¶
| Name | Type |
|---|---|
| clientIp | |
| consumerCode | |
| consumerId | |
| consumerName | |
| createdAt | string |
| durationMs | |
| endpoint | string |
| id | integer |
| params | |
| resultSummary | |
| searchTerm | string |
| statusCode | integer |
| traceId | |
| userAgent |
SearchInputEcho¶
| Name | Type |
|---|---|
| name | string |
| nameCore | string |
| nameNorm | string |
| phoneticAlt | string |
| phoneticPrimary | string |
SearchMetricsOverviewResponse¶
| Name | Type |
|---|---|
| avgDurationMs | |
| errorRequests | integer |
| p95DurationMs | |
| periodEnd | |
| periodStart | |
| successRequests | integer |
| totalRequests | integer |
| uniqueConsumers | integer |
| uniqueSearchTerms | integer |
SearchRequest¶
| Name | Type |
|---|---|
| limit | integer |
| minRisk | RiskLevelParam |
| name | string |
SearchResponse¶
| Name | Type |
|---|---|
| identityMatch | |
| input | SearchInputEcho |
| registrable | boolean |
| similarMatches | Array<SimilarMatchResponse> |
SearchTopTermModel¶
| Name | Type |
|---|---|
| avgDurationMs | |
| requestCount | integer |
| searchTerm | string |
| uniqueConsumers | integer |
SearchTopTermsResponse¶
| Name | Type |
|---|---|
| items | Array<SearchTopTermModel> |
SearchTraceDetailResponse¶
| Name | Type |
|---|---|
| event | SearchEventLogModel |
| traceId | string |
SemanticRegistrationEvaluationV2Model¶
| Name | Type |
|---|---|
| canBeRegistered | boolean |
| primaryRejectionReason | |
| requiresLegalReview | boolean |
| ruleGeographicFantasy | SemanticRuleEvaluationV2Model |
| rulePurelyDescriptive | SemanticRuleEvaluationV2Model |
| rulePurposeDeception | SemanticRuleEvaluationV2Model |
| ruleRegulatedTermsLicensing | SemanticRuleEvaluationV2Model |
SemanticRuleEvaluationV2Model¶
| Name | Type |
|---|---|
| analysis | string |
| confidence | string |
| isViolation | boolean |
SemanticSignalsModel¶
| Name | Type |
|---|---|
| containsGeographicTerm | |
| extractedGeographicTerms | Array<string> |
| gamblingTermsDetected | Array<string> |
| hasFantasyElement | |
| healthClaimsDetected | Array<string> |
| impliedActivities | Array<string> |
| impliedGamblingActivity | |
| impliedHealthcareActivity | |
| impliedInvestmentOrBankingActivity | |
| isGeographicFantasy | |
| isNatureGeographicTerm | |
| isPurelyDescriptive | |
| misleadingRisk | |
| multipleLanguagesPresent | |
| offensiveOrDiscriminatoryContentDetected | |
| protectedOrgReferenceLikely | |
| publicPolicyCategories | Array<string> |
| publicPolicyConcernDetected | |
| publicPolicyReason | |
| purposeCoveredActivities | Array<string> |
| purposeRelation | |
| purposeRelationConfidence | |
| purposeRelationNameEvidence | Array<string> |
| purposeRelationPurposeEvidence | Array<string> |
| purposeRelationReason | |
| shouldTriggerDeceptivePurpose | |
| translatedUntranslatableElements | |
| translationsSemanticallyMatch | |
| uncoveredImpliedActivities | Array<string> |
| wellKnownBrandReason | |
| wellKnownBrandReferenceLikely | |
| wellKnownBrandTermsDetected | Array<string> |
SimilarMatchResponse¶
| Name | Type |
|---|---|
| legalSeat | |
| nameDisplay | string |
| nameNorm | string |
| phoneticMatch | boolean |
| risk | RiskLevelParam |
| sourceCompanyId | string |
| visualScore | number |
StatsResponse¶
| Name | Type |
|---|---|
| active_companies | integer |
| deleted_companies | integer |
| last_ingestion | |
| total_companies | integer |
| total_company_names | integer |
SupportedLegalForm¶
Type: string
TrademarkDetailResponse¶
| Name | Type |
|---|---|
| applicationDate | |
| applicationNumber | |
| colorClaimed | |
| expiryDate | |
| isDeleted | boolean |
| markCategory | |
| markFeatureCategory | |
| niceClasses | Array<integer> |
| parties | Array<TrademarkPartyDetailModel> |
| registrationDate | |
| registrationNumber | |
| registrationOfficeCode | |
| sourceRecordId | string |
| sourceSystem | string |
| status | |
| viennaClassifications | Array<TrademarkViennaClassificationModel> |
| wordmark | string |
| wordmarkNorm | string |
TrademarkPartyDetailModel¶
| Name | Type |
|---|---|
| addressLines | Array<string> |
| countryCode | |
| fullName | |
| legalEntityName | |
| role | string |
TrademarkSearchInputEcho¶
| Name | Type |
|---|---|
| niceClasses | Array<integer> |
| phoneticAlt | string |
| phoneticPrimary | string |
| query | string |
| queryCore | string |
| queryNorm | string |
TrademarkSearchRequest¶
| Name | Type |
|---|---|
| limit | integer |
| minRisk | RiskLevelParam |
| niceClasses | |
| query | string |
TrademarkSearchResponse¶
| Name | Type |
|---|---|
| goodsServicesBasis | string |
| input | TrademarkSearchInputEcho |
| similarMatches | Array<TrademarkSimilarMatchResponse> |
TrademarkSimilarMatchResponse¶
| Name | Type |
|---|---|
| applicationNumberText | |
| classOverlap | Array<integer> |
| markText | |
| markTextNorm | string |
| matchBasis | Array<string> |
| niceClasses | Array<integer> |
| phoneticMatch | boolean |
| registrationNumber | |
| relatedClassOverlap | Array<integer> |
| risk | RiskLevelParam |
| sourceRecordId | string |
| status | |
| visualScore | number |
TrademarkViennaClassificationModel¶
| Name | Type |
|---|---|
| category | |
| division | |
| section |
ValidationError¶
| Name | Type |
|---|---|
| loc | Array<> |
| msg | string |
| type | string |
ValidationIssueModel¶
| Name | Type |
|---|---|
| code | string |
| message | string |
| ruleRef | |
| severity | ValidationSeverity |
| source | string |
ValidationSeverity¶
Type: string
VersionResponse¶
| Name | Type |
|---|---|
| build_time | |
| environment | |
| git_sha | |
| image_digest | |
| image_ref | |
| service | string |
| version | string |
Security schemes¶
| Name | Type | Scheme | Description |
|---|---|---|---|
| ClientApiKeyAuth | apiKey | Client API key for public endpoints. |