FousInfinite Campus
Turn your district's Infinite Campus into an API
Read behavior incidents, one incident's events and participants, or the rows of a saved Ad hoc filter from Infinite Campus with one API call each. A workflow can check each school's new Submitted incidents every weekday morning and email you the list.
Works with your own Infinite Campus account. Fous is an independent product.
What you can build on Campus
Get behavior incidents
Build thisReads the Incident Management list in Behavior Management for the School and Year you pick, filtered by Status and Alignment.
- Takes
- School, year, status (optional), alignment (optional)
- Returns
- Incident ID, status, submitted date, submitted by, alignment, title, date of incident, location
Read an incident's events and participants
Build thisOpens one incident in Behavior Management and reads its Incident Detail Information and its Events and Participants.
- Takes
- School, year, incident ID
- Returns
- Title, date and time of incident, context, location, details, event type, category, demerits/points, state code, participants
Get a saved Ad hoc filter's results
Build thisOpens a filter in Saved Filters on the Filter Designer, runs Test for the School and Calendar you pick, and reads the rows it returns.
- Takes
- Filter name, school, calendar
- Returns
- The filter's columns for each row, last updated, last test run
Change an incident's status
Build thisOpens one incident in Behavior Management and sets its Status to In Progress or Complete, then saves.
- Takes
- School, year, incident ID, new status
- Returns
- Incident ID, status, title, date of incident
Automate Campus with a workflow
A workflow runs your methods as one process, with nobody at the screen. A schedule or a call from your own system starts it, the steps run in order, and the result arrives in your inbox or in the systems you already use.
New Submitted behavior incidents, each school, every morning
Build this- Starts
- Every weekday at 7:30
- Step 1
- For each school you name, get the behavior incidents in Submitted status for the current year.
- Step 2
- Keep the incidents that were not there on the last run.
- Step 3
- Email you the list, one section per school, with title, date of incident, location and submitted by.
Weekly Ad hoc filter results to your data warehouse
Build this- Starts
- Every Monday at 6:00
- Step 1
- Get the rows of the saved Ad hoc filter you name for the school and calendar you pick.
- Step 2
- Keep the rows that changed since the last run.
- Step 3
- Post them, with the filter's column names, to your warehouse's webhook.
Weekly summary of completed discipline incidents
Build this- Starts
- Every Friday at 15:00
- Step 1
- For each school, get the incidents with status Complete and alignment Discipline.
- Step 2
- Keep the ones not there on the last run and read each one's event types and categories.
- Step 3
- Group them by event type and category and email you the summary.
You can run a workflow by hand on every plan, Free included. Schedules and webhook triggers come with the paid plans, from $29 a month.
Once built, one call from your code
Once you have built a method, it is one POST to /v1/runs from your backend, or a tool an AI agent calls over MCP. This is what “Get behavior incidents” would look like.
curl https://api.fous.com/v1/runs \
-H "Authorization: Bearer $FOUS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"method": "infinitecampus.com/get_behavior_incidents",
"input": {
"school": "Northwind Middle School",
"year": "26-27",
"status": "Submitted"
}
}'
{
"status": "completed",
"data": {
"school": "Northwind Middle School",
"year": "26-27",
"incidents": [
{
"incident_id": 48213,
"status": "Submitted",
"submitted_date": "2026-11-11",
"submitted_by": "Acme, Jordan",
"alignment": "Discipline",
"title": "Disruption in class",
"date_of_incident": "2026-11-11",
"location": "Classroom"
}
],
"count": 1
}
}
An example with invented data, not a ready-made endpoint. The method exists in your organization once you build it, and its name, inputs and fields follow your request.
Campus’s own options
Campus offers a OneRoster API that third-party systems such as an LMS call with credentials the district creates in the Digital Learning Applications Configuration tool. It covers roster and section data, and assignments, grades and scores when enabled. Without the Campus Learning premium offering a district can create Roster Sync connections only. Behavior incidents and Ad hoc filters stay in Campus itself.
| Option | What it covers | What it takes |
|---|---|---|
| OneRoster API (1.1 and 1.2) | Roster and section data; assignments, grades and scores where Grade Book Sync or Score Passback is enabled. | A connection set up by the district, with a Client ID, Client Secret and Token URL. Grade connections need Campus Learning and a partner vendor. |
| LTI connections | Teachers add learning tools to assignments; students open them in Campus Student and scores come back to the Grade Book where available. | Campus Learning, configured in the Digital Learning Applications Configuration tool. |
| Campus by hand | Behavior Management, the Filter Designer and other tools, for the School, Year and Calendar chosen in the Campus toolbar. | A staff account from your district, with tool rights for each tool. |
Read on November 12, 2026: OneRoster API, Digital Learning Applications Configuration, Behavior Management Tool.
Signing in to Campus
Staff sign in to their district's Campus with a username and password. The district chooses whether a second step is required: none, a code sent by email, or a time-based code from an authenticator app. With Fous you sign in once through Campus's own sign-in with your own account. The login is sealed with AES-256. The emailed code is handled, and with it or with no second step an expired session is signed back in.
Worth knowing
- The toolbar decides what you see
- Behavior Management lists incidents for the School and Year selected in the Campus toolbar, and Ad hoc filters report on the School and Calendar chosen there. A method takes them as inputs.
- OneRoster serves a daily cache
- OneRoster data is refreshed once a day, at 10:10pm unless the district sets another time. A manual Refresh OneRoster Cache starts two minutes after you click it.
- Completed incidents can be locked
- When the preference to lock completed incidents is on, Complete incidents aligned to Discipline are locked. Only staff given a specific tool right can reopen one.
- Wait for schedules before syncing
- Infinite Campus advises districts not to sync with vendors at the start of the school year until student scheduling is finalized.
More in Education, research and nonprofit
- Slate
- Naviance
- Common App for Recommenders
- National Student Clearinghouse secure site
- AQA Centre Services
- Edexcel Online
- FSA Partner Connect
- Submit learner data
- VA Enrollment Manager
- Sponsorship Management System
- PowerSchool SIS
- EDOF
- Arbor MIS
- SLC HEP Services
- Parchment
- UCAS adviser portal
- Benevity Causes Portal
Other industries: AEP online account, GrabMerchant, businessONLINE, Site Cielo, SSO e-Service, FBR IRIS.
Frequently asked questions
Yes, a OneRoster API for third-party systems such as an LMS. The district creates each connection and its credentials in the Digital Learning Applications Configuration tool. It covers rosters and sections, and grades and scores when enabled, which needs Campus Learning. Behavior records and Ad hoc reports stay in Campus.
Submitted, In Progress and Complete. The Incident Management list can be filtered by status and by alignment, Discipline or Award, so a method can read only the incidents in one status.
Yes, for rosters only. A district can connect a non-partner vendor with Roster Sync, but that vendor cannot send any data back to Campus, including grades, and Campus Support does not troubleshoot those connections.
With Fous, yes. You build a method that runs the saved filter in the Filter Designer and returns its rows as JSON, then a workflow runs it on a schedule and emails you the rows or posts them to your webhook.
No. Fous is an independent product. You use it with your own district staff account, and a method reads and does only what that account's tool rights allow.
Put Infinite Campus behind an API call
Describe one job in Studio and see the method it builds, with 100 credits a month and no credit card, or book a demo and bring the sites your team signs in to.

Read nextPowerSchool SISEDOFArbor MISAEP online accountHow methods workHow workflows run
Fous is an independent product: it is not affiliated with, endorsed by or sponsored by the operator of Infinite Campus (Infinite Campus). The name is used only to say which system this page is about. Something here wrong or out of date? Write to legal@fous.com.