specification: API Commons Well-Known specificationVersion: '0.1' provider: Cloudability providerId: cloudability generated: '2026-09-05' modified: '2026-09-05' method: probed source: >- Live anonymous GET of eight /.well-known/ paths against every host this record names — the registrable domain and www, each apis[].baseURL host, the console host and the documentation host — on 2026-09-05. description: >- Well-known discovery probe for the Cloudability / IBM Apptio hosts. Exactly one real document was served: IBM's corporate PSIRT security.txt on www.ibm.com, the documentation host for every Cloudability API entry in this record. No cloudability.com or apptio.com host serves any well-known document. Two false positives were rejected and are recorded below with the reason. notes: - >- api.cloudability.com answers 401 with a JSON error envelope on EVERY path, including a control probe for a path that does not exist (/zzz-does-not-exist-9482 -> 401). The 401s below therefore carry no information about whether a document exists; they are a blanket auth wall. - >- app.cloudability.com answers 200 with the same SPA HTML shell (Cloudability) for every /.well-known/* path. Per the pipeline rule a 200 returning an SPA shell is NOT a document; all eight are recorded as misses. - >- www.ibm.com/.well-known/security.txt is IBM's corporate PSIRT document, not a Cloudability-specific one. It is recorded because www.ibm.com is the documentation host named by every apis[] entry in this record and IBM is the owner of the Cloudability product; the disclosure route it publishes is the route a Cloudability researcher is expected to use. hosts: - host: cloudability.com note: 301 redirect to www.apptio.com on every well-known path. documents: - path: /.well-known/security.txt status: 301 - path: /.well-known/openid-configuration status: 301 - path: /.well-known/oauth-authorization-server status: 301 - path: /.well-known/oauth-protected-resource status: 301 - path: /.well-known/api-catalog status: 301 - path: /.well-known/ai-plugin.json status: 301 - path: /.well-known/agent-card.json status: 301 - path: /.well-known/agent.json status: 301 - host: www.cloudability.com note: 301 redirect to https://www.apptio.com/products/cloudability/ on every path. documents: - path: /.well-known/security.txt status: 301 - path: /.well-known/openid-configuration status: 301 - path: /.well-known/oauth-authorization-server status: 301 - path: /.well-known/oauth-protected-resource status: 301 - path: /.well-known/api-catalog status: 301 - path: /.well-known/ai-plugin.json status: 301 - path: /.well-known/agent-card.json status: 301 - path: /.well-known/agent.json status: 301 - host: api.cloudability.com note: >- Blanket 401 (application/json error envelope) on all paths including a nonexistent control path. No inference possible. documents: - path: /.well-known/security.txt status: 401 - path: /.well-known/openid-configuration status: 401 - path: /.well-known/oauth-authorization-server status: 401 - path: /.well-known/oauth-protected-resource status: 401 - path: /.well-known/api-catalog status: 401 - path: /.well-known/ai-plugin.json status: 401 - path: /.well-known/agent-card.json status: 401 - path: /.well-known/agent.json status: 401 - host: app.cloudability.com note: >- SPA catch-all: HTTP 200 text/html shell on every path. Treated as a miss, not a served document. documents: - path: /.well-known/security.txt status: 200 result: spa-shell - path: /.well-known/openid-configuration status: 200 result: spa-shell - path: /.well-known/oauth-authorization-server status: 200 result: spa-shell - path: /.well-known/oauth-protected-resource status: 200 result: spa-shell - path: /.well-known/api-catalog status: 200 result: spa-shell - path: /.well-known/ai-plugin.json status: 200 result: spa-shell - path: /.well-known/agent-card.json status: 200 result: spa-shell - path: /.well-known/agent.json status: 200 result: spa-shell - host: apptio.com note: 302 redirect to www.apptio.com on every path. documents: - path: /.well-known/security.txt status: 302 - path: /.well-known/openid-configuration status: 302 - path: /.well-known/oauth-authorization-server status: 302 - path: /.well-known/oauth-protected-resource status: 302 - path: /.well-known/api-catalog status: 302 - path: /.well-known/ai-plugin.json status: 302 - path: /.well-known/agent-card.json status: 302 - path: /.well-known/agent.json status: 302 - host: www.apptio.com note: WordPress 404 page on every path. No well-known documents published. documents: - path: /.well-known/security.txt status: 404 - path: /.well-known/openid-configuration status: 404 - path: /.well-known/oauth-authorization-server status: 404 - path: /.well-known/oauth-protected-resource status: 404 - path: /.well-known/api-catalog status: 404 - path: /.well-known/ai-plugin.json status: 404 - path: /.well-known/agent-card.json status: 404 - path: /.well-known/agent.json status: 404 - host: www.ibm.com note: >- Documentation host for every Cloudability API entry. Serves a real text/plain security.txt (IBM PSIRT). The OAuth/OIDC/api-catalog paths 301 to a trailing-slash URL that then 404s. documents: - path: /.well-known/security.txt status: 200 content_type: text/plain file: cloudability-security.txt - path: /.well-known/openid-configuration status: 404 - path: /.well-known/oauth-authorization-server status: 404 - path: /.well-known/oauth-protected-resource status: 404 - path: /.well-known/api-catalog status: 404 - path: /.well-known/ai-plugin.json status: 404 - path: /.well-known/agent-card.json status: 404 - path: /.well-known/agent.json status: 404 - host: api.apptio.com note: >- 303 redirect to frontdoor.apptio.com/login on every path — the Apptio Frontdoor SSO gate. documents: - path: /.well-known/security.txt status: 303 - path: /.well-known/openid-configuration status: 303 - path: /.well-known/oauth-authorization-server status: 303 - path: /.well-known/oauth-protected-resource status: 303 - path: /.well-known/api-catalog status: 303 - path: /.well-known/ai-plugin.json status: 303 - path: /.well-known/agent-card.json status: 303 - path: /.well-known/agent.json status: 303 agent_card: found: false note: >- No A2A agent card. /.well-known/agent-card.json and the legacy /.well-known/agent.json were probed on all eight hosts; the only 200s were app.cloudability.com's SPA catch-all, which returns HTML rather than an AgentCard object. No a2a/ artifact is written.