TerraGo API

Roll Call

Manual attendance records marked by staff for a student on a given zone/location/trip. Create, list, fetch, update and delete roll-call entries used when automatic tap detection isn't available.

5 endpoint(s)
POST Create Roll Call Record {{url}}/rollcall/add

Manually record a student's attendance status for a zone/location (e.g. a teacher marks a child present/absent by hand, as opposed to an automatic NFC tap).

Request Body

  • status (string, required): e.g. PRESENT, ABSENT (see RollCall::STATUS).
  • waaszoneuuid (string UUID, required)
  • waaszonename (string, required)
  • dependant_id (string UUID, required)
  • notes (string, optional)

Notes

  • Always recorded with mode: "Manual" (vs. "NFC" for scanner-driven roll calls).
  • If status is ABSENT and there's an active trip for the zone/location, the trip's absent counter is incremented automatically.
  • "Attendance" in this system means physical boarding/tap events, not classroom attendance.

Response

The created roll-call record (data).

Auth
Bearer token
Request Body
{
    "status": "ABSENT", //use: ABSENT, PRESENT, UNKNOWN
    "waas_zone_uuid": "4194ced8-3a81-4bcc-8f50-b15df3a289be",
    "waas_zone_name": "KBA 156",
    "dependant_id": "0b1475e9-f811-4683-8a90-a94468dc7ef1",
    "notes": "No notea"
}
Sample Response (200 OK)
{
    "status": 200,
    "data": {
        "id": "d355c82f-9c3a-4deb-af62-0172d9c33d0e",
        "dependant": {
            "id": "c75f2355-2f88-40b2-916b-999744d1d1f5",
            "first_name": "Lincoln",
            "last_name": "Chege"
        },
        "staff": {
            "id": "e62dbe23-f4f5-4f9e-97cd-a0b9a2c8616a",
            "first_name": "Developer",
            "last_name": "Michael"
        },
        "grade": "8th Grade",
        "notes": "No notea",
        "waas_zone_name": "KBA 156",
        "waas_zone_uuid": "4194ced8-3a81-4bcc-8f50-b15df3a289be",
        "status": "Absent",
        "time": null
    },
    "message": "RollCall Created Successfully"
}
GET List Roll Call Records {{url}}/rollcall

Retrieve a paginated list of roll call (attendance) records.

Query Parameters

  • per_page (integer, optional, default 10, max 20)
  • status (string, optional)
  • waaszoneuuid (string UUID, optional)
  • supervisor_id (string UUID, optional): Scope to a school.
  • dependant_id (string UUID, optional)
  • date_range (string, optional): "YYYY-MM-DD,YYYY-MM-DD".
  • search (string, optional): Matches notes or zone/location name.

Response

Paginated list of roll-call records (data) with meta.

Auth
Bearer token
Used On
Request Body
{
    "status": "ABSENT", //only use: PRESENT, ABSENT, UNKNOWN, N/A
    // "waas_zone_uuid": "ada52fc6-d481-48d9-82b3-fddb07d5d44f", //the id of the zone
    // "supervisor_id": "ada52fc6-d481-48d9-82b3-fddb07d5d44f", //administrative staff id/supervisor id
    // "dependant_id":"ada52fc6-d481-48d9-82b3-fddb07d5d44f",
    "search": ""
}
Sample Response (200 OK)
{
    "data": [
        {
            "id": "26072ef5-cba5-4046-bc2b-157d09565cb8",
            "dependant": {
                "id": "c75f2355-2f88-40b2-916b-999744d1d1f5",
                "first_name": "Lincoln",
                "last_name": "Chege"
            },
            "staff": {
                "id": "e62dbe23-f4f5-4f9e-97cd-a0b9a2c8616a",
                "first_name": "Developer",
                "last_name": "Michael"
            },
            "grade": "8th Grade",
            "notes": "",
            "waas_zone_name": "KBA 156",
            "waas_zone_uuid": "4194ced8-3a81-4bcc-8f50-b15df3a289be",
            "status": "Absent",
            "time": null
        }
    ],
    "links": {
        "first": "https://terragostg.terrasofthq.com/api/rollcall?page=1",
        "last": "https://terragostg.terrasofthq.com/api/rollcall?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [
            {
                "url": null,
                "label": "« Previous",
                "page": null,
                "active": false
            },
            {
                "url": "https://terragostg.terrasofthq.com/api/rollcall?page=1",
                "label": "1",
                "page": 1,
                "active": true
            },
            {
                "url": null,
                "label": "Next »",
                "page": null,
                "active": false
            }
        ],
        "path": "https://terragostg.terrasofthq.com/api/rollcall",
        "per_page": 15,
        "to": 1,
        "total": 1
    },
    "status": 200,
    "message": "RollCalls retrieved Successfully"
}
GET Get Roll Call Record {{url}}/rollcall/26072ef5-cba5-4046-bc2b-157d09565cb8

Retrieve a single roll-call record by UUID, including the staff member who recorded it.

Path Parameters

  • id (string UUID, required): The roll-call record's UUID.

Response

The roll-call record (RollCallResource) with its staff relationship loaded.

Notes

  • Returns 404 if no record matches the UUID.
  • Requires a bearer token (auth:api).
Auth
Bearer token
Sample Response (200 OK)
{
    "status": 200,
    "data": {
        "id": "26072ef5-cba5-4046-bc2b-157d09565cb8",
        "dependant": {
            "id": "c75f2355-2f88-40b2-916b-999744d1d1f5",
            "first_name": "Lincoln",
            "last_name": "Chege"
        },
        "staff": {
            "id": "e62dbe23-f4f5-4f9e-97cd-a0b9a2c8616a",
            "first_name": "Developer",
            "last_name": "Michael"
        },
        "grade": "8th Grade",
        "notes": "",
        "waas_zone_name": "KBA 156",
        "waas_zone_uuid": "4194ced8-3a81-4bcc-8f50-b15df3a289be",
        "status": "Absent",
        "time": null
    },
    "message": "RollCall Retrieved Successfully"
}
PUT Update Roll Call Record {{url}}/rollcall/update/26072ef5-cba5-4046-bc2b-157d09565cb8

Update a roll call record (same fields as creating one; mode is reset to Manual).

Path Parameters

  • id (string UUID, required): Roll call record UUID.

Request Body

Same fields as Create Roll Call Record: status, waaszoneuuid, waaszonename, dependant_id, notes.

Response

The updated roll-call record (data).

Auth
Bearer token
Request Body
{
    "status": "ABSENT", //use: ABSENT, PRESENT, UNKNOWN
    "waas_zone_uuid": "4194ced8-3a81-4bcc-8f50-b15df3a289be",
    "waas_zone_name": "KBA 156",
    "dependant_id": "0b1475e9-f811-4683-8a90-a94468dc7ef1",
    "notes": "No notes"
}
Sample Response (200 OK)
{
    "status": 200,
    "data": {
        "id": "26072ef5-cba5-4046-bc2b-157d09565cb8",
        "dependant": {
            "id": "c75f2355-2f88-40b2-916b-999744d1d1f5",
            "first_name": "Lincoln",
            "last_name": "Chege"
        },
        "staff": {
            "id": "e62dbe23-f4f5-4f9e-97cd-a0b9a2c8616a",
            "first_name": "Developer",
            "last_name": "Michael"
        },
        "grade": "8th Grade",
        "notes": "No notes",
        "waas_zone_name": "KBA 156",
        "waas_zone_uuid": "4194ced8-3a81-4bcc-8f50-b15df3a289be",
        "status": "Absent",
        "time": null
    },
    "message": "RollCall Updated Successfully"
}
DELETE Delete Roll Call Record {{url}}/rollcall/delete/26072ef5-cba5-4046-bc2b-157d09565cb8

Delete a roll-call record by UUID.

Path Parameters

  • id (string UUID, required): The roll-call record's UUID.

Notes

  • Returns 404 if no record matches the UUID.
  • Requires a bearer token (auth:api).
Auth
Bearer token
Sample Response (200 OK)
{
    "status": 200,
    "data": [],
    "message": "RollCall Deleted Successfully"
}