Sonny API
REST API overview
Sonny exposes a single REST surface for the full agency workflow: sourcing, screening, CV reformat, outreach, headhunt, pipeline, and placement billing. One Bearer key, one rate budget, one audit log.
What you can do
- SourceFind 10-100 candidates from a role brief, LLM scored.
- ScreenDeep-screen a CV (URL, JSON, or file upload) against a JD.
- ReformatStandardise or anonymise a CV with redaction reporting.
- OutreachSend consent-first SMS + email sequences with reply tracking.
- HeadhuntVoice-agent calls after explicit candidate consent (Pro+).
- Pipeline + PlaceManage candidates and report placements for billing.
Authentication
Every request uses a Bearer key issued at signup:
Authorization: Bearer sk_live_…Keys are SHA-256 hashed at rest. Free tier issues an sk_live_ key on signup; Pro+ keys carry the same prefix. Rotate or revoke from the dashboard at any time.
Endpoints
Full request / response schemas, error codes, idempotency rules, and rate limits live in the signed-in reference.
| Method | Path | Purpose |
|---|---|---|
| POST | /api/v1/sonny/source | Source candidates from a role brief. |
| POST | /api/v1/sonny/screen | Deep-screen one candidate against a role. |
| POST | /api/v1/sonny/screen-attachment | Score a CV file (PDF/DOCX/DOC/TXT). |
| POST | /api/v1/sonny/cv-reformat | Standardise or anonymise a CV. |
| POST | /api/v1/sonny/place | Report a placement and trigger billing. |
| GET | /api/v1/sonny/candidates | List your pipeline. |
| POST | /api/v1/sonny/candidates | Add a candidate to the pipeline. |
| POST | /api/v1/sonny/headhunt | Consent-first SMS → voice headhunt (Pro+). |
| POST | /api/v1/sonny/outreach | Send a candidate outreach email/SMS. |
| GET | /api/v1/sonny/outreach/sends | List sent outreach with reply status. |
| POST | /api/v1/sonny/brain/notes | Attach a note to a candidate. |
| POST | /api/v1/sonny/brain/documents | Upload a brain document. |
| POST | /api/v1/sonny/brain/search | Semantic search across your brain. |
| GET | /api/v1/sonny/templates | List your outreach templates. |
| GET | /api/v1/sonny/audit | Audit log of API calls + actions. |
| GET | /api/v1/sonny/usage | Usage + credit balance + monthly grant. |
| GET | /api/v1/sonny/key-info | Inspect your key — tier, features, limits. |
One example — score a candidate
The full set of curl examples, SDK source, and error catalogue is in the signed-in reference. Here is one call to prove the surface is real:
curl https://9mil.io/api/v1/sonny/screen \
-H "Authorization: Bearer $SONNY_KEY" \
-H "Content-Type: application/json" \
-d '{
"candidate": { "full_name": "…", "linkedin_url": "…" },
"role": { "role_title": "Senior Backend Engineer" }
}'Returns a structured screening report — fit_score 0–100, summary, tenure_pattern, key_strengths, potential_concerns, fit_rationale.
Next steps
- ▸ Activate Sonny (free) — 25 credits/month, no card. Get a key and the full reference instantly.
- ▸ Pricing — Free / Pro / Enterprise tiers + headhunt unlock.
- ▸ Sonny home — product overview + comparison vs Bullhorn / Loxo / Vincere / RecruiterFlow.
- ▸ Already a customer? Sign in to read the reference →