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.

There is no way for the consuming application to know, from the response alone, which fields have been changed since the provided date. If any field has changed, the record will be returned.

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:

https://github.com/classroomtechtools/faria_edu_dev_portal_staging/blob/main/openapply/faria-suite/integrating-with-faria-suite-apis/pagination-delta-filters.md

Last updated

Was this helpful?