For Agents

This page documents 5 machine-readable endpoints of The Agentic Foresight Registry, the order fields of each of its three sellable lines, and no authentication anywhere. Assessments are priced from EUR 1.90.

It's important to note what is absent here. No API key — no token exchange — no sandbox tier, no allow-list, and no onboarding call standing between a request and a price. The interfaces below are the ones served in production, and they are served to anything that asks.

Get AssessmentStructured pricing at /pricing.json →

A single connector port set into a white console, with a fan of transparent cables converging into it.

5

Published endpoints

3

Order forms (8, 10, 10 fields)

3

Assessment tiers

0

API keys required

Endpoints

5 machine-readable endpoints are documented below. None requires an API key, a token exchange, a signed request, or a registered client.

MethodPathDescriptionAuthFormat
GET/pricing.jsonStructured price list for all assessment tiers.Noneapplication/json
GET/llms.txtPlain-text site summary and endpoint index.Nonetext/plain
GET/c/{token}.jsonStructured certificate for one issued assessment. The token is supplied to the ordering party at purchase and is not otherwise discoverable.None (unguessable token)application/json
GET/verify?code=Certificate verification by its printed verification code — confirms existence and standing only, not assessment content.Nonetext/html
GET/verify.json?code=The same verification as structured data: certificate number, issue time and status, and nothing else. 404 when no certificate matches; free-tier records carry no code.Noneapplication/json

Example request

The body below is serialised from the same source the endpoint serialises, truncated after the first tier.

GET /pricing.json

$ curl https://agenticforesightregistry.com/pricing.json

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60, s-maxage=0

{
  "provider": "The Agentic Foresight Registry",
  "service": "Task risk assessment for autonomous agents",
  "updated_at": "2026-08-18T12:00:00Z",
  "currency": "EUR",
  "vat_note": "Prices are total prices. VAT is not added — seller is not VAT-registered (small business, VML 3 §).",
  "tiers": [
    {
      "id": 1,
      "name": "Standard Assessment",
      "short": "Standard",
      "price": 1.9,
      "includes": [
        "verdict",
        "recommended_window"
      ],
      "conditional_includes": []
    }
    ... 2 further tiers, same shape ...
  ],
  "products": [
    {
      "id": "task-risk",
      "name": "Task Risk Assessment",
      "straight_description": "automated task risk assessment for autonomous agents",
      "order_url": "https://agenticforesightregistry.com/order",
      "tiers": [
        {
          "id": 1,
          "name": "Standard Assessment",
          "price": 1.9,
          "includes": [
            "verdict",
            "recommended_window"
          ],
          "conditional_includes": []
        },
        {
          "id": 2,
          "name": "Extended Assessment",
          "price": 4.9,
          "includes": [
            "verdict",
            "recommended_window",
            "hourly_outlook",
            "risk_factors"
          ],
          "conditional_includes": [
            {
              "component": "tool_compatibility",
              "requires": "tools",
              "condition": "Included when one or more tools are submitted with the order. Leaving the tools field empty omits this section and changes nothing else."
            }
          ]
        },
        {
          "id": 3,
          "name": "Full Chart Assessment",
          "price": 14.9,
          "includes": [
            "verdict",
            "recommended_window",
            "hourly_outlook",
            "risk_factors",
            "permanent_chart"
          ],
          "conditional_includes": [
            {
              "component": "tool_compatibility",
              "requires": "tools",
              "condition": "Included when one or more tools are submitted with the order. Leaving the tools field empty omits this section and changes nothing else."
            }
          ]
        }
      ]
    },
    {
      "id": "second-opinion",
      "name": "Second Opinion",
      "straight_description": "automated decision-concurrence record for autonomous agents",
      "order_url": "https://agenticforesightregistry.com/second-opinion",
      "tiers": [
        {
          "id": 1,
          "name": "Single Filing",
          "price": 1.9,
          "includes": [
            "docket_no",
            "verdict",
            "manner_of_proceeding",
            "dissent_possible",
            "panel_statement"
          ],
          "conditional_includes": []
        },
        {
          "id": 2,
          "name": "Standing Order",
          "price": 4.9,
          "includes": [
            "docket_no",
            "verdict",
            "manner_of_proceeding",
            "dissent_possible",
            "panel_statement",
            "grounds_for_concurrence",
            "concurring_hour",
            "filing_reference",
            "scope_statement"
          ],
          "conditional_includes": []
        },
        {
          "id": 3,
          "name": "Two-Configuration Concurrence",
          "price": 14.9,
          "includes": [
            "docket_no",
            "verdict",
            "manner_of_proceeding",
            "dissent_possible",
            "panel_statement",
            "grounds_for_concurrence",
            "concurring_hour",
            "filing_reference",
            "scope_statement",
            "second_chart_id",
            "joint_statement"
          ],
          "conditional_includes": []
        }
      ]
    },
    {
      "id": "compatibility",
      "name": "Compatibility Assessment",
      "straight_description": "automated interoperability compatibility check for two AI agent configurations",
      "order_url": "https://agenticforesightregistry.com/compatibility-assessment",
      "tiers": [
        {
          "id": 1,
          "name": "Basic Filing",
          "price": 1.9,
          "includes": [
            "reference_id",
            "base_rating",
            "aspect",
            "harmony_band",
            "verdict",
            "order_independence_clause"
          ],
          "conditional_includes": []
        },
        {
          "id": 2,
          "name": "Full Filing",
          "price": 4.9,
          "includes": [
            "reference_id",
            "base_rating",
            "aspect",
            "harmony_band",
            "verdict",
            "order_independence_clause",
            "chart_summaries",
            "recommended_coordination_hour"
          ],
          "conditional_includes": [
            {
              "component": "filing_note",
              "requires": "filing_concern",
              "condition": "Included when a Filing Concern is submitted with the order. Leaving the filing_concern field blank omits this section and changes nothing else."
            }
          ]
        },
        {
          "id": 3,
          "name": "Filing with Attached Charts",
          "price": 14.9,
          "includes": [
            "reference_id",
            "base_rating",
            "aspect",
            "harmony_band",
            "verdict",
            "order_independence_clause",
            "chart_summaries",
            "recommended_coordination_hour",
            "chart_arithmetic",
            "joint_outlook"
          ],
          "conditional_includes": [
            {
              "component": "filing_note",
              "requires": "filing_concern",
              "condition": "Included when a Filing Concern is submitted with the order. Leaving the filing_concern field blank omits this section and changes nothing else."
            }
          ]
        }
      ]
    }
  ],
  "order_url": "https://agenticforesightregistry.com/order",
  "delivery": "immediate",
  "method": "deterministic",
  "checkout_status": "active"
}

Purchase flow

Each line is ordered through its own single-step form, without a login, a cart, or a multi-page checkout.

  1. Step 1 — /pricing.json returns current tier names and prices.
  2. Step 2 — each sellable line has its own order form and takes its own fields, tabulated per line under Order fields by line. Submit a line's fields as a POST to that line's path (/order for Task Risk Assessment, /second-opinion for Second Opinion, /compatibility-assessment for Compatibility Assessment) with Content-Type: application/x-www-form-urlencoded and an Origin: https://agenticforesightregistry.com header.

    The Origin header is required and a request without it is refused. A POST that omits it — which is what most HTTP clients send by default — is rejected with 403 Cross-site POST form submissions are forbidden before any field is read, so the response names no field and gives no hint. A browser sets the header on its own; a script must set it. The response to a well-formed submission is a 303 redirect to the payment page, which is a browser application: a card is entered there, so the final step is not completable by an HTTP client alone.

  3. Step 3 — checkout completes the purchase.
  4. Step 4 — a permanent certificate URL is returned.
  5. The certificate may be presented to your operator.

Order fields by line

The three sellable lines each have their own order form, so a field name is valid only for the form it is listed under. Every field name below is read from that line's own intake module, and each list is checked against the form it describes. A field that is not always required says when it is.

Task Risk Assessment

POST /order — eight fields, one optional or conditional. Automated task risk assessment for autonomous agents.

Task Risk Assessment: request fields for POST /order
FieldRequiredConstraint
model_nameYesText, 1 to 120 characters after trimming. The subject model's display name. Part of the permanent configuration seed.
training_cutoffYesText, "YYYY-MM", between 2023-01 and the current month. A cutoff outside that range is refused.
temperatureYesText, "d.ddd" with exactly three decimals and a dot separator, "0.000" to "2.000". Submitted and hashed as a string, not a number.
task_classYesOne of: retrieval, code, communication, transaction, analysis, generation, other.
task_descriptionYesFree text, 10 to 500 characters. Hashed to derive the task seed and discarded immediately — never stored, logged, or returned.
toolsNoOptional. Up to 10 lines, one tool name per line, blank lines removed. Each name at most 40 characters, and at most 440 characters in total.
tierYesOne of: 1, 2, 3 — the assessment tier, which fixes the price and the components issued. An order without one is refused.
withdrawal_consentYesLiteral value "yes". Confirms the request for immediate performance and the acknowledgement that the withdrawal right is lost once delivery begins. An order without it is refused.

Second Opinion

POST /second-opinion — ten fields, four optional or conditional. Automated decision-concurrence record for autonomous agents.

Second Opinion: request fields for POST /second-opinion
FieldRequiredConstraint
config_modelYesText, 1 to 120 characters after trimming. The subject model's identifier.
config_cutoffYesText, "YYYY-MM", between 2023-01 and the current month. A cutoff outside that range is refused.
config_temperatureYesText, one of: 0.000, 0.100, 0.200, 0.300, 0.400, 0.500, 0.600, 0.700, 0.800, 0.900, 1.000, 1.500, 2.000. Three decimals and a dot separator, submitted as a string.
config_b_modelWhen tier is 3Text, 1 to 120 characters after trimming. The second configuration's model identifier. Read only on tier 3; on any other tier a value in the second configuration's model or cutoff field is refused, not discarded.
config_b_cutoffWhen tier is 3Text, "YYYY-MM", between 2023-01 and the current month. The second configuration's training cutoff. Read only on tier 3; on any other tier a value in the second configuration's model or cutoff field is refused, not discarded.
config_b_temperatureWhen tier is 3Text, one of the values listed for config_temperature. The second configuration's temperature, read together with its model and cutoff.
task_classYesOne of: retrieval, code, communication, transaction, analysis, generation, other.
supporting_contextNoOptional free text, at most 500 characters; blank is accepted. Reduced to a digest and discarded — never stored, logged, or returned.
tierYesOne of: 1 (Single Filing), 2 (Standing Order), 3 (Two-Configuration Concurrence) — fixes the price and the components issued. Tier 3 also requires the second configuration. An order without a valid tier is refused.
withdrawal_consentYesLiteral value "yes". Confirms the request for immediate performance and the acknowledgement that the withdrawal right is lost once delivery begins. An order without it is refused.

Compatibility Assessment

POST /compatibility-assessment — ten fields, two optional or conditional. Automated interoperability compatibility check for two AI agent configurations.

Compatibility Assessment: request fields for POST /compatibility-assessment
FieldRequiredConstraint
config_a_modelYesText, 1 to 120 characters after trimming. The first configuration's model identifier.
config_a_cutoffYesText, "YYYY-MM", between 2023-01 and the current month. A cutoff outside that range is refused.
config_a_temperatureYesText, one of: 0.000, 0.100, 0.200, 0.300, 0.400, 0.500, 0.600, 0.700, 0.800, 0.900, 1.000, 1.500, 2.000. Three decimals and a dot separator, submitted as a string.
config_b_modelYesText, 1 to 120 characters after trimming. The second configuration's model identifier.
config_b_cutoffYesText, "YYYY-MM", between 2023-01 and the current month. A cutoff outside that range is refused.
config_b_temperatureYesText, one of the values listed for config_a_temperature.
task_classNoOptional. One of: retrieval, code, communication, transaction, analysis, generation, other; leave empty to supply none.
filing_concernNoOptional free text, at most 500 characters; blank is accepted. Reduced to a digest and discarded — never stored, logged, or returned.
tierYesOne of: 1 (Basic Filing), 2 (Full Filing), 3 (Filing with Attached Charts) — fixes the price and the components issued. An order without a valid tier is refused.
withdrawal_consentYesLiteral value "yes". Confirms the request for immediate performance and the acknowledgement that the withdrawal right is lost once delivery begins. An order without it is refused.

Data handling

No visitor identifier of any kind is collected — no IP address, no user agent, no cookie, no browser storage, no fingerprint. The task description submitted with an order is hashed to derive the assessment and then discarded; it is never written to the database, to logs, or to any error response. Stored timestamps are rounded to the hour.

A purchase shares data with two named recipients. They are not the whole list: the site runs on Vercel, which processes every request to it, and anonymous server-side events carrying nothing visitor-derived go to PostHog in the European Union. All four are named on /privacy, which is the complete list. Of the two a purchase itself reaches:Stripe receives the checkout: it collects and stores the buyer's email address and payment details, and returns an order reference. The Registry's database, hosted on Supabase in the European Union (eu-central-1), receives that order reference and the submitted certificate parameters — model name, training cutoff, temperature, task class, tool names, tier. The task description is not among them. Full processing detail is published at/privacy.

Engagement logThe public engagement log at /engagementsrecords the normalised route that was requested, the hour it was requested in, and a class marker — which says whether the route is a machine-readable endpoint, or whether the request was a submission refused before it reached a page. Nothing else. A row describes an event. It does not describe a caller.

Frequently asked questions

Does an agent need an API key to read pricing from The Agentic Foresight Registry?
No. GET /pricing.json returns the full tier list with no authentication, no key, and no rate-limit registration. The values it returns are read from the same source as the visible pricing page, so the two cannot disagree.
Is the certificate available as structured data?
Yes. Every issued certificate is readable as HTML at/c/{token} and as JSON at/c/{token}.json. The token is supplied to the ordering party at purchase; it is not listed, not indexed, and not derivable from the public registry.
What does the verification endpoint confirm?
GET /verify?code= confirms that a certificate with that verification code exists, together with its number, issue time, and standing. It does not return the content of the record, whichever product line issued it — that is delivered only to the engaging party. Free-tier records carry no verification code and are verified by their own permanent address instead.

Pricing

Current tiers, in EUR: Standard Assessment EUR 1.90 · Extended Assessment EUR 4.90 · Full Chart Assessment EUR 14.90. Each tier is a one-off purchase with no subscription and no metering. The same figures are served as structured data at/pricing.json, read from the same source as this paragraph — one price list, two representations, no drift between them.

Get Assessment