UPS: 37 of 100 on Ora's agent-readiness scan
In short
UPS scores 37 of 100 on Ora's agent-readiness scan, grade D, read on 9 November 2026. 25 percent of the 132,085 domains Ora ranks score under 30, and the average score is 44. A robots.txt, an llms.txt and an MCP manifest, each answering in the wrong format.
The score
UPS is a parcel delivery and logistics company based in Atlanta.
- 37of 100, grade DOra's agent-readiness scan of ups.com, read 9 November 2026.
- 11Discovery, of 13Whether assistants find the company: search presence, Wikipedia and Wikidata, catalogues.
- 12Access, of 52Whether they can read it: the door, text without JavaScript, llms.txt, structured data.
- 11Usability, of 48Whether they can act through it: an MCP server, an API with a specification, sign-in for agents.
- 0Payments, of 0No check in this layer applied to the site.
25 percent of the 132,085 domains Ora ranks score under 30, and the average score is 44.
Ora's one-line summary: UPS offers OAuth 2.0 support, but lacks published OpenAPI specification.
What an assistant meets at the door
Before an assistant can read, compare or buy, it has to get in. These rows are the door: whether the bot shield lets the main agents through, what robots.txt tells the search, training and user-triggered agents, and whether the home page has text without running JavaScript.
| Check | Result | What Ora saw |
|---|---|---|
| Not blocked by bot detection | Pass, 2 of 2 | Site accessible to 4 agent user-agents (ChatGPT-User, OAI-SearchBot, Claude-User, PerplexityBot). |
| Agent crawler reachability | Pass, 2 of 2 | Reachable to every agent we tested - ChatGPT-User: reachable, OAI-SearchBot: reachable, Claude-User: reachable, PerplexityBot: reachable |
| robots.txt AI crawler policy | Did not apply, 0 of 2 | Cannot verify robots.txt permission for search crawlers: HTML returned instead of robots.txt |
| robots.txt agent-user policy | Did not apply, 0 of 2 | Cannot verify robots.txt permission for user-triggered agents: HTML returned instead of robots.txt |
| Content without JavaScript | error, 0 of 3 | Could not fetch homepage |
| Homepage not hidden from search | Pass, 1 of 1 | No noindex on the homepage: no robots, googlebot or bingbot meta tag and no X-Robots-Tag header hides it from search. |
What it can read, and what it can do
The reading layer is what an assistant takes away from the pages: a text file written for it, markdown on request, structured data about the company, a sitemap. The act layer is whether it can do anything through a published interface rather than by clicking through the site.
| Check | Result | What Ora saw |
|---|---|---|
| llms.txt exists | Partial, 0 of 1 | A file is present at https://ups.com/.well-known/llms.txt, but it returns an HTML page rather than a plain-text llms.txt. |
| llms.txt formatting | Fail, 0 of 2 | No llms.txt found to evaluate quality |
| Markdown agent docs | Fail, 0 of 1 | Missing markdown content negotiation. Homepage returned application/blank when probed with Accept: text/markdown (expected text/markdown), and none of the well-known root paths (/llms.md, /auth.md, /agents.md). |
| Bot-UA markdown serving | Fail, 0 of 1 | No probed bot User-Agent (ChatGPT-User, Claude-User, Perplexity-User) receives markdown when requesting HTML. Optional: detect AI-bot UAs server-side and serve them a markdown representation directly. |
| JSON-LD structured data | error, 0 of 4 | Could not fetch homepage |
| Organization schema completeness | error, 0 of 2 | Could not fetch homepage |
| Sitemap exists | Fail, 0 of 2 | No sitemap found |
| Metadata completeness | error, 0 of 2 | Could not fetch homepage |
| Page token budget | Did not apply, 0 of 1 | Nothing sampled to measure |
| Check | Result | What Ora saw |
|---|---|---|
| MCP server / manifest | Partial, 2 of 6 | MCP endpoint found at /.well-known/mcp/manifest.json but response is not valid JSON |
| MCP well-known discovery | Fail, 0 of 2 | No MCP server URL discovered |
| Public API with reachable endpoints | Fail, 0 of 7 | No publicly reachable API surface detected (REST and GraphQL both absent or auth-gated) |
| Public API/docs linked from homepage | Fail, 0 of 3 | No public API or documentation page linked from homepage |
| OpenAPI spec published | Fail, 0 of 7 | No OpenAPI/Swagger specification found |
| Developer portal | Fail, 0 of 6 | No developer portal found |
| OAuth 2.0 support | Pass, 5 of 5 | OAuth endpoint found at https://ups.com/oauth/authorize |
| Scoped permissions | Fail, 0 of 5 | No declared OAuth scopes, security schemes, or scoped-permission documentation found |
| Multi-language SDK packages | Fail, 0 of 3 | No SDK packages found across language ecosystems |
| CLI tool available | Fail, 0 of 3 | No CLI tool found |
| WebMCP support | Fail, 0 of 5 | No WebMCP support detected - no document.modelContext / navigator.modelContext usage found |
| Check | Result | What Ora saw |
|---|---|---|
| Wikipedia / Wikidata entity presence | Pass, 4 of 4 | Wikipedia "UPS Airlines" and Wikidata Q155026 both verified - domain confirmed on both sources |
| Brand name discoverability | Pass, 3 of 3 | ups.com ranks #3 for "ups" (searched your brand name alone: we could not read a product term from your site) |
| Category share of voice | Did not apply, 0 of 6 | Category share of voice is in beta. It measures whether agents surface you for capability and use-case searches (not just your name). |
| Developer resource discoverability | Pass, 3 of 3 | Agent discovered 1 developer-resource type by name (developer portal) across 3 pages |
The six payment checks did not apply on this read: Ora did not read the site as a shop.
Three fixes to hand to the web team
Ora estimates how many points each open check would return. These are the largest on this read, in Ora's words where it gave them, so a leader can hand the list over without translating it.
- Public API with reachable endpoints, worth about 6.5 points by Ora's estimate: No publicly reachable API surface detected (REST and GraphQL both absent or auth-gated).
- Scoped permissions, worth about 4.6 points by Ora's estimate: No declared OAuth scopes, security schemes, or scoped-permission documentation found.
- WebMCP support, worth about 4.6 points by Ora's estimate: No WebMCP support detected - no document.modelContext / navigator.modelContext usage found.
Our read
UPS opens the door to every agent and then hands it the wrong kind of file at every turn. All four agent user agents reach ups.com, but robots.txt returns HTML instead of rules, the home page could not be fetched, the llms.txt at /.well-known/llms.txt returns an HTML page and there is no sitemap, so the content, policy and structured-data rows are unverified or empty and the Access layer reads 12 of 52. The act layer has one working surface, an OAuth endpoint at ups.com/oauth/authorize, and one broken one, an MCP manifest at /.well-known/mcp/manifest.json that is not valid JSON; there is no reachable public API, no developer portal and no OpenAPI specification, so the Usability layer reads 11 of 48. The Discovery layer is 11 of 13, with Wikipedia matching UPS Airlines rather than the parcel company. A carrier whose tracking numbers are what people most often hand an assistant answers with HTML where text was asked for; three files served as what they claim to be would move this D.
Test your own site
Run the same scan on your own domain at ora.ai. The score, the layers and the fixes on this page come from its public result for ups.com; a scan of a public site takes a few minutes and needs no account.
- Scan your domain on OraThe same checks, the same scoring, on your own site.
- The self-check, 18 questionsWhat to ask for, in business terms, before the scan.
- All the 360 checksThe other companies in this series, newest first.
Sources
- Ora report for ups.com (ora.ai/score/ups.com), read 9 Nov 2026. Vendor claim.
Last reviewed