/students/by-reference-id/{externalR…
- [[BETA] Restore a student by ID](https://developers.edusign.com/reference/post_students-id-restore.md): Restore a student by ID
- [[BETA] Archive a student by external reference id](https://developers.edusign.com/reference/delete_students-by-reference-id-externalreferenceid.md): Hides (archives) a student matched by partner externalReferenceId (API_ID). Same response and error semantics as DELETE /students/:id. **Warning:** Archiving a student also removes them from future…
- [[BETA] Restore a student by external reference ID](https://developers.edusign.com/reference/post_students-by-reference-id-externalreferenceid-restore.md): Restore a student by external reference ID
- [Batch create or update students](https://developers.edusign.com/reference/post_students-batch-upsert.md): Create or update multiple students in a single request with partial success support. Each item is matched by either `studentId` (EduSign internal ID, update only) or `externalReferenceId`…
- [[BETA] Partially update a student by ID](https://developers.edusign.com/reference/patch_students-id.md): Partially update a student addressed by its Edusign id. Only provided fields are modified. - If a field is set to `null` → its value is reset. - If a field is not provided → partial update, the…
- [[BETA] Partially update a student by external reference ID](https://developers.edusign.com/reference/patch_students-by-reference-id-externalreferenceid.md): Partially update a student addressed by your external reference id. Only provided fields are modified. - If a field is set to `null` → its value is reset. - If a field is not provided → partial…
- [Get a student by external reference ID](https://developers.edusign.com/reference/get_students-by-reference-id-externalreferenceid.md): Retrieve a single student using the external reference ID your system gave it. Archived students are returned too. Returns 404 (`STUDENT_NOT_FOUND`) when no student of your school carries that…
- Assessments
- [[BETA] List assessments](https://developers.edusign.com/reference/get_assessments.md): Retrieve a paginated list of assessments with optional filtering
- [Create assessment](https://developers.edusign.com/reference/post_assessments.md): Create a new assessment
- [[BETA] Get assessment by ID](https://developers.edusign.com/reference/get_assessments-id.md): Retrieve a single assessment by its unique identifier
- [[BETA] Update assessment](https://developers.edusign.com/reference/patch_assessments-id.md): Update an existing assessment
- [[BETA] Delete assessment](https://developers.edusign.com/reference/delete_assessments-id.md): Delete an assessment by its unique identifier
- Assessment Submissions
- [List assessment submissions](https://developers.edusign.com/reference/get_assessment-submissions.md): Retrieve a paginated list of assessment submissions with optional filtering by status, student, assessment, dates, etc.
- [Create assessment submission](https://developers.edusign.com/reference/post_assessment-submissions.md): Create a new assessment submission (usually starts as todo)
- [Get assessment submission by ID](https://developers.edusign.com/reference/get_assessment-submissions-id.md): Retrieve a single assessment submission by its unique identifier
- [Update assessment submission](https://developers.edusign.com/reference/patch_assessment-submissions-id.md): Update an existing assessment submission.
- [Delete assessment submission](https://developers.edusign.com/reference/delete_assessment-submissions-id.md): Delete an assessment submission.
- [Get assessment submissions by student](https://developers.edusign.com/reference/get_assessment-submissions-student-studentid.md): Retrieve all assessment submissions for a specific student
- [Get assessment submissions by assessment](https://developers.edusign.com/reference/get_assessment-submissions-assessment-assessmentid.md): Retrieve all submissions for a specific assessment
- [Batch upsert assessment submissions](https://developers.edusign.com/reference/post_assessment-submissions-batch-upsert.md): Create or update up to 1000 assessment submissions in a best-effort batch.
- Professors
- [Create a professor](https://developers.edusign.com/reference/post_professors.md): Create a new professor in the system.
- [[BETA] Get all professors](https://developers.edusign.com/reference/get_professors.md): Retrieve all professors from the system.
- [[BETA] Get a professor by ID](https://developers.edusign.com/reference/get_professors-id.md): Retrieve a professor by their ID.
- [[BETA] Update a professor](https://developers.edusign.com/reference/patch_professors-id.md): Partial update of professor information. Only provided fields are modified. - If a field is set to `null` → its value is reset. - If a field is not provided → partial update, the field is ignored.
- [[BETA] Archive a professor by ID](https://developers.edusign.com/reference/delete_professors-id.md): Soft-removes (archives) a professor for the current school.
- [[BETA] Archive a professor by external reference ID](https://developers.edusign.com/reference/delete_professors-by-reference-id-externalreferenceid.md): Soft-removes (archives) a professor for the current school by external reference ID.
- [[BETA] Update a professor by external reference ID](https://developers.edusign.com/reference/patch_professors-by-reference-id-externalreferenceid.md): Partial update of professor information by external reference ID. Only provided fields are modified. - If a field is set to `null` → its value is reset. - If a field is not provided → partial…
- [Batch create or update professors](https://developers.edusign.com/reference/post_professors-batch-upsert.md): Upsert up to 1000 professors in a single request. Matches by externalReferenceId, or professorId or email within school scope. Returns 200 for all success, 207 for partial success with failures.
- [[BETA] Restore an archived professor by ID](https://developers.edusign.com/reference/post_professors-professorid-restore.md): Restores (un-archives) a professor for the current school.
- [[BETA] Restore an archived professor by external reference ID](https://developers.edusign.com/reference/post_professors-by-reference-id-professorexternalreferenceid-restore.md): Restores (un-archives) a professor for the current school by external reference ID.
- Surveys
- [[BETA] Get surveys based on filter criterias](https://developers.edusign.com/reference/get_surveys.md): Retrieve the surveys of your school. To filter by lists of IDs or by date ranges, or to sort the results, POST
/groups/by-reference-id/{externalReferen…
- [[BETA] Update a group by external reference ID](https://developers.edusign.com/reference/patch_groups-by-reference-id-externalreferenceid.md): Update group attributes by external reference ID (apiId). Setting nullable fields (description, logo) to null clears them. Parent removal will be handled via dedicated endpoint in future release.
- [[BETA] Archive (soft-delete) a group by external reference ID](https://developers.edusign.com/reference/delete_groups-by-reference-id-externalreferenceid.md): Soft-delete a group identified by its external reference ID (apiId): it is marked archived (HIDDEN) and detached from its parent. Direct child groups are orphaned (their parent is cleared) but NOT…
- [Batch create or update groups by external reference ID or internal ID (groupId)](https://developers.edusign.com/reference/post_groups-batch-upsert.md): Upsert up to 1000 groups in a single request. Matches by externalReferenceId or groupId within school scope. Returns 200 when all items succeed, 207 for partial success with per-item failures.…
- [Batch assign students to groups](https://developers.edusign.com/reference/post_groups-students-batch-upsert.md): Assign students to groups in bulk. Each assignment maps one group (by ID or external reference) to multiple students (by IDs or external references). Returns 200 when all items succeed, 207 for…
- [[BETA] Replace the students of a group](https://developers.edusign.com/reference/put_groups-id-students.md): Replace the membership of a group with the provided list of students. Students present in the payload but not in the group are added; students currently in the group but absent from the payload are…
- [[BETA] Replace the students of a group by external reference ID](https://developers.edusign.com/reference/put_groups-by-reference-id-externalreferenceid-students.md): Replace the membership of a group identified by its external reference ID (apiId), with the provided list of students. Students present in the payload but not in the group are added; students…
- [[BETA] Restore (unarchive) a group by internal ID](https://developers.edusign.com/reference/post_groups-groupid-restore.md): Restore a previously archived group by its internal Edusign ID: its archived (HIDDEN) flag is cleared and it becomes active again. The group is restored as a root group — its previous parent link,…
- [[BETA] Restore (unarchive) a group by external reference ID](https://developers.edusign.com/reference/post_groups-by-reference-id-groupexternalreferenceid-restore.md): Restore a previously archived group identified by its external reference ID (apiId): its archived (HIDDEN) flag is cleared and it becomes active again. The group is restored as a root group — its…
- [[BETA] Add students to a group](https://developers.edusign.com/reference/post_groups-id-students.md): Add students to a group, without rewriting its membership. **This endpoint never removes anyone.** Use it to turn an enrolment event from your system, or a batch of them, into a single call: `PUT…
- [[BETA] Remove students from a group](https://developers.edusign.com/reference/delete_groups-id-students.md): Remove students from a group, without rewriting its membership. **This endpoint never adds anyone.** The identifiers travel in the request body, so they never appear in access logs. **Moving a…
- [[BETA] Add students to a group by external reference ID](https://developers.edusign.com/reference/post_groups-by-reference-id-externalreferenceid-students.md): Add students to a group identified by its external reference ID, without rewriting its membership. **This endpoint never removes anyone.** Same behaviour as `POST /v3/groups/{id}/students`. **Up to…
- [[BETA] Remove students from a group by external reference ID](https://developers.edusign.com/reference/delete_groups-by-reference-id-externalreferenceid-students.md): Remove students from a group identified by its external reference ID, without rewriting its membership. **This endpoint never adds anyone.** Same behaviour as `DELETE /v3/groups/{id}/students`,…
- [Get a group by external reference ID](https://developers.edusign.com/reference/get_groups-by-reference-id-externalreferenceid.md): Retrieve a single group using the external reference ID your system gave it. Archived groups are returned too. Returns 404 (`GROUP_NOT_FOUND`) when no group of your school carries that reference, and…
- NFC
- [[BETA] List NFC tags](https://developers.edusign.com/reference/get_nfc.md): List the current-generation NFC tags configured for your school and see where and when they can be used. NFC attendance is an Edusign add-on installed and configured by the Edusign team. Each tag…
- [[BETA] Update an NFC tag](https://developers.edusign.com/reference/patch_nfc-id.md): Update the GPS coordinates, classroom, or signing windows of one NFC tag in your school. Send only the fields you want to change; omitted fields keep their current values. NFC attendance is an…
- [[BETA] Update multiple NFC tags](https://developers.edusign.com/reference/post_nfc-batch-update.md): Update up to 100 NFC tags in your school in one request. All updates succeed together, or no tags are changed. This endpoint updates existing tags only; it does not create them. NFC attendance is an…
- Companies
- [[BETA] Search companies](https://developers.edusign.com/reference/post_companies-search.md): Search the companies of your school. This read-only operation uses POST to carry the filters in its body: credentials holding only read access are served. Filters sit at the root of the body and are…
- [[BETA] List companies](https://developers.edusign.com/reference/get_companies.md): List the companies of your school, most recently created first. `search` matches a literal substring of `name`, `displayName` or `businessIdentifier`; `businessIdentifier` is an exact match. To find…
- [[BETA] Create a company](https://developers.edusign.com/reference/post_companies.md): Create a company in your school. Only `name` is required, and names are not unique: two companies may share one. Unknown fields are refused. Creating a company attaches nobody to it. **Idempotency:…
- [[BETA] Get a company](https://developers.edusign.com/reference/get_companies-id.md): Read one company of your school by its Edusign ID. An unknown ID answers `404 COMPANY_NOT_FOUND`. Several learners and external contacts can be attached to one company, and a change to the company…
- [[BETA] Update a company](https://developers.edusign.com/reference/patch_companies-id.md): Partially update a company addressed by its Edusign ID. Only provided fields are modified. - If a field is set to `null` → its value is reset (`name` cannot be reset). - If a field is not provided…
- [[BETA] Update a company by external reference ID](https://developers.edusign.com/reference/patch_companies-by-reference-id-externalreferenceid.md): Partially update a company addressed by your own `externalReferenceId`. Only provided fields are modified. - If a field is set to `null` → its value is reset (`name` cannot be reset). - If a field…
- Messages
- [[BETA] Send a push announcement to app users](https://developers.edusign.com/reference/post_messages-announcements.md): Sends an announcement as a push and/or in-app notification, and records it in the "Messages" tab of the school's app. `content` is an array of language variants (`title` + `body` + `language`).…
- Emails
- [[BETA] Search the emails sent to an address, or those that did not arrive](https://developers.edusign.com/reference/post_emails-search.md): The emails the platform sent for your school, most recent first, with whether each one arrived: those sent to one address (email), or with undelivered: true those that did not arrive, to one address,…
- Documents
- [[BETA] Remind the pending signers of a document](https://developers.edusign.com/reference/post_documents-to-sign-id-reminders.md): Send the signature request again to the recipients of a document who have not signed yet, by email, and by push for students. When the document is signed in order, only the recipient whose turn it is…
- [[BETA] Search document templates](https://developers.edusign.com/reference/post_document-templates-search.md): The document templates of the school, by name, one page at a time: the ones to sign (`toSign`) and the ones sent without a signature (`noSign`), each with the id that identifies it. The content of a…
- [[BETA] Cancel a signature request](https://developers.edusign.com/reference/post_documents-to-sign-id-cancel.md): Cancel an active signature request and notify its recipients using the same rules as the school interface. Existing signatures and files are preserved. Send an empty object or an optional reason…
- Notifications
- [[BETA] Send a push announcement to app users (deprecated path)](https://developers.edusign.com/reference/post_notifications-announcements.md): Deprecated: use POST /messages/announcements, which takes the same body and returns the same responses. This path is kept for existing integrations and will be removed once they have migrated; its…
- Classrooms
- [[BETA] List classrooms](https://developers.edusign.com/reference/get_classrooms.md): Retrieve the classrooms of your school, paginated.
- [[BETA] Create a new classroom](https://developers.edusign.com/reference/post_classrooms.md): Create a single classroom for your school. The name must be unique within the school.
- [[BETA] Update a classroom](https://developers.edusign.com/reference/patch_classrooms-id.md): Partial update of a classroom. Only provided fields are modified. - If a field is set to `null` → its value is reset. - If a field is not provided → partial update, the field is ignored.
- [[BETA] Delete a classroom](https://developers.edusign.com/reference/delete_classrooms-id.md): Delete a classroom by ID.
- [[BETA] Update a classroom by external reference ID](https://developers.edusign.com/reference/patch_classrooms-by-reference-id-externalreferenceid.md): Partial update of a classroom by external reference ID. Only provided fields are modified. - If a field is set to `null` → its value is reset. - If a field is not provided → partial update, the…
- [[BETA] Delete a classroom by external reference ID](https://developers.edusign.com/reference/delete_classrooms-by-reference-id-externalreferenceid.md): Delete a classroom by external reference ID.
- Connectors
- [[BETA] List connector logs](https://developers.edusign.com/reference/get_connectors-logs.md): Retrieve the synchronization logs of your school's connector, paginated. Sorted by creation date, oldest first by default.
- Webhooks
- [[BETA] List all registered webhooks with optional filters](https://developers.edusign.com/reference/get_webhooks.md): List all registered webhooks with optional filters
- [[BETA] Register a webhook](https://developers.edusign.com/reference/post_webhooks.md): Register a webhook for your school: an event type and the https URL it is delivered to. The same event type can target several URLs; registering the same event type and URL twice returns 409…
- [[BETA] Update a registered webhook](https://developers.edusign.com/reference/patch_webhooks-id.md): Change the event type, the delivery URL, or both, of a webhook registered for your school; the webhook keeps its id. Only the fields sent are changed, at least one is required. Re-sending the current…
- [[BETA] Delete a registered webhook](https://developers.edusign.com/reference/delete_webhooks-id.md): Permanently remove a webhook registered for your school: it stops receiving events from the next one on. Deleting an id that does not exist, or no longer exists, returns 404 WEBHOOK_NOT_FOUND.
## API Reference: EDUSIGN PARTNER API
- Schools
- [Get group data URL](https://developers.edusign.com/reference/getpartnerschoolsschoolgroupurl.md): Retrieves the URL for the group data.
- [Get settings for a specific school](https://developers.edusign.com/reference/getpartnerschoolsschoolidsettings.md): Retrieves the settings for a specific school.
- [Update settings for a specific school](https://developers.edusign.com/reference/patchpartnerschoolsschoolidsettings.md): Updates the settings for a specific school.
- [Get school settings](https://developers.edusign.com/reference/getpartnerschoolssettings.md): Prefer using the /partner/schools/:schoolId/settings route to get settings for a specific school.
- [Create a new school](https://developers.edusign.com/reference/postpartnerschools.md): Creates a new school with the provided settings.
## Tutorials
- [Get a course's data and attendance sheet PDF Link](https://developers.edusign.com/recipes/get-a-courses-data-and-attendance-sheet-pdf-link.md)
- [How to create a course ?](https://developers.edusign.com/recipes/how-to-create-a-course-1.md)
- [How to create a course without group?](https://developers.edusign.com/recipes/how-to-create-a-course-without-group.md)
- [How to display a dynamic QR-code ?](https://developers.edusign.com/recipes/how-to-display-a-dynamic-qr-code.md)
- [How to secure a webhook received from Edusign ?](https://developers.edusign.com/recipes/how-to-secure-a-webhook-received-from-edusign.md)
- [How to send a document ?](https://developers.edusign.com/recipes/how-to-send-a-document.md)
- [How to send a survey ?](https://developers.edusign.com/recipes/how-to-send-a-survey.md)
- [Archive one-one meeting when professor has signed](https://developers.edusign.com/recipes/recipe-title.md)
## Changelog
- [Summer release note - announcements, surveys & registrations go API-first, MCP & OAuth 2.1 for agentic systems](https://developers.edusign.com/changelog/summer-release-note-announcements-surveys-registrations-go-api-first-mcp-oauth-21-for-agentic-systems.md)
- [Filter, paginate and enrich training results — Full query overhaul for GET /v3/trainings](https://developers.edusign.com/changelog/filter-paginate-and-enrich-training-results-full-query-overhaul-for-get-v3trainings.md)
- [Batch upsert trainings — Create or update up to 1,000 trainings in a single request](https://developers.edusign.com/changelog/batch-upsert-trainings-create-or-update-up-to-1000-trainings-in-a-single-request.md)
- [Batch upsert groups — Create or update up to 1000 groups in a single request](https://developers.edusign.com/changelog/batch-upsert-groups-create-or-update-up-to-1000-groups-in-a-single-request.md)
- [Batch upsert professors — Create or update up to 1,000 professors in a single request](https://developers.edusign.com/changelog/batch-upsert-professors-create-or-update-up-to-1000-professors-in-a-single-request.md)
- [Batch upsert students — Create or update up to 1000 students in a single request](https://developers.edusign.com/changelog/batch-upsert-students-create-or-update-up-to-1000-students-in-a-single-request.md)
- [Get all students - New query param filters to precise your request & pagination](https://developers.edusign.com/changelog/get-all-students-new-query-param-filters-to-precise-your-request.md)
- [Professor signature Timestamp added to "Get all courses" & "Get a course by ID"](https://developers.edusign.com/changelog/professor-signature-timestamp-added-to-get-all-courses-get-a-course-by-id.md)
- [Get all courses - New filters for more accurate results](https://developers.edusign.com/changelog/get-all-courses-new-filters-for-better-results.md)
- [Edit your training registration options from the API](https://developers.edusign.com/changelog/edit-your-training-registration-options-from-the-api.md)