Migrating from Symplicity
The Partners API deliberately mirrors Symplicity’s CSM API shape so an existing integration migrates with mostly find-and-replace changes.
What stays the same
- URL shape:
/v1/{resource}with plural, lowercase resource names. - Resource vocabulary:
students,jobs, and friends keep familiar names. - JSON in, JSON out.
The two deliberate differences
1. One multi-tenant host, not a per-customer subdomain
| Symplicity | CareerOS | |
|---|---|---|
| Host | {your-school}-csm.symplicity.com/api/public/v1/… | api.partners.thecareeros.com/v1/… |
| Tenancy | In the URL | In the JWT (partner_id claim) |
There is no {your-school}.thecareeros.com — point every environment at the same host and let the token decide what you see.
2. Standard Bearer auth
| Symplicity | CareerOS | |
|---|---|---|
| Header | Authorization: Token <token> | Authorization: Bearer <jwt> |
We use the OAuth-standard form supported out of the box by every HTTP client.
Filtering differences
Symplicity CSM uses bespoke query params per endpoint; CareerOS uses one uniform PostgREST filter language across every resource. Budget a small rewrite of your query-building code — it typically gets shorter.
Migration checklist
- Swap the base URL to
https://api.partners.thecareeros.com/v1. - Swap
Authorization: Token …forAuthorization: Bearer …with your CareerOS JWT. - Re-map resource fields — column names are documented per resource in the API reference.
- Rewrite filters to PostgREST operators (
?field=eq.valueinstead of bespoke params). - Add
limit=to every list call (hard cap 10,000 rows; see pagination). - Point your data-quality checks at
Prefer: count=exacttotals during the parallel-run period.