> 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/async-export-sections-counting-for-requirements.md).

# Async export; sections counting for requirements

Use this endpoint to see, for students graduating in one or more terms, which courses and sections count toward each requirement and which requirements still need courses. Pass each term's SIS term code as `usem_ids`, once per term. The students are those with a graduation application loaded by your data sync for those terms, plus those whose expected graduation is in them. The export runs in the background unless you set `delivery_channel=http_file`; download it with [`GET /get_export_url/`](/stellic-partner-api/exports/poll-an-async-export-and-fetch-its-presigned-url.md).

## GET /exports/sections\_counting\_for\_reqs

>

```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/sections_counting_for_reqs":{"get":{"tags":["Exports"],"parameters":[{"name":"usem_ids","in":"query","description":"The SIS term code of each graduation term to report on, the same code your data sync uses for the term. Repeat the parameter once per term, like `usem_ids=<term code>&usem_ids=<term code>`. Without it, a background export still returns the envelope and the job then fails; with `delivery_channel=http_file` the call returns 400. A code that matches no term completes with an empty file.","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"output_format","in":"query","required":false,"description":"`csv` (default) or `json` (an array of row objects keyed by column name). 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 this export always runs in the background.","schema":{"type":"string","enum":["http_file","http_response","s3"]}}],"responses":{"200":{"description":"Success. By default the export runs in the background and this envelope comes back right away; poll `GET /get_export_url/` with `data.file_name` until `status` is `completed` or `failed`. With `delivery_channel=http_file` or `http_response` the file comes back in the response instead.","content":{"application/json":{"schema":{"oneOf":[{"type":"array","items":{"type":"object"}},{"type":"object"}]}},"text/csv":{"schema":{"type":"string","format":"csv","description":"One row per course counted toward a requirement, from each student's default plan, with the columns `Username`, `Uni ID`, `Cache Timestamp`, `Audit`, `Program Name`, `Program Short Name`, `Program Type`, `is_program`, `Requirement Name`, `Requirement Path` (joined with `->`), `Num Remaining`, `Satisfied`, `Course Code`, `is_transfer`, `Units`, `Semester`, `Year`, and `Section External IDs` (pipe-separated). A requirement with no course yet has one row with `-` in the course columns.\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\"]}`. With `delivery_channel=http_file` or `http_response` and no `usem_ids`, the body is `{\"errors\": [\"['`usem_ids` is a required parameter']\"]}`."},"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"}}}}}}}}}}}
```

#### Columns

One row per course counted toward a requirement, with `Username`, `Uni ID`, `Cache Timestamp`, `Audit`, `Program Name`, `Program Short Name`, `Program Type`, `is_program`, `Requirement Name`, `Requirement Path` (joined with `->`), `Num Remaining`, `Satisfied`, `Course Code`, `is_transfer`, `Units`, `Semester`, `Year`, and `Section External IDs` (pipe-separated). A requirement with no course yet has one row with `-` in the course columns.

#### Notes

* **The export uses each student's default plan and their audit without planned courses.** Only graded and registered courses appear, and only sections the student is enrolled in. `Cache Timestamp` is when that audit was last computed, so a row can trail recent changes. Archived students are included.
* **A missing `usem_ids` still returns the background job's response.** The job then fails. A code that doesn't match a term completes with an empty file.
* **Section IDs can repeat** (`S1|S1`) when the export has run before. Remove duplicates on your side.

#### Related APIs

* [`GET /get_export_url/`](/stellic-partner-api/exports/poll-an-async-export-and-fetch-its-presigned-url.md) to download the export.
* [`GET /exports/{property}`](/stellic-partner-api/exports/bulk-export-dispatcher.md) for formats, delivery, and errors.
