Efficiently Pulling Records
Problem Statement
OpenApply supports pulling records for all families, including children and respective linked parents, which can include many thousands of records. When synchronizing these records with other systems, there are methods to optimize how an API request is built so that only the relevant records are fetched.
What methods are available to build requests to only fetch the records that need to be synchronized?
The below examples use the Get all Students endpoint, but are applicable to any endpoint that are documented to support different filters.
Using since_date query parameter
If the service you are building only requires to pull the records of the latest changes from some known, given date — such as the last time the application ran — use of the since_date query parameter will limit the records to only those that have changed since the provided date.
It acts as a filter on the record's updated_at field that is maintained by the system.
Using status and status_level query parameter
If the service you are building only requires to pull the records for enrolled students only, the query parameters status can be utilized. The responses will only include records of students with the given status.
The status_level can be used to additionally filter out records that do not match the provided sub status. For example, if the application is only interested in enrolled students whose sub status within the enrolled status is "Secondary" the following call would respond with matching records:
https://../v3/students?status=enrolled&status_level=Secondary
Using enrolled_year query parameter
If the service you are building only requires to pull records for students who were enrolled on a given year, for example 2024, including this parameter will instruct the API to only return student records for the provided year. For example:
https://../v3/students?enrolled_year=2025
Combining filters
Query parameters can be combined together into a single request, and logically are additive.
See also
Please ensure to review additional query parameters that must be utilized along with the above in order to pull all records:
Last updated
Was this helpful?

