# Structured contact information

> Structured contact information: An agent must know where to reach you before starting a transaction, or when something fails.

- Source: /checks/contact
- Site: AgenticWebScore
- Language: English

---
An agent must know where to reach you before starting a transaction, or when something fails.

| Property | Value |
| --- | --- |
| Check id | `contact` |
| Dimension | Protocol Discovery (25%) |
| Tier | Emerging — pool 5 pts |
| Weight inside tier | 1 |
| Impact | Medium |
| Maturity | Adopted — A ratified standard with real deployment. |
| Conditional | No |
| Publishing skill | `contact-schema` |
| Standards | schema.org/Organization |

## What is measured

The scanner parses the homepage JSON-LD for schema.org contact data: an Organization carrying contactPoint (a ContactPoint with contactType and email or telephone), or email/telephone on the organization itself. It passes when at least one reachable channel is declared with a contactType that says what it is for; it partially passes when the organization node exists but has no contact details, or when the details appear only as plain text on the page.

## Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

```bash
DOMAIN=https://your-domain.example
curl -sS "$DOMAIN/" | tr -d '\n' | grep -oE '"contactPoint":|"(contactType|email|telephone)":"[^"]*"' | sort -u
```

## The fix

This is the artifact to ship. It is the complete change, not a description of one.

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Inc.",
  "url": "https://your-domain.example",
  "contactPoint": [
    {
      "@type": "ContactPoint",
      "contactType": "technical support",
      "email": "agents@your-domain.example",
      "telephone": "+1-555-0100",
      "availableLanguage": ["en", "de"],
      "areaServed": "US"
    },
    {
      "@type": "ContactPoint",
      "contactType": "billing support",
      "email": "billing@your-domain.example"
    }
  ]
}
```

> contactType is free text using schema.org's suggested values (for example "technical support", "billing support"), and the channel must work for an anonymous request rather than only through a logged-in contact form.

## Standards referenced

- `schema.org/Organization`

## Related checks

| Check | Tier | Impact | Same skill |
| --- | --- | --- | --- |
| `mcp-card` — MCP server card | Essential | High | — |
| `openapi` — OpenAPI definition | Essential | High | — |
| `oauth-discovery` — OAuth discovery documents | Essential | High | — |
| `api-catalog` — API catalog | Recommended | Medium | — |
| `agent-skills` — Agent Skills declaration | Recommended | Medium | — |
| `a2a-card` — A2A agent card | Recommended | Medium | — |
| `a2a-signed` — Cryptographically signed agent card | Emerging | Medium | — |
| `auth-md` — /auth.md agent authentication guide | Emerging | Medium | — |
