POST https://api.collegepipe.com/v1/athletes
Beta — This endpoint is not yet live but will be available soon.
You need to authenticate first to upsert an athlete.
This endpoint creates or updates an athlete based on their email address:
Email not found → a new CollegePipe account is created
Email found, same agency → the existing profile is updated (only sent fields are modified)
Email found, different agency → returns an error
The endpoint accepts both JSON and form-encoding — use whichever is more convenient for your integration.
JSON
POST https://api.collegepipe.com/v1/athletesAuthorization: Bearer <token>Content-Type: application/json
Form-encoded
POST https://api.collegepipe.com/v1/athletesAuthorization: Bearer <token>Content-Type: application/x-www-form-urlencoded
Param | Type | Required | Description |
String | ✅ Always | Athlete's email — used as the unique identifier | |
firstName | String | ✅ On create | — |
lastName | String | ✅ On create | — |
gender | String | ✅ On create |
|
earliestEnrollment | String | ✅ On create |
|
agentEmail | String | No | Agent to assign (must belong to your agency). Defaults to agency's configured default agent. |
supportStaffEmail | String | No | Support staff to assign (must belong to your agency) |
sport | String | No | Exact sport name as configured in CollegePipe (e.g. |
recruitingStatus | String | No |
|
countryCode | String | No | ISO 3166-1 alpha-3 (e.g. |
stateCode | String | No | US only — e.g. |
city | String | No | — |
address | String | No | — |
postalCode | String | No | — |
sendEmail | Boolean | No | Send welcome email on creation. Default: |
generateTask | Boolean | No | Auto-generate a recruiting task on creation. Default: |
taskLang | String | Conditional | Language for the task (e.g. |
taskService | String | Conditional | Agency service plan name. Required when |
taskInternational | Boolean | Conditional | Whether the task targets international recruiting. Required when |
Example — create (JSON)
{"email": "jane.doe@example.com","firstName": "Jane","lastName": "Doe","gender": "FEMALE","earliestEnrollment": "Fall 2026","sport": "Soccer","countryCode": "FRA"}
Example — create (form-encoded)
email=jane.doe@example.com&firstName=Jane&lastName=Doe&gender=FEMALE&earliestEnrollment=Fall+2026&sport=Soccer&countryCode=FRA
Example — update only the recruiting status
{ "email": "jane.doe@example.com", "recruitingStatus": "COMMITTED" }
Field | Type | Description |
status | String |
|
message | String | Human-readable result |
Response Example
{"status": "success","message": "Athlete successfully created."}
On update:
{"status": "success","message": "Athlete successfully updated."}
On error:
{"status": "error","message": "Unknown sport: Badminton"}