# 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](https://github.com/classroomtechtools/faria_edu_dev_portal_staging/blob/main/openapply/recipes/broken-reference/README.md) 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.

{% hint style="info" %}
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.&#x20;
{% endhint %}

#### 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`

&#x20;       &#x20;

### 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](https://github.com/classroomtechtools/faria_edu_dev_portal_staging/blob/main/openapply/faria-suite/integrating-with-faria-suite-apis/pagination-delta-filters.md "mention")


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.fariaedu.com/integrations-portal/openapply/recipes/efficiently-pulling-records.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
