Problem: OpenApply is used as the entry point in the admissions process, where parents upload passport photos, and other details. You would like to be able to store those assets in another system, or perhaps upload them into your school's SIS or MIS platform.
Solution: OpenApply has an exporting feature that will allow you to do a wholesale export of all files, but if you looking for an automated process, you can use the APIs to achieve this.
Notes:
- This technique assumes some understanding of APIs. Please consult OpenApply's Reference Documentation for more details about how to call each endpoint
Steps Involved:
- We support using the API to get all student information, including filtering, and retrieving updates since the last call. This student information includes a secret link to PDF files submitted to application form.
- You can then securely download these assets, save to disk, or upload to the target platform.
Step 1: Use the Get all Students endpoint to get a list of all the students in OpenApply. The first time, you will need to get all of the students. However, on subsequent calls, say, a week later, you can use the `since_date` query parameter to only get those records that have changed since the YYYY-MM-DD formatted-date. In this way, you can loop through a much smaller number of records, instead of all of them every time.
You can obtain the "ids" that is used, which we will use in Step 2 to query to obtain the files.
Step 2: Use the Get all Student's Files endpoint to get individual student files. They can be found in each individual record.
Step 3: Retrieve the value of all the target properties that has been identified, for example `profile_photo`. It will be a full URL.
Step 4: Use the value of the property and connect to the internet using that value as the URL, just as you would normally. If testing manually, you can use the browser. You will need to authenticate with the same token.
Step 5: Note that depending on the URL, it may be a link to a content provider, which provides an unguessable random number of characters, and does not require a log in. For example, the URLs may be to CloudFlare.
Step 6: The response to this call will have a `Content-Type` response header which will indicate the format of the blog. Save the file with a label, including the student ID as an identifier, so that this particular file is clearly labeled as having some particular content.
In this way, automated processes can be constructed to extract the uploaded assets.