Office of the Louisiana Attorney General · Athlete Agent Registration
The Athlete Agent Registration portal (AAR) must confirm two things about every applicant before they can be cleared: that they passed a background check, and that they completed the AG-prescribed training. Both of these are owned by Pathos. What's missing is the connection between the two systems, so this page is our proposal for exactly that: the API we believe Pathos needs to build for AAR. It walks the model end to end and links to a live, runnable reference of that proposed API.
AAR is the coordinator: it owns the applicant record and the overall clearance decision. Pathos runs the background check and the training, and reports status on each. Crucially, AAR only ever reads from Pathos; it does not expose an API back. Least privilege by default.
Coordinator
Pathos
Pathos
AAR
Initiates every cross-boundary query. Aggregates both checks. Decides clearance. Exposes no API outward.
Background Check
Runs the check, returns an array of background-check records with a status phrase and a human-readable description.
Education
Delivers the prescribed training, returns enrollments per cycle, each carrying the courses behind it.
Background checks and training take hours or days, so AAR never blocks on them. Both delivery models are fully supported; choose whichever fits your timeline. webhooks preferred polling every 5 min
AAR initiates the vendor-side process for an applicant it already owns.
Over hours or days. AAR is not waiting on the wire; it has moved on.
On a significant status change you POST a minimal, signed notification. AAR then calls your lookup endpoint to pull the full record. Webhook safety →
On a schedule (default every 5 minutes). No extra endpoint needed; the same lookup serves both paths. At the expected scale this is perfectly acceptable.
Applicants are the same people in different databases. The shared identifier is email, strengthened by a second factor and a verified-secondary-email mechanism that absorbs the "different email per system" problem.
Primary identifier
Second factor
Email alone is not a strong enough match for a background-check context. A positive identity match requires email and date of birth to agree. Chosen over address (too many spellings) and over SSN (heavier storage and compliance, unjustified here).
These are the endpoints we're proposing Pathos build and expose to AAR: a deliberately small surface, mirrored across both Pathos systems. Everything below is already live in our reference implementation, so you can read the schemas and try each call before writing any code.
Lookup
By internal ID, or by the two-factor pair (both required). Returns identity and this system's records. 404 on no match
Webhooks
Register an AAR callback target, separate production sandbox targets, separate signing secrets. Payloads stay minimal and signed.
Key rotation
Mint a new key with the current key plus a separately held client secret. No admin portal required.
Background Check returns
An applicant may undergo more than one check over time, so the response is an array. AAR reads the most relevant entry but keeps the full list as evidence. Each record is a status phrase (not_started · in_progress · approved · rejected) plus a description. No numeric score.
Education returns
Training likely renews periodically, so each cycle is its own enrollment with an overall status and the courses behind it. This is the shape we are least certain about: the grouping name, renewal cadence, and course-level detail are exactly where we want your input.
A single, direct, server-to-server trust relationship between AAR and Pathos, both working directly with the Louisiana AG, our common client. The baseline below is a starting point, not a mandate. We're genuinely open to other approaches; we just need to settle the decisions early, before they turn into costly rewrites.
Baseline
Whichever you choose: HTTPS only, scoped to what AAR needs, every use logged for audit.
Key format & storage
Rotation
Rotating requires the current API key and a separately held client secret. An intercepted key alone cannot rotate itself and lock out the legitimate user.
POST /keys/rotate · Bearer + clientSecretCadence & rotation
To make the proposal concrete, we built a working reference of it: our own implementation of the contract above, so Pathos can see and exercise the exact shapes we're asking for. Both systems are combined under separate path prefixes for testing. Open the reference and use the pre-built test applicants below.
| Date of birth | Background check | Education | |
|---|---|---|---|
| jane.smith@example.com | 1990-04-12 | approved | complete |
| john.doe@example.com | 1985-11-03 | in_progress | incomplete |
| not.started@example.com | 1998-07-22 | not_started | not_started |
| rejected@example.com | 1979-02-28 | rejected | complete |
What's real
What's illustrative