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

Page: https://fous.com/automate/infinite-campus
Updated: 2026-11-12

Works with your own Infinite Campus account. Fous is an independent product.

## What you can build on Campus

### Get behavior incidents

Reads 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

Opens 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

Opens 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

Opens 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](/product/workflows) 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

Starts: Every weekday at 7:30

1. For each school you name, get the behavior incidents in Submitted status for the current year.
2. Keep the incidents that were not there on the last run.
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

Starts: Every Monday at 6:00

1. Get the rows of the saved Ad hoc filter you name for the school and calendar you pick.
2. Keep the rows that changed since the last run.
3. Post them, with the filter's column names, to your warehouse's webhook.

### Weekly summary of completed discipline incidents

Starts: Every Friday at 15:00

1. For each school, get the incidents with status Complete and alignment Discipline.
2. Keep the ones not there on the last run and read each one's event types and categories.
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](/product/methods), 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.

Example request:

```
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"
    }
  }'
```

Example response:

```
{
  "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](https://kb.infinitecampus.com/help/oneroster-api), [Digital Learning Applications Configuration](https://kb.infinitecampus.com/help/learning-interoperability), [Behavior Management Tool](https://kb.infinitecampus.com/help/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](https://fous.com/automate/slate.md)
- [Naviance](https://fous.com/automate/naviance.md)
- [Common App for Recommenders](https://fous.com/automate/common-app-for-recommenders.md)
- [National Student Clearinghouse secure site](https://fous.com/automate/national-student-clearinghouse-secure-site.md)
- [AQA Centre Services](https://fous.com/automate/aqa-centre-services.md)
- [Edexcel Online](https://fous.com/automate/edexcel-online.md)
- [FSA Partner Connect](https://fous.com/automate/fsa-partner-connect.md)
- [Submit learner data](https://fous.com/automate/submit-learner-data.md)
- [VA Enrollment Manager](https://fous.com/automate/va-enrollment-manager.md)
- [Sponsorship Management System](https://fous.com/automate/sponsorship-management-system.md)
- [PowerSchool SIS](https://fous.com/automate/powerschool-sis.md)
- [EDOF](https://fous.com/automate/edof.md)
- [Arbor MIS](https://fous.com/automate/arbor-mis.md)
- [SLC HEP Services](https://fous.com/automate/slc-hep-services.md)
- [Parchment](https://fous.com/automate/parchment.md)
- [UCAS adviser portal](https://fous.com/automate/ucas-adviser-portal.md)
- [Benevity Causes Portal](https://fous.com/automate/benevity-causes-portal.md)

Other industries: [AEP online account](/automate/aep-online-account), [GrabMerchant](/automate/grabmerchant), [businessONLINE](/automate/businessonline), [Site Cielo](/automate/site-cielo), [SSO e-Service](/automate/sso-e-service), [FBR IRIS](/automate/fbr-iris).

## Frequently asked questions

### Does Infinite Campus have an API?

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.

### What statuses does a behavior incident move through?

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.

### Can a vendor that is not a Digital Learning Partner read data from Campus?

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.

### Can I get the results of an Ad hoc filter on a schedule?

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.

### Is Fous affiliated with Infinite Campus?

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.

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.
