> For the complete documentation index, see [llms.txt](https://docs.stellic.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.stellic.com/stellic-partner-api/student/read-a-named-property-from-a-student-s-profile.md).

# Read a named property from a student's profile

Use this endpoint to read one computed property for a student. `engagement_score` is the only property today: `score` is 0 to 5, based on the student's activity in Stellic over the last year, and `level` compares it with the average across all students (`above_average`, `below_average`, or `average`). For every student at once, use [`GET /exports/engagement_score`](/stellic-partner-api/exports/export-student-engagement-scores.md), which returns the score without `level`.

## GET /student/{student\_username}/profile/{property}

>

```json
{"openapi":"3.0.0","info":{"title":"Stellic for Developers","version":"1.0"},"tags":[{"name":"Student"}],"servers":[{"url":"https://{institution}.stellic.com/partnerapi/v1","variables":{"institution":{"default":"{institution}","description":"Your institution's Stellic subdomain: the part before `.stellic.com` in the URL you use to sign in. It becomes the host in every request, as in `https://{institution}.stellic.com/partnerapi/v1/...`. Replace the `{institution}` placeholder with your subdomain before sending."}}}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token issued by your Stellic integration partner. Send it as `Authorization: Bearer <token>` on every request. One token per institution; do not share across environments."}},"schemas":{"EngagementScoreResponse":{"type":"object","properties":{"engagement_score":{"type":"object","properties":{"score":{"type":"integer","minimum":0,"maximum":5,"description":"Engagement score computed from the student's recent activity events. `0` when the student has no events on record."},"level":{"type":"string","enum":["above_average","below_average","average"],"description":"Comparative rating against the platform-wide average engagement score. The average is cached for 10 minutes and shifts as the population shifts."}}},"success":{"type":"boolean"}}}}},"paths":{"/student/{student_username}/profile/{property}":{"get":{"tags":["Student"],"parameters":[{"name":"student_username","in":"path","required":true,"description":"Student's Stellic username.","schema":{"type":"string"}},{"name":"property","in":"path","required":true,"description":"Property to fetch. `engagement_score` is the only property.","schema":{"type":"string","enum":["engagement_score"]}}],"responses":{"200":{"description":"The engagement score. `score` is an integer from 0 to 5 based on the student's activity in Stellic over the last year; `level` is `above_average`, `below_average`, or `average` relative to the average across all students.\n\nThe score is calculated on each call and saved on the student's record when it has changed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngagementScoreResponse"}}}},"400":{"description":"`{property}` is not `engagement_score`, the only accepted value.\n\nBody: `{\"errors\": [{\"message\": \"get_student_data: the parameter 'property' has an invalid value. 'property' can only be one of the following: engagement_score\"}]}`."},"401":{"description":"Missing or invalid Bearer token."},"403":{"description":"Your IP address isn't on the allowlist for this endpoint. Contact Stellic to add it; the response includes the `client_ip` Stellic saw.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"client_ip":{"type":"string"}}}}}},"404":{"description":"No student with the given platform username exists. The match is on the platform username, not any SIS ID.\n\nBody: `{\"errors\": [{\"message\": \"Student with username '<username>' not found\"}]}`."},"500":{"description":"Score computation raised an unhandled error. The response body is `{\"errors\": []}` (empty array), not a parseable message; log the request and reach out if you need to diagnose."}}}}}}
```

#### What happens after the call

* The score is calculated and saved on the student's record when it has changed. The engagement export returns this saved score, so reading it here also updates the export.

#### Notes

* **`level` can change when `score` doesn't.** The average moves as other students' scores change. Use `score` if you need a stable value.
* **Usernames must match exactly.** The username isn't lowercased here, unlike on the profile endpoints. Archived students and test accounts are returned.

#### Related APIs

* [`GET /exports/engagement_score`](/stellic-partner-api/exports/export-student-engagement-scores.md) for every student's score.
* [`PUT /student/{student_username}/profile/`](/stellic-partner-api/student/upsert-a-student-profile.md) to create or update the profile.
