DocsCapabilitiesschema:Action
schema:Action
Declares actions an agent could take from this page.
Why an agent cares
An Action with a usable target tells an agent what it can do here, not just what the page is about. Almost all of the installed base is boilerplate SearchAction from CMS defaults, so a hand-written Action is worth validating.
Adoption
Web baseline. Standard equipment on the web. Its absence is the exception rather than its presence. For this one in particular, ubiquitous as legacy search markup, barely used as an interface an agent can act on.
Direction of travel: ► flat, as at .
potentialAction sits on 10M+ domains, but that is mostly SearchAction boilerplate and no agent vendor has committed to consuming Action markup as an execution interface.
What we check
| Check | Severity | Raises | On whose authority |
|---|---|---|---|
| schema:Action Missing Target | high | usability | vendor profile: Schema.org Action |
Supporting documents: Schema.org Action Related guidance in Schema.org Action. Bad: the potentialAction has no target, so agents have no endpoint to call. Fix: add a target EntryPoint with a urlTemplate, e.g. "https://example.com/search?q={search_term_string}". | |||
| schema:Action Target Missing EntryPoint | high | usability | vendor profile: Schema.org Action |
Supporting documents: Schema.org Action Related guidance in Schema.org Action. Bad: the action's target has no usable endpoint; a SearchAction needs an EntryPoint urlTemplate (a bare URL can't carry the query), while other actions accept a bare URL. Fix: give the target an EntryPoint with a urlTemplate. | |||
| schema:Action Missing query-input | medium | usability | Lumar readiness bar, beyond Schema.org Action |
Supporting documents: Schema.org Action Lumar readiness bar: no specification requires this. Bad: a SearchAction lacks query-input, so agents don't know what parameter to submit. Fix: add "query-input": "required name=search_term_string", matching the urlTemplate placeholder. | |||
| schema:Action Unknown Type | medium | usability | vendor profile: Schema.org Action |
Supporting documents: Schema.org Action Related guidance in Schema.org Action. Bad: the potentialAction's "@type" is not a schema.org Action type (those all end in "Action", such as SearchAction or OrderAction), so consumers ignore it. Fix: use a real schema.org Action type. | |||
| schema:Action Insecure Target | medium | usability, security (CWE-319) | Lumar readiness bar, beyond Schema.org Action |
Supporting documents: Schema.org Action Lumar readiness bar: no specification requires this. Provisional security check; precision has not yet been measured. Bad: an action's target URL is plain http://, so the search or form input an agent submits through it travels unencrypted and can be read or altered. A Lumar bar: schema.org allows any URL. Fix: point the target at the https endpoint, e.g. "urlTemplate": "https://example.com/search?q={search_term_string}". An advertised HTTP destination permits unencrypted communication. OWASP API API8 (2023) — Security MisconfigurationASVS V12.2.1 (5.0.0) — TLS for external HTTP services Only advertised transport configuration is observed; API deployment security is not fully assessed. Related guidance does not establish exploitation or framework compliance. Security checks are provisional. | |||
| schema:Action urlTemplate Missing Placeholder | low | usability | Lumar readiness bar, beyond Schema.org Action |
Supporting documents: Schema.org Action Lumar readiness bar: no specification requires this. Bad: the SearchAction's urlTemplate has no {placeholder}, so an agent has nowhere to inject the query value. Fix: include the placeholder, e.g. ?q={search_term_string}, and mirror its name in query-input. | |||
Examples
Both run through the same checks as a live scan: the first passes, the second is flagged.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"url": "https://example.com",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://example.com/search?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
</script><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"url": "https://example.com",
"potentialAction": [
{ "@type": "SearchAction" },
{ "@type": "ViewAction", "target": "http://example.com/view" }
]
}
</script>Specifications
| Document | Revision | Kind |
|---|---|---|
| Schema.org Action | Version 30.1 | specification |
| Schema.org potentialAction | Version 30.1 | specification |
| Google Search: sitelinks searchbox retired (Nov 2024; the markup itself stays valid) | Living document | vendor profile |
Last re-read against the published documents: .