> 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-equivalency-rules.md).

# Export equivalency rules

Use this endpoint to export your institution's equivalency rules, one row per rule: which source courses at another institution map to which of your courses. The export takes no filters. With more than 5,000 rules it runs in the background; download it with [`GET /get_export_url/`](/stellic-partner-api/exports/poll-an-async-export-and-fetch-its-presigned-url.md).

## GET /exports/equivalency\_rules

>

```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/equivalency_rules":{"get":{"tags":["Exports"],"parameters":[{"name":"output_format","in":"query","required":false,"description":"Format of the exported file. Defaults to `csv`. 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`). If omitted, delivery auto-selects by volume: in the response at 5,000 rules or fewer in total, in the background above that.","schema":{"type":"string","enum":["http_file","http_response","s3"]}}],"responses":{"200":{"description":"Equivalency rules returned in the response as a CSV or JSON file attachment (5,000 rules or fewer), or a JSON envelope with a `file_name` to poll for background delivery. Every rule is included whatever its status (draft, pending, approved, archived, or published), and the file has no status column.","content":{"application/json":{"schema":{"oneOf":[{"type":"array","items":{"type":"object"}},{"type":"object"}]}},"text/csv":{"schema":{"type":"string","format":"csv"}}}},"400":{"description":"Bad Request - unknown `output_format` or `delivery_channel`.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthorized - Invalid or missing API token","content":{"application/json":{"schema":{"type":"object"}}}},"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

* `external_rule_id`: the rule's external ID, blank if it has none.
* `source_course_code`, `source_course_pattern`, `source_course_title`, `source_inst_id`, `source_inst_name`: the other institution's side.
* `source_units`: the minimum converted units, or the minimum total units when that's what the rule sets.
* `target_course_code`: your courses.
* `effective_start_term`, `effective_start_year`, `effective_end_term`, `effective_end_year`: when the rule applies. `source_version_start_semester` and `source_version_start_year` always repeat the start.
* `is_exam_credit`: `Yes` or `No`.
* `credit_override`: unit overrides, listed only for target courses that have one.
* `target_enrollment_tag`, `target_course_tag`: the plan tags and course attributes the rule awards.
* `notes` (the rule's private note) and `articulation_notes`.
* `school_id` (the school's short name, the same value an equivalency import accepts) and `school_name`: the school of the rule's target courses, blank if none.

Columns with several values separate them with `|`.

#### Notes

{% hint style="warning" %}
**Every rule is included, whatever its status, and there's no status column.** Draft, pending, approved, archived, and published rules all appear, and a draft has the same `external_rule_id` as the published rule it copies, so the two can't be told apart.
{% endhint %}

* **`credit_override` values don't line up with `target_course_code`.** Courses without an override are skipped, so the second override isn't necessarily for the second course.
* **A rule that can't be exported has `ERROR` in the second column** and blanks after it. The rest of the file is unaffected.

#### Related APIs

* [`GET /exports/articulated_courses`](/stellic-partner-api/exports/export-articulated-courses.md) for the transfer credit these rules award.
* [`GET /exports/{property}`](/stellic-partner-api/exports/bulk-export-dispatcher.md) for formats, delivery, and errors.
