{ "opencollection": "1.0.0", "info": { "name": "Certifyos Roster API", "version": "1.0.0" }, "items": [ { "info": { "name": "Roster", "type": "folder" }, "items": [ { "info": { "name": "Get all roster jobs", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/roster", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "endAtId", "value": "", "type": "query", "description": "End at document ID, for backward cursor-based pagination" }, { "name": "filter", "value": "", "type": "query", "description": "Filter criteria. The filter parameter must be URL encoded when sent.\n\nExamples (before URL encoding):\n- - Filter by id: `{\"id\":{\"eq\":\"123\"}}`\nExample curl commands:\n```bash\n# Filter by id\ncurl -X GET '/roster?filter=%7B%22id%22%3A%7B%22eq%22%3A%223%22%7D%7D'\n```\n\nAvailable filter operations:\n- eq: Equal to\n- neq: Not equal to\n- gt: Greater than\n- gte: Greater than or equal to\n- lt: Less than\n- lte: Less than or equal to\n- in: Value must be one of these (array)\n- nin: Value must not be any of these (array)\n- contains: String contains (case-sensitive, string fields only)\n\nNote: When using the filter parameter in a browser or code, make sure to properly URL encode the JSON string.\n" }, { "name": "page", "value": "", "type": "query", "description": "Page number (0-based), for offset-based pagination" }, { "name": "size", "value": "", "type": "query", "description": "Page size" }, { "name": "sortBy", "value": "createdAt", "type": "query", "description": "Field to order by. Defaults to 'createdAt'." }, { "name": "sortDirection", "value": "DESC", "type": "query", "description": "Order direction: ASC or DESC. Defaults to 'DESC'." }, { "name": "startAfterId", "value": "", "type": "query", "description": "Start after document ID, for forward cursor-based pagination" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Returns a list of all roster jobs for the tenant" }, { "info": { "name": "Create a roster", "type": "http" }, "http": { "method": "POST", "url": "http://localhost:9000/roster", "headers": [ { "name": "tenant-id", "value": "" } ], "body": { "type": "multipart-form", "data": [ { "name": "file", "type": "text", "value": "" }, { "name": "templateId", "type": "text", "value": "" }, { "name": "jobType", "type": "text", "value": "" }, { "name": "description", "type": "text", "value": "" }, { "name": "sheetName", "type": "text", "value": "" }, { "name": "mappings", "type": "text", "value": "" } ] }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Creates a roster with the provided payload." }, { "info": { "name": "Republish roster event for validation or ingestion", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:9000/roster/republish-event/:eventType", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "eventType", "value": "", "type": "path", "description": "Event type: validation or ingestion" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Triggers either validation or ingestion request based on the event type" }, { "info": { "name": "Get roster job by ID", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/roster/:id", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "Roster job ID" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Returns a roster job for the given ID" }, { "info": { "name": "Get effective JSON Schema for a roster job", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/roster/:id/schema", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "Roster job ID" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Returns the same resolved schema used for validation: roster-specific schema when present, otherwise the template schema. Matches RosterSchemaService.getRosterSchema(rosterId, templateId)." }, { "info": { "name": "Download failed roster records as CSV", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/roster/:rosterId/download-records", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "rosterId", "value": "", "type": "path", "description": "Roster job ID to download records for" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Downloads all failed roster records for the given roster job as a CSV file" }, { "info": { "name": "Approve or reject a roster import", "type": "http" }, "http": { "method": "GET", "url": "http://localhost:9000/roster/:rosterId/import", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "rosterId", "value": "", "type": "path", "description": "Roster job ID" }, { "name": "action", "value": "", "type": "query", "description": "Action to perform: 'approved' or 'rejected'" } ], "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Approves or rejects a roster import based on the action parameter" }, { "info": { "name": "Reupload a corrected CSV file for an existing roster", "type": "http" }, "http": { "method": "PUT", "url": "http://localhost:9000/roster/:rosterId/reupload", "headers": [ { "name": "tenant-id", "value": "" } ], "params": [ { "name": "rosterId", "value": "", "type": "path", "description": "Existing roster ID to reupload against" } ], "body": { "type": "multipart-form", "data": [ { "name": "file", "type": "text", "value": "" }, { "name": "sheetName", "type": "text", "value": "" } ] }, "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "docs": "Reuploads a corrected CSV file for an existing roster ID. This replaces the file and restart processing for that roster." } ] } ], "bundled": true }