> 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/exports/export-student-engagement-scores.md).

# Export student engagement scores

Use this endpoint to export every student's engagement score, for example to rank students by how much they use Stellic. Each row has `Username`, `ID` (the student's SIS ID, blank if there isn't one), and `Engagement Score`, a whole number from 0 to 5 based on the student's activity in Stellic over the last year. The file always comes back in the response.

## GET /exports/engagement\_score

>

```json
{"openapi":"3.0.0","info":{"title":"Stellic for Developers","version":"1.0"},"tags":[{"name":"Exports","description":"Institution-wide datasets as CSV or JSON. Small datasets come back inline; large ones run in the background and return a `file_name` you poll with `GET /get_export_url/` for a download link."}],"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."}}},"paths":{"/exports/engagement_score":{"get":{"tags":["Exports"],"parameters":[{"name":"output_format","in":"query","required":false,"description":"`csv` (default) or `json`. If you omit it and send the header `Accept: application/json` (exactly that value), the export is produced as `json`; an explicit `output_format` always wins.","schema":{"type":"string","enum":["csv","json"],"default":"csv"}},{"name":"delivery_channel","in":"query","required":false,"description":"`http_file` returns the file in the response, `http_response` returns the same content without the attachment header, and `s3` runs the export in the background (poll `GET /get_export_url/` with the returned `data.file_name`). Omit it and the file always comes back in the response.","schema":{"type":"string","enum":["http_file","http_response","s3"]}}],"responses":{"200":{"description":"The rows, in the response as CSV or, with `output_format=json`, as a JSON array of row objects keyed by column name. With `delivery_channel=s3` the export runs in the background and the response is the job object with `data.file_name` to poll on `GET /get_export_url/`.","content":{"application/json":{"schema":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"Username":{"type":"string"},"ID":{"type":"string","nullable":true},"Engagement Score":{"type":"integer"}}}},{"type":"object"}]}},"text/csv":{"schema":{"type":"string","format":"csv","description":"CSV with the following columns:\n- `Username` - the student's login username.\n- `ID` - the student's SIS ID. Blank (`null` in JSON) for a student who has none.\n- `Engagement Score` - the last saved score, a whole number from 0 to 5 based on the student's activity in Stellic over the last year. A student with no recorded activity scores `0`.\n\nEvery student has a row, including test accounts, prospective students, and archived students. Row order isn't fixed.\n"}}}},"400":{"description":"An unsupported `output_format` or `delivery_channel` returns `{\"errors\": [\"Output format provided is currently not supported\"]}` or `{\"errors\": [\"Delivery channel provided is currently not supported\"]}`."},"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"}}}}}}}}}}}
```

#### Notes

* **Every student is included, including test accounts, prospective students, and archived students.** Filter the rows on your side. Row order isn't fixed.
* **Scores are the last saved value.** A score is updated when it's read through [`GET /student/{student_username}/profile/engagement_score`](/stellic-partner-api/student/read-a-named-property-from-a-student-s-profile.md) or when the student's search record is updated, so it can trail recent activity. A student with no recorded activity scores 0.

#### Related APIs

* [`GET /student/{student_username}/profile/{property}`](/stellic-partner-api/student/read-a-named-property-from-a-student-s-profile.md) for one student's current score and how it compares with the average.
* [`GET /exports/{property}`](/stellic-partner-api/exports/bulk-export-dispatcher.md) for formats, delivery, and errors.
