Academic verification API · since 2020

Student? Prove it in one login.

Studid confirms students, faculty and staff straight with their university. Two API calls for you, one familiar login for them. No documents, no manual review.

Start building

Thousands of institutions across 70+ national federations, including

  • Technische Universität Berlin
  • Ludwig-Maximilians-Universität München
  • Universität Heidelberg
  • RWTH Aachen University
  • Technische Universität München
  • and many more

Trusted by teams at

HubSpotDelivery HeroH&MKaDeWe
How it works

Don’t ask the student. Ask the university.

  1. 1

    You create a verification

    One API call. No SAML, no certificates, no metadata. You get back a link.

  2. 2

    They log in at their university

    The same account and MFA they use every day. Passwords never reach us, or you.

  3. 3

    The university answers

    A signed assertion becomes a stable user ID and an institution. In seconds, not days.

The difference

Documents vs. one university login

The old way

Uploading documents

  • Upload a transcript or student ID
  • Wait days for someone to review it
  • Hope nobody edited the PDF
  • Store sensitive personal files
Seconds, not days

With Studid

One university login

  • One login at the university they already use
  • A verified result in seconds
  • Signed and confirmed by the institution
  • Nothing sensitive to store
The integration

Two calls.
Zero SAML.

No certificates, no federation metadata, no XML. The institution signs the login; the API hands you clean JSON.

POST /v2/auth/verification201
$ curl -X POST https://api.studid.io/v2/auth/verification \
    -H "Content-Type: application/json" \
    -d '{"secretToken":"…","redirectUrl":"…","serviceName":"My App"}'
GET /v2/auth/verification/{id}200
authIdentifier
"MCE6NXEQ3FC3PU7XQ2WJ5ZKAB4YHT2RD"
authIdentifierType
"pairwise-id"
entityId
"https://idp.tu-berlin.de/shibboleth"
affiliations
["student", "member"]
entityIdalways
The institution the user authenticated at. On its own, this proves affiliation, even with no stable user ID.
authIdentifierwhen released
A privacy-safe, stable ID for the user: a per-service pseudonym or a persistent identifier. null when the institution only issues a transient ID.
affiliationsusually included
Their role, such as student, staff or faculty. Usually included; if an institution doesn’t release it, the list is empty and the login still counts.

No persistent ID? The verification still counts. A null authIdentifier doesn’t mean the login failed: the user still authenticated at a real institution. Use entityId for eligibility decisions and bind the result to your own session for continuity.

AI integration

Or let your coding agent write it.

Two endpoints, an OpenAPI spec, an llms.txt and a plain-markdown guide. Everything Claude Code, Cursor or Copilot needs to get it right on the first pass.

prompt.txt
Read https://studid.io/llms.txt and add academic verification with Studid.

1. On signup, POST https://api.studid.io/v2/auth/verification with { secretToken, redirectUrl, serviceName } and redirect the user to the returned link.
2. After they return to redirectUrl, poll GET https://api.studid.io/v2/auth/verification/{id} with header "Authorization: Bearer <secretToken>" and use session.authIdentifier as the user's ID.
3. Reject session.test === true in production.
Live demo

Try it with your own university.

Sign in with your own account and see exactly what an integrator receives. No signup, no install, the real flow.

Test mode runs against the public DFN test IdP, where you choose what to release.

Real login, live API
studid.io/searchlive

Popular