Photon · Agentic Access

Photon Agentic Access

x-agentic-access probed

Photon exposes 0 API operations that an AI agent could call, of which 0 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

HealthcareUnited Statese-PrescribingPharmacyPrescription RoutingGraphQLClinical APIDigital HealthBenefit CheckOAuth2
Operations: 0 Acting: 0 Human-in-the-loop: 0 Method: probed

By consequence

Source

Agentic Access

Raw ↑
generated: '2026-08-14'
method: probed
source: live fetches of https://photonhealth.com (HTML + Markdown negotiation), /llms.txt, /.well-known/api-catalog, /site-index.json
summary: >-
  Photon operates one of the most deliberate agent surfaces in the catalog. The
  marketing host is not merely agent-tolerant - it is agent-addressed: it serves
  a Markdown twin of every canonical page under content negotiation, advertises
  its own machine-readable contracts through an RFC 9727 API catalog AND RFC 8288
  Link headers on every response, declares an explicit training/inference consent
  posture in a Content-Signal header, and publishes a written policy in llms.txt
  stating what an agent may and may not do on a user's behalf. All of it was
  verified by probe, unauthenticated.
discovery:
  llms_txt:
    url: https://photonhealth.com/llms.txt
    status: 200
    file: llms/photon-llms.txt
    has_agent_section: true
  docs_llms_txt:
    url: https://docs.photon.health/llms.txt
    status: 200
    file: llms/photon-docs-llms.txt
  api_catalog:
    url: https://photonhealth.com/.well-known/api-catalog
    status: 200
    spec: RFC 9727
    content_type: application/linkset+json; profile="https://www.rfc-editor.org/info/rfc9727"
    file: well-known/photon-api-catalog.json
  openapi:
    url: https://photonhealth.com/openapi.json
    status: 200
    file: openapi/photon-website-api-openapi.json
  site_index:
    url: https://photonhealth.com/site-index.json
    status: 200
    note: 40 canonical pages, each with a Markdown alternate URL; regenerated continuously (generatedAt was minutes old at probe time).
  onboarding_schema:
    url: https://photonhealth.com/api/onboarding/schema
    status: 200
    note: Machine-readable definition of every onboarding path, step and field - the contract behind the browser funnel.
link_headers:
  observed: true
  note: >-
    Every HTML and Markdown response carries the full discovery set as RFC 8288
    Link headers, so an agent needs no HTML parsing to find the contracts.
  rels:
  - rel: api-catalog
    href: /.well-known/api-catalog
    type: application/linkset+json
  - rel: service-desc
    href: /openapi.json
    type: application/vnd.oai.openapi+json
  - rel: service-doc
    href: https://docs.photon.health/docs
    type: text/html
  - rel: describedby
    href: /api/onboarding/schema
    type: application/json
  - rel: describedby
    href: /llms.txt
    type: text/plain
  - rel: llms
    href: /llms.txt
    type: text/plain
  - rel: index
    href: /site-index.json
    type: application/json
  - rel: alternate
    href: /index.html.md
    type: text/markdown
  - rel: canonical
    href: /
    type: text/html
markdown_twins:
  supported: true
  negotiation: 'Accept: text/markdown'
  alias_convention: append .md to any page URL; /index.html.md for the homepage
  verified:
    url: https://photonhealth.com/
    request_header: 'Accept: text/markdown'
    status: 200
    response_content_type: text/markdown; charset=utf-8
    x_markdown_tokens: 554
  note: >-
    The Markdown twin is the same content as the HTML page, front-mattered with
    title/description/url/markdown - not a stripped or substituted payload. HTML
    remains the default for browser requests. No cloaking observed: the Markdown
    body matched the HTML page's stated subject and carried no injected or
    sponsored content.
consent_signal:
  header: Content-Signal
  value: ai-train=yes, search=yes, ai-input=yes
  observed_on:
  - https://photonhealth.com/ (Markdown response)
  - https://photonhealth.com/site-index.json (contentSignal field)
  interpretation: >-
    Photon affirmatively permits AI training, search indexing, and inference-time
    input on its public marketing content. Declared in both a response header and
    the machine-readable site index, so the posture is discoverable either way.
agent_policy:
  source: https://photonhealth.com/llms.txt
  permitted:
  - Evaluate Photon on a user's behalf.
  - Complete the developer sandbox onboarding path with EXPLICIT user consent.
  restricted:
  - verbatim: Prescriber access requires verification.
  - verbatim: Clinic, enterprise, platform, and other production paths are sales-led or handoff-led and should expect human follow-up.
  - note: The sandbox "cannot send real prescriptions" - the consequential action is fenced off from the self-serve path entirely.
  guidance:
  - verbatim: Start with the onboarding schema.
  - verbatim: Resolve first-party links in this file against the current host so Vercel previews and production stay aligned.
  assessment: >-
    A rare example of a provider writing a consent-scoped agent policy rather
    than a blanket allow/deny: agents get an explicit, bounded lane (free
    sandbox, user consent required) while every irreversible or regulated
    action - real prescribing, production access - stays behind human
    verification. This is the escalation boundary the agentic-access model asks
    for, expressed in prose by the provider itself.
mcp:
  status: planned-not-available
  evidence: >-
    "A unified MCP server for Photon is planned but not yet available. In the
    interim, agents can call the same site endpoints used by the browser
    onboarding funnel." - https://photonhealth.com/llms.txt (verbatim)
  note: First-party confirmation that no MCP server exists; see mcp/photon-mcp.yml deployment.mode = none.
action_classes:
- surface: photonhealth.com website API
  operations: [getOnboardingSchema, getOpenApiSpec, getWellKnownOpenApiSpec, getApiCatalog]
  action_class: read
  consequence: none
  escalation: none
  note: Unauthenticated discovery reads; safe for autonomous agent use.
- surface: photonhealth.com website API
  operations: [createOrResumeOnboardingSession, saveOnboardingStep]
  action_class: write
  consequence: low
  escalation: user-consent
  note: Creates/updates a lead record. Photon's own policy requires explicit user consent.
- surface: photonhealth.com website API
  operations: [submitOnboardingSession, createNewsletterSignup]
  action_class: write
  consequence: medium
  escalation: user-consent
  note: Submits the user's identity and contact details to Photon; triggers sales or verification follow-up. Not reversible by the agent.
- surface: Clinical API (GraphQL)
  operations: [createPrescription, createOrder, rerouteOrder]
  action_class: write
  consequence: high
  escalation: human-authorization
  note: >-
    Prescribing is gated on write:prescription, which is issued only to verified
    prescribers via a user access token - not obtainable by an M2M agent. The
    provider's strongest control, enforced in the token model rather than in
    documentation.
gaps:
- The agent surface is on the MARKETING host. The Clinical API (clinical-api.photon.health) serves no llms.txt, no api-catalog and no Link headers - an agent that starts at the API host finds none of this.
- No agent card at either well-known path on any host.
- No MCP server yet (provider-confirmed as planned).
- No rate-limit signal on any surface (see rate-limits/photon-rate-limits.yml).