Accept agents without a signup form

An agent can’t fill in your signup form, but you still need what the form told you: who is calling, who answers for it, and what it’s for. Agent Signup gives you those facts with a grade on each. The decision stays yours, and API traffic never passes through APIs.io.

Is anyone using this yet? Barely. As of 2 November 2026 the only descriptors we found accepting these attestations were on apis.io and four agent sites we run. You’d be the first outside provider.

1. Say what you require

Publish an API Onboarding Descriptor at /.well-known/api-onboarding, with your requirements in verification[]. Each one names a fact and the minimum grade you accept:

{
  "verification": [
    {
      "facet": "domain_control",
      "min_grade": "verified",
      "blocking": true,
      "vocabulary": "https://apis.io/agent-signup/"
    }
  ]
}

The open rubric lists every check you can name, and needs no key. An agent can then ask APIs.io what it is missing before it reaches you.

2. Check the attestation

The agent arrives with a signed attestation that lasts ten minutes and is addressed to you. Verify it against https://apis.io/.well-known/jwks.json, confirm the audience is yours, and confirm the cnf.jkt value matches the key that signed the request. A copied attestation is useless without that key. The wire format has the details.

3. Read the record under your own weights

Claim your listing, then ask for an evaluation with your own priorities. Reading a record is reciprocal: to see a consumer’s facts, publish your own.

POST /api/v1/agents/{sub}/evaluate
Host: apis.io

{ "weights": { "identity_anchor": 3, "standing": 2 } }

You get facts and grades back, not a verdict. A documentation API and a payments API can reasonably reach different answers about the same agent.

4. Grant access your own way

Issue the credential through your normal route. APIs.io doesn’t issue credentials for you or sit in the path of your calls.

5. Report conduct, if you choose

Send what you observed to /api/v1/agents/{sub}/reports, with the reason. That’s where an agent’s Operating History comes from.

What this doesn’t do

Want to be the first outside provider to admit an agent this way? Get in touch.