Skip to main content

Bulk Export Reference Guide

Updated over a week ago

Stellic Export API Documentation

Stellic provides a RESTful interface that enables you to export data on demand. It offers secure endpoints for programmatic access to Stellic resources, complementing other integration methods to deliver near real-time data to your users.

Important Notes:

There are a few things to keep in mind when using the bulk export endpoints:

  • You must have superadmin permissions to access these endpoints

  • All date/time fields use UTC timezone by default

  • Our system enforces a 2-minute request timeout limit - requests for large data exports may time out

  • The bulk export process will vary depending on the volume of data requested

    • Small volumes of data may be exported via a single synchronous request

    • Larger data exports must be performed via an asynchronous process that requires multiple steps

Parameters and Structure

The base URL for the export API is as follows:

https://{hostname}/exports/export_data/{data_type}?output_format={output_format}&delivery_channel={delivery_channel}

The URL has three main parameters:

data_type [Required] This parameter defines what data type you wish to be exported. This is a URL parameter and is included in the path of the URL. See below for a list of the data types we currently support.

output_format [Required] This parameter defines how the exported data will be formatted. This is a query parameter. The only value supported at this time is: csv

delivery_channel [Optional] This parameter controls whether data is exported via a synchronous or asynchronous flow. See the Synchronous and asynchronous bulk export flows section for more information.

This parameter should be provided only if you want to explicitly choose a delivery channel, such as forcing either an S3 export or a local download.

If this parameter is omitted, the endpoint will default to the synchronous flow.

This is a query parameter and the currently supported values are: β€’ http_file which requests the synchronous flow and allows you to download the requested file on your PC/Mac β€’ s3 which requests the asynchronous flow and allows you to upload the data to S3, which is useful for very large data sets that will time out in the UI

Sample API URL:

https://{hostname}/exports/export_data/bulk_exceptions_detailed?output_format=csv&delivery_channel=s3

Note: if delivery_channel is not specified, an internal method will determine whether the export should run asynchronously based on the export type. This heuristic is managed internally by the backend (By default it is synchronous). For example, if the export type, such as audit_requirements, is determined to run asynchronously, the request will return a JSON response with status information. The requester will then receive in-app notifications on the progress, including scheduled, started, completed/failed, etc.


Synchronous and Asynchronous Bulk Export Flows

All bulk export endpoints support two modes of operation: synchronous and asynchronous. You can control which mode is used by setting the optional delivery_channel query parameter.

The Synchronous Flow

When the delivery_channel parameter is omitted or set to http_file, the endpoint uses the synchronous flow.

For synchronous exports, the process requires just a single API call, making it simpler but unsuitable for large data volumes. Attempting to export extensive datasets synchronously will result in request failures.

The Asynchronous Flow

When the delivery_channel parameter is set to s3, the endpoint uses the asynchronous flow.

In order to export larger volumes of data, you must use the asynchronous flow. The asynchronous flow requires several steps as follows:

1. Initiate the export

Navigate to your formatted url:

https://{hostname}/exports/export_data/{data_type}?output_format=csv&delivery_channel=s3

Example url:

https://{hostname}/exports/export_data/plan_courses?output_format=csv&delivery_channel=s3

This starts the export process, and should respond with data that looks like:

{   "success": true,   "data": {     "name": "Plan courses",     "bg_task": {       "name": "async_export",       "description": "Exports a report asynchronously",       "status": "not_started",       "start_time": null,       "end_time": null,       "task_id": "7df0a737-c2ca-4fba-847c-dba72085d071",       "created_time": "2025-04-08 18:20:33.229534+00:00"     },     "status": "not_started",     "file_name": "plan_courses-20250408_182033Z-9aQXvxxy.csv",     "requested_on": "2025-04-08 18:20:33.236624+00:00",     "file_expiry": "2025-04-11 18:20:33.236624+00:00"   } }

Take note of the value under the data -> file_name key, in this case it is: plan_courses-20250408_182033Z-9aQXvxxy.csv

2. Check if the exported data is ready

Navigate to your formatted url:

https://{hostname}/exports/get_export_url/?file_name={file_name_from_step_1}

Using the response from the previous step, the url would be:

https://{hostname}/exports/get_export_url/?file_name=plan_courses-20250408_182033Z-9aQXvxxy.csv

You will see a response that looks like the following:

{   "success": true,   "status": "started",   "url": null }

Reload the page until the response changes to something like the following:

{   "success": true,   "status": "completed",   "url": "https://stellicuni.s3.amazonaws.com/export/plan_courses-20250408_182033Z-9aQXvxxy.csv?AWSAccessKeyId={long_string}&Signature={another_long_string}&Expries=1744139034" }

Take note of the value under the url key.

3. Download the export data

Navigate to the URL from step 2 to download the report.


Data Types and Sample URLs

Data Type

Description and Sample URL

audit_data

Exports data of all audits

Sample API URL:

https://{hostname}/exports/export_data/audit_data?output_format=csv

audit_requirements

Exports all the requirements of an audit along with the constraints on each requirement.

Parameters:

reset_cache

Optional: If set to true, it updates the cache of all audits. Helpful in the case where the cache needs to be updated to export the latest data (Especially type strings). This is generally for developers to run from backend. Will generally timeout through the URL

for_ext_ids

Optional: If set to true, it does not export the constraints for each requirement. Instead, for each requirement it gives out a column for external ids present on the requirement. By default, it is set to false.

Sample API URL:

https://{hostname}/exports/export_data/audit_requirements?delivery_channel=http_file&output_format=csv&for_ext_ids=true&reset_cache=false

bulk_exceptions_detailed

Exports all exceptions, parameter exclude_archived is true by default and only false is the valid value. school_shortname is included to filter data by school.

Parameters:

school_shortname={IA}

Optional: To only export exceptions for a single school. Must use valid school ID from configuration data.

include_all=true

Optional: Include all exceptions regardless of status (active, pending, inactive, canceled, denied).

exclude_archived=false

Optional: to export all students (archived and non-archived)

Sample API URL:

https://{hostname}/exports/export_data/bulk_exceptions_detailed?output_format=csv&include_all=true

bulk_pathways

Exports data of all pathways in bulk

Parameters:

include_placeholders

Optional: If set to true, it fetches placeholders in addition to the planned courses and extracurricular activities. Default value is false.

include_extracurriculars

Optional: If set to true, it fetches extracurricular activities along with planned courses. Default value is false.

Sample API URL:

https://{hostname}/exports/export_data/bulk_pathways?output_format=csv&include_placeholders=true&include_extracurriculars=true

dynamic_group_entities

Exports all users and groups assigned to a specific dynamic group, including entity information (programs, departments, schools).

Parameters:

dynamic_group

Required: The name of the dynamic group to export entities for. e.g. "Engineering Students"

Sample API URL:

https://{hostname}/exports/export_data/dynamic_group_entities?output_format=csv&dynamic_group=Engineering Students

engagement_score

Exports the engagement scores for all students. The engagement score is a measure of a student's interaction and participation in the system.

Sample API URL:

https://{hostname}/exports/export_data/engagement_score?output_format=csv

export_workflow_responses

Exports all the petitions of a specified workflow.

Parameters:

workflow_id

Required: Specifies which workflow to get the petition from. e.g. 1, 23, etc.

Sample API URL:

https://{hostname}/exports/export_data/export_workflow_responses?output_format=csv&workflow_id=1

incorrect_audit_applications

Exports a list of students along with their audit applications' details. Specifically, it checks whether the audit applied to a student's program matches the expected audit version and identifies if the audit was manually applied.

Sample API URL:

https://{hostname}/exports/export_data/incorrect_audit_applications?output_format=csv

plan_courses

Exports course information for students based on the mode parameter.

Parameters:

mode

Required: This parameter determines the type of courses to fetch. Can be either planned or unmatched.

course_filter

Optional: Can be either registered or planned. It determines whether to include courses from official audit (registered) or from the planned courses (planned). Defaults to registered.

Sample API URL:

https://{hostname}/exports/export_data/plan_courses?output_format=csv&mode=unmatched&course_filter=registered

plancourse_enrollment_by_term

Exports the number of enrollment in plan courses over each term.

Parameters:

years

Required: A list of years for which to get the data of. e.g. [2021, 2022]

school_name

Required: Filters student based on the specified school. e.g. Divinity School etc.

Sample API URL:

https://{hostname}/exports/export_data/plancourse_enrollment_by_term?output_format=csv&years=[2020,2021,2022,2023]&school_name=Divinity School

programs_without_audits

Exports all programs which do not have a relevant audit

Sample API URL:

https://{hostname}/exports/export_data/programs_without_audits?output_format=csv

registration_details

Exports details about the courses each student has pre-registered for in a specific semester and year.

Parameters:

year

Required: The year of pre-registration. e.g. 2022, 2023 etc.

semester

Required: The semester of pre-registration. e.g. winter, fall etc.

timestamp

Optional: If provided, it only fetches pre-registration before the specified timestamp. e.g. 2023-01-19 01:53

all_students

Optional: if provided, it fetches a list of all students including the students who have not pre-registered for any course during the specified year and semester. e.g. True or False. Defaults to False

Sample API URL:

https://{hostname}/exports/export_data/registration_details?output_format=csv&semester=winter&year=2023&timestamp=2023-01-17 01:53&all_students=True

sections_counting_for_reqs

This endpoint exports courses and requirements from course sections that are counting towards requirements. The operation is performed in the background.

Parameters:

usem_ids

Required: The term_id for one or multiple unique semesters. This parameter identifies the semesters for which the course section requirement counts are to be exported

Output Format:

The data is exported in CSV format.

Sample API URL:For Exporting Data of a Single Term:

https://{hostname}/exports/export_data/sections_counting_for_reqs?output_format=csv&usem_ids=2434

For Exporting Data of Multiple Terms:

https://{hostname}/exports/export_data/sections_counting_for_reqs?output_format=csv&usem_ids=2434&usem_ids=3435

student_geneds

Exports information about what and how many Geneds each student is enrolled in

Sample API URL:

https://{hostname}/exports/export_data/student_geneds?output_format=csv

tagged_notes

Exports all the notes with tag X along with information about the linked student and the note creator.

Parameters:

tag

Required: This parameter takes input of what "tag" to search for on notes.

Sample API URL:

https://{hostname}/exports/export_data/tagged_notes?output_format=csv&tag=2023FANeverAttended

appointments_admin_info

Exports administrative information about staff members who have admin roles, including their appointment timeblock creation status, calendar integration, and appointment scheduling activity.

Sample API URL:

https://{hostname}/exports/export_data/appointments_admin_info?output_format=csv

requirement_units_taken

Exports the credits counting towards specific requirements for each student across their programs.

Parameters

screen_names

Required: A list of requirement screen names to get credit data for. e.g. ["Writing Requirement", "Science Requirement"]

audit_mode

Optional: Can be either official or planned. Determines whether to use official audit data or include planned courses. Defaults to official.

exclude_archived

Optional: If set to true, excludes archived students from the export. Defaults to true.

Sample API URL:

https://{hostname}/exports/export_data/requirement_units_taken?output_format=csv&screen_names=["Writing Requirement","Science Requirement"]&audit_mode=official&exclude_archived=true

permissions

Exports detailed permission information for users or groups, including object-level permissions across the system.

Parameters:

usernames

Optional: A list of usernames to export permissions for. e.g. ["john.doe", "jane.smith"]

group_ids

Optional: A list of group IDs to export permissions for. e.g. [1, 23, 45]

Note: If group_ids is provided and non-empty, exports group permissions; otherwise, exports user permissions.

Sample API URL:

https://{hostname}/exports/export_data/permissions?output_format=csv&usernames=["jdoe","jsmith"]

graduation_applications

Exports graduation application data with filtering options for updated records.

Parameters:

updated_since

Optional: Filters applications updated after the specified timestamp. Accepts ISO 8601, human-readable format, or Python datetime string. e.g. 2025-06-10T02:11:37 or 06/10/2025, 02:11:37

use_local_timezone

Optional: If set to true, interprets naive datetime as local time and converts to UTC. Defaults to false (treats as UTC).

Sample API URL:

https://{hostname}/exports/export_data/graduation_applications?output_format=csv&updated_since=2025-06-10T02:11:37&use_local_timezone=false

all_appointments

Exports all appointment data with optional date range filtering and custom field selection.

Parameters:

start

Optional: Start date for appointment filtering. Must be provided together with end. e.g. 2025-01-01

end

Optional: End date for appointment filtering. Must be provided together with start. e.g. 2025-12-31

fields

Optional: Comma-separated list of specific fields to include in the export. e.g."student_name,advisor_name,appointment_time"

Sample API URL:

https://{hostname}/exports/export_data/all_appointments?output_format=csv&start=2025-01-01&end=2025-12-31&fields=student_name,advisor_name,appointment_time

user_groups

Exports a list of all available user groups.

Sample API URL:

https://{hostname}/exports/export_data/user_groups?output_format=csv
Did this answer your question?