{"info":{"_postman_id":"31291d23-4029-47d3-8155-a6e92143bdb2","name":"iAttended APIs","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"description":"<html><head></head><body></body></html>","owner":"1725951","collectionId":"31291d23-4029-47d3-8155-a6e92143bdb2","publishedId":"TVspm9zW","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"publishDate":"2020-12-15T16:10:23.000Z"},"item":[{"name":"User data","id":"eea475e0-780b-4d89-8a7a-834eaeda4f2c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/attendanceByUser?apiKey=&orgId=&userEmail=","description":"<p>Sample response:</p>\n<p>Sample Response:<br />[<br />{<br />\"eventId\": \"oiED1MrFMAWmocu3Su3q\",<br />\"userName\": \"James Duncan\",<br />\"userId\": \"abcd\",<br />\"userEmail\": \"<a href=\"mailto:jduncan@andersonuniversity.edu\">jduncan@andersonuniversity.edu</a>\",<br />\"attendedAt\": {<br />\"_seconds\": 1556022678,<br />\"_nanoseconds\": 254664000<br />},<br />\"credits\": 1,<br />\"verificationMethod\": \"QR code\",<br />\"eventTitle\": \"iAttended Meeting\",<br />\"eventSpeaker\": \"Bill Smith\",<br />\"startTime\": {<br />\"_seconds\": 1555419600,<br />\"_nanoseconds\": 0<br />},<br />\"eventTypeId\": \"t9NqZOFpwPzTbzIjgESm\",<br />\"eventType\": \"CEP\",<br />\"recordUpdatedAt\": {<br />\"_seconds\": 1556022678,<br />\"_nanoseconds\": 254667000<br />},<br />\"location\": {<br />\"_latitude\": 34.545329856466566,<br />\"_longitude\": -82.61094284485401<br />},<br />\"tags\": [<br />\"Freshman\",<br />\"Men's Soccer\"<br />]<br />}<br />]</p>\n","urlObject":{"protocol":"https","path":["attendanceByUser"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"description":{"content":"<p>Will return all events for this user, even if he or she used another email to register for the event</p>\n","type":"text/plain"},"key":"userEmail","value":""},{"disabled":true,"description":{"content":"<p>Unix epoch in seconds. Default is last six months based on event start time.</p>\n","type":"text/plain"},"key":"fromDate","value":""},{"disabled":true,"description":{"content":"<p>Unix epoch in seconds. Default is now.</p>\n","type":"text/plain"},"key":"toDate","value":""},{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"eea475e0-780b-4d89-8a7a-834eaeda4f2c"},{"name":"All attendance","id":"820c41c2-0bc9-40f0-a71f-4b38775b02f1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/attendance?apiKey=&orgId=","description":"<p>Will return all attendance for an event or event type.</p>\n<p>This will include attendance records for unconfirmed email addresses, which you can filter using the isProvisional boolean field. Confirmed accounts will have isProvisional = false.</p>\n<p>If the returned data object exceeds 10 MB limit, you'll get a 500 error with a suggestion to narrow the search parameters. If this becomes a regular error, you might consider breaking the query in half by running one where toEmail is m, then another where fromEmail is m.</p>\n<p>Event credits that have been entered manually will have an eventId starting with \"Manual\" followed by the Unix timestamp when the event was recorded and will look something like Manual1681828418157.</p>\n<p>Sample Response:<br />[{<br />\"userId\": \"abcd\",<br />\"userName\": \"James Duncan\",<br />\"userEmail\": \"<a href=\"mailto:jduncan@andersonuniversity.edu\">jduncan@andersonuniversity.edu</a>\",<br />\"attendedAt\": {<br />\"_seconds\": 1556022678,<br />\"_nanoseconds\": 254664000<br />},<br />\"verificationMethod\": \"QR code\",<br />\"credits\": 1,<br />\"eventId\": \"oiED1MrFMAWmocu3Su3q\",<br />\"eventTitle\": \"iAttended Meeting\",<br />\"eventType\": \"CEP\",<br />\"eventTypeId\": \"t9NqZOFpwPzTbzIjgESm\",<br />\"eventSpeaker\": \"Bill Smith\",<br />\"startTime\": {<br />\"_seconds\": 1555419600,<br />\"_nanoseconds\": 0<br />},<br />\"recordUpdatedAt\": {<br />\"_seconds\": 1556022679,<br />\"_nanoseconds\": 710000000<br />},<br />\"location\": {<br />\"_latitude\": 34.545329856466566,<br />\"_longitude\": -82.61094284485401<br />},<br />\"tags\": [<br />\"Freshman\",<br />\"Men's Soccer\"<br />],</p>\n<p>\"isProvisional\": false<br />}]</p>\n","urlObject":{"protocol":"https","path":["attendance"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required in all requests.</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required in all requests.</p>\n","type":"text/plain"},"key":"orgId","value":""},{"disabled":true,"description":{"content":"<p>Optional. Returns attendance all events of this type. Expects the eventTypeId (a long, illegible string), though will try to interpret a human-readable string like \"Chapel,\" though capitalization and spacing must exactly match the type you're searching for.</p>\n","type":"text/plain"},"key":"eventType","value":""},{"disabled":true,"description":{"content":"<p>Optional. Set to \"true\" to include events that are children of an event type specified above. Defaults to false. This will dig down through all descendant types, so it may generate very large data sets. Has no effect unless an event type is selected.</p>\n","type":"text/plain"},"key":"includeChildren","value":""},{"disabled":true,"description":{"content":"<p>Optional. Default is all events. Gathers all attendance at an event.</p>\n","type":"text/plain"},"key":"event","value":""},{"disabled":true,"description":{"content":"<p>Optional. Unix epoch in seconds. Default is last six months based on event start time.</p>\n","type":"text/plain"},"key":"fromDate","value":""},{"disabled":true,"description":{"content":"<p>Optional. Unix epoch in seconds. Default is now.</p>\n","type":"text/plain"},"key":"toDate","value":""},{"disabled":true,"description":{"content":"<p>Optional. Narrows the records returned by searching for email addresses in higher or equal alphabetical order than the string entered. Can be used in combination with toEmail to search for a single or narrow band of emails.</p>\n","type":"text/plain"},"key":"fromEmail","value":""},{"disabled":true,"description":{"content":"<p>Optional. Narrows the records returned by searching for email addresses in lower or equal alphabetical order than the string entered. The search will end as soon as the query string is reached, so if you set the toEmail to \"e\", the query will return emails until czzz, but won't return eaaa.</p>\n","type":"text/plain"},"key":"toEmail","value":""}],"variable":[]}},"response":[],"_postman_id":"820c41c2-0bc9-40f0-a71f-4b38775b02f1"},{"name":"All attendance V2","id":"fcbe9997-eb02-4548-93a1-5ba0b8789095","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/attendanceV2?apiKey=&orgId=","description":"<p>Will return all attendance for an event or event type. This is the same as the original All Attendance API but adds an array of matching email addresses designed for organizations with Microsoft-based accounts where users have two email identies.</p>\n<p>This will include attendance records for unconfirmed email addresses, which you can filter using the isProvisional boolean field. Confirmed accounts will have isProvisional = false.</p>\n<p>If the returned data object exceeds 10 MB limit, you'll get a 500 error with a suggestion to narrow the search parameters. If this becomes a regular error, you might consider breaking the query in half by running one where toEmail is m, then another where fromEmail is m.</p>\n<p>Event credits that have been entered manually will have an eventId starting with \"Manual\" followed by the Unix timestamp when the event was recorded and will look something like Manual1681828418157.</p>\n<p>Sample Response:<br />[{<br />\"userId\": \"abcd\",<br />\"userName\": \"James Duncan\",<br />\"userEmail\": \"<a href>jduncan@andersonuniversity.edu</a>\",<br />\"attendedAt\": {<br />\"_seconds\": 1556022678,<br />\"_nanoseconds\": 254664000<br />},<br />\"verificationMethod\": \"QR code\",<br />\"credits\": 1,<br />\"eventId\": \"oiED1MrFMAWmocu3Su3q\",<br />\"eventTitle\": \"iAttended Meeting\",<br />\"eventType\": \"CEP\",<br />\"eventTypeId\": \"t9NqZOFpwPzTbzIjgESm\",<br />\"eventSpeaker\": \"Bill Smith\",<br />\"startTime\": {<br />\"_seconds\": 1555419600,<br />\"_nanoseconds\": 0<br />},<br />\"recordUpdatedAt\": {<br />\"_seconds\": 1556022679,<br />\"_nanoseconds\": 710000000<br />},<br />\"location\": {<br />\"_latitude\": 34.545329856466566,<br />\"_longitude\": -82.61094284485401<br />},<br />\"tags\": [<br />\"Freshman\",<br />\"Men's Soccer\"<br />],</p>\n<p>\"isProvisional\": false,</p>\n<p>matchingEmailArray: [\"<a href=\"mailto:email1@abc.edu\">email1@abc.edu</a>\",\"<a href=\"mailto:email2@abc.edu\">email2@abc.edu</a>\"]<br />}]</p>\n","urlObject":{"protocol":"https","path":["attendanceV2"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required in all requests.</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required in all requests.</p>\n","type":"text/plain"},"key":"orgId","value":""},{"disabled":true,"description":{"content":"<p>Optional. Returns attendance all events of this type. Expects the eventTypeId (a long, illegible string), though will try to interpret a human-readable string like \"Chapel,\" though capitalization and spacing must exactly match the type you're searching for.</p>\n","type":"text/plain"},"key":"eventType","value":""},{"disabled":true,"description":{"content":"<p>Optional. Set to \"true\" to include events that are children of an event type specified above. Defaults to false. This will dig down through all descendant types, so it may generate very large data sets. Has no effect unless an event type is selected.</p>\n","type":"text/plain"},"key":"includeChildren","value":""},{"disabled":true,"description":{"content":"<p>Optional. Default is all events. Gathers all attendance at an event.</p>\n","type":"text/plain"},"key":"event","value":""},{"disabled":true,"description":{"content":"<p>Optional. Unix epoch in seconds. Default is last six months based on event start time.</p>\n","type":"text/plain"},"key":"fromDate","value":""},{"disabled":true,"description":{"content":"<p>Optional. Unix epoch in seconds. Default is now.</p>\n","type":"text/plain"},"key":"toDate","value":""},{"disabled":true,"description":{"content":"<p>Optional. Narrows the records returned by searching for email addresses in higher or equal alphabetical order than the string entered. Can be used in combination with toEmail to search for a single or narrow band of emails.</p>\n","type":"text/plain"},"key":"fromEmail","value":""},{"disabled":true,"description":{"content":"<p>Optional. Narrows the records returned by searching for email addresses in lower or equal alphabetical order than the string entered. The search will end as soon as the query string is reached, so if you set the toEmail to \"e\", the query will return emails until czzz, but won't return eaaa.</p>\n","type":"text/plain"},"key":"toEmail","value":""}],"variable":[]}},"response":[],"_postman_id":"fcbe9997-eb02-4548-93a1-5ba0b8789095"},{"name":"Period Progress","id":"091baddf-8fa4-467f-b745-0fc32d5d3607","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/periodProgress?orgId&apiKey","description":"<p>Returns an array of objects representing users' progress within a period.</p>\n<p>isActive indicates that the user has a subscription to the period, which will appear in the user's app.</p>\n<p>isGhost indicates that the user has not subscribed participated in an event within the period and was included in an uploaded list of expected participants for the period.</p>\n<p>inactiveSubscription indicates that a subscription to the period was added automatically in a previous period but the user has not participated yet.</p>\n<p>The onDate parameter is used to find any periods that were being tracked on that date, so to pull data from a previous semester, add a date from that time. If no dates are provided, the query will pull periods active now.</p>\n<p>The recordsSince parameter lets you find only period records that have been updated since the date you specified, which can help reduce the amount of redundant data returned to you.</p>\n<p>Similarly, lastNDays lets you specify 1, 7, 31, or 91 days as the window to collect fresh data. You could run a daily or weekly query with lastNDays set to 1 or 7, which would only return data that has changed in the last day or week. If you provide a lastNDays value along with a recordsSince value, the lastNDays value will be ignored.</p>\n<p>Sample response:<br />{<br />\"userId\": \"5JjaVWzUGPfUYz7eVSjCgs4LidX2\",</p>\n<p>\"userEmail\": \"<a href=\"https://mailto:james@iattendedapp.com\">james@iattendedapp.com</a>\",</p>\n<p>\"userName\": \"James Duncan\",</p>\n<p>\"rearrangedName\": \"Duncan, James\",</p>\n<p>\"creditsEarned\": 3,</p>\n<p>\"creditsRequired\": 10,</p>\n<p>\"directCreditsEarned\": 3,</p>\n<p>\"directCreditsRequired\": 0,</p>\n<p>\"percentageCompleted\": 30,</p>\n<p>\"periodId\": \"638cc861fc91e08fc132\",</p>\n<p>\"periodName\": \"December Absences\",</p>\n<p>\"startDate\": {</p>\n<p>\"_seconds\": 1764565200,</p>\n<p>\"_nanoseconds\": 0</p>\n<p>},</p>\n<p>\"endDate\": {</p>\n<p>\"_seconds\": 1767157200,</p>\n<p>\"_nanoseconds\": 0</p>\n<p>},</p>\n<p>\"eventType\": \"Chapel\",</p>\n<p>\"eventTypeId\": \"TrDaqJ7MiQK7EG2Jl7ho\",</p>\n<p>\"recordUpdatedAt\": {</p>\n<p>\"_seconds\": 1767132575,</p>\n<p>\"_nanoseconds\": 570000000 },</p>\n<p>\"studentId\": \"XYZ123\",</p>\n<p>\"isActive\": true,</p>\n<p>\"isGhost\": false,</p>\n<p>\"inactiveSubscription\": false,</p>\n<p>\"tags\": [</p>\n<p>\"Sophomore\",</p>\n<p>\"Tutor\"</p>\n<p>],</p>\n<p>\"absencesAllowed\": 13,</p>\n<p>\"absencesRecorded\": 15,</p>\n<p>\"absencesRecordedUpdatedOn\": {</p>\n<p>\"_seconds\": 1767132575,</p>\n<p>\"_nanoseconds\": 570000000 }<br />},</p>\n","urlObject":{"protocol":"https","path":["periodProgress"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":null},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":null},{"disabled":true,"description":{"content":"<p>Optional. Enter time as Unix epoch in seconds. Defaults to today. </p>\n","type":"text/plain"},"key":"onDate","value":""},{"disabled":true,"description":{"content":"<p>Optional. Limits to a single user</p>\n","type":"text/plain"},"key":"thisEmail","value":""},{"disabled":true,"description":{"content":"<p>Optional. LImits results to a single period</p>\n","type":"text/plain"},"key":"periodId","value":""},{"disabled":true,"description":{"content":"<p>Optional. Collects records updated since the date specified. Enter date as a Unix epoch in seconds.</p>\n","type":"text/plain"},"key":"recordsSince","value":null},{"disabled":true,"description":{"content":"<p>Optional. Collects records updated in the last 1, 7, 31, or 91 days. If this and recordsSince values are supplied, recordsSince will be followed rather than this.</p>\n","type":"text/plain"},"key":"lastNDays","value":null}],"variable":[]}},"response":[],"_postman_id":"091baddf-8fa4-467f-b745-0fc32d5d3607"},{"name":"Event Types","id":"2d5687f6-b692-4487-9fa7-2ff4dbe679ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/eventTypes?apiKey=&orgId=","description":"<p>Returns a list of your currently defined event types with their ids.</p>\n<p>Sample Response:\n[\n    {\n        \"eventTypeId\": \"t9NqZOFpwPzTbzIjgESm\",\n        \"eventType\": \"CEP\",\n        \"customKey\": \"ABC123\",\n        \"emailRequired\": true,\n        \"requiredEmailPattern\": \"andersonuniversity.edu\",\n        \"isPublic\": true,\n        \"createdOn\": {\n            \"_seconds\": 1551978680,\n            \"_nanoseconds\": 466000000\n        },\n        \"createdBy\": \"James Duncan\"\n    }\n]</p>\n","urlObject":{"protocol":"https","path":["eventTypes"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required in all requests.</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required in all requests.</p>\n","type":"text/plain"},"key":"orgId","value":""},{"disabled":true,"key":"","value":""}],"variable":[]}},"response":[],"_postman_id":"2d5687f6-b692-4487-9fa7-2ff4dbe679ef"},{"name":"Events","id":"b48903bf-1479-4399-a1f2-2cf2c97965a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/events?apiKey=&orgId=","description":"<p>Returns all events within a range of dates.</p>\n<p>Sample Response:\n[\n    {\n        \"eventId\": \"oiED1MrFMAWmocu3Su3q\",\n        \"credits\": 1,\n        \"eventTitle\": \"iAttended Meeting\",\n        \"speaker\": \"Bill Smith\",\n        \"eventType\": \"CEP\",\n        \"eventTypeId\": \"t9NqZOFpwPzTbzIjgESm\",\n        \"customKey\": \"ABC123\",\n        \"eventSpeaker\": \"Bill Smith\",\n\"isPublic\": true,\n        \"startTime\": {\n            \"_seconds\": 1555419600,\n            \"_nanoseconds\": 0\n        },\n        \"endTime\": {\n            \"_seconds\": 1555423200,\n            \"_nanoseconds\": 0\n        },\n        \"description\": \"Talking about important stuff with important people.\",\n        \"url\": \"<a href=\"http://andersonuniversity.edu\">http://andersonuniversity.edu</a>\",\n        \"locationArray\": [\n            \"Chapman\",\n            \"Henderson\"\n        ],\n        \"fringeMinutes\": 5,\n        \"createdOn\": {\n            \"_seconds\": 1555380825,\n            \"_nanoseconds\": 523000000\n        },\n        \"createdBy\": \"James Duncan\",\n         \"createdByEmailArray\": [\n             \"<a href=\"mailto:abc@xyz.com\">abc@xyz.com</a>\",\n             \"<a href=\"mailto:123@456.edu\">123@456.edu</a>\"\n          ],\n        \"editedBy\": \"James Duncan\",\n        \"updatedOn\": {\n            \"_seconds\": 1556023310,\n            \"_nanoseconds\": 793000000\n        }\n    }\n]</p>\n","urlObject":{"protocol":"https","path":["events"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"disabled":true,"description":{"content":"<p>Unix epoch in seconds. Default is last 12 months.</p>\n","type":"text/plain"},"key":"fromDate","value":null},{"disabled":true,"description":{"content":"<p>Unix epoch in seconds. Default is next 12 months.</p>\n","type":"text/plain"},"key":"toDate","value":null}],"variable":[]}},"response":[],"_postman_id":"b48903bf-1479-4399-a1f2-2cf2c97965a8"},{"name":"Check Email Pair","id":"9cfa6f00-d052-489e-861c-50b2186baca9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/checkEmailPair?apiKey=&orgId=&email=","description":"<p>If you have paired emails as pointing to the same user, this will return an array of paired emails for that user at your organization. If no records are found, an empty array will be returned.</p>\n<p>Response<br />[</p>\n<p>'<a href=\"mailto:email1@abc.edu\">email1@abc.edu</a>',</p>\n<p>'<a href=\"mailto:email2@abc.edu\">email2@abc.edu</a>'</p>\n<p>]</p>\n","urlObject":{"protocol":"https","path":["checkEmailPair"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"description":{"content":"<p>Required. Email to check against existing pairings.</p>\n","type":"text/plain"},"key":"email","value":""}],"variable":[]}},"response":[],"_postman_id":"9cfa6f00-d052-489e-861c-50b2186baca9"},{"name":"Periods","id":"29ee64c5-5669-4c82-8944-9fffd7d81f43","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/periods?orgId&apiKey","description":"<p>Retrieves all the periods defined for your organization within a range of dates. Use this to get periodId values to use in other queries.</p>\n<p>Sample Response:<br />[<br />{<br />\"periodId\": \"5AbyGaFqvkWJLYaLWJGm\",<br />\"periodName\": \"Chapel, Fall 2019\",<br />\"startTime\": {<br />\"_seconds\": 1565884800,<br />\"_nanoseconds\": 0<br />},<br />\"endTime\": {<br />\"_seconds\": 1576385940,<br />\"_nanoseconds\": 0<br />},<br />\"numberRequired\": 8,<br />\"directNumberRequired\": 6,<br />\"eventTypeId\": \"RTfzxOEaqAdstBVJBVqR\",<br />\"eventType\": \"Chapel\",<br />\"createdOn\": {<br />\"_seconds\": 1552023059,<br />\"_nanoseconds\": 604000000<br />},<br />\"createdBy\": \"James Duncan\",<br />\"absencesAllowed\": 5 | null<br />}<br />]</p>\n","urlObject":{"protocol":"https","path":["periods"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"disabled":true,"description":{"content":"<p>Unix epoch in seconds. Default is the last 12 months based on the period start time.</p>\n","type":"text/plain"},"key":"fromDate","value":null},{"disabled":true,"description":{"content":"<p>Unix epoch in seconds. Default is the next 24 months based on period start time.</p>\n","type":"text/plain"},"key":"toDate","value":null},{"key":"orgId","value":null},{"key":"apiKey","value":null}],"variable":[]}},"response":[],"_postman_id":"29ee64c5-5669-4c82-8944-9fffd7d81f43"},{"name":"Ghosts","id":"107ab497-f793-4b78-8f4b-570a0ce447b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/ghosts?apiKey=&orgId=&periodId=","description":"<p>If you have uploaded a list of expected attendees, this query will return the email addresses of people who have not yet attended an event in the period. Use the Exceptions Upload API to populate a list of users you expect to attend during a period.</p>\n","urlObject":{"protocol":"https","path":["ghosts"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"periodId","value":""}],"variable":[]}},"response":[],"_postman_id":"107ab497-f793-4b78-8f4b-570a0ce447b8"},{"name":"QR Codes","id":"f9b4cc11-4020-4689-bf26-17889d44d515","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/qrCodes?apiKey=&orgId=","description":"<p>Use qrString as an escaped string or the qrData object to format a QR code that will work with the uAttended scanner. Please test on a single record before printing all records.</p>\n<p>Sample Response:</p>\n<p>[\n{\n    \"qrString\": \"{\"name\":\"James Duncan\",\"uid\":\"abcd\"}\",\n    \"qrData\": {\n        \"name\": \"James Duncan\",\n        \"uid\": \"abcd\"\n    },\n    \"email\": \"<a href=\"mailto:jduncan@andersonuniversity.edu\">jduncan@andersonuniversity.edu</a>\",\n    \"userName\": \"James Duncan\"\n}\n]</p>\n","urlObject":{"protocol":"https","path":["qrCodes"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"disabled":true,"description":{"content":"<p>Limit to a single email if desired</p>\n","type":"text/plain"},"key":"userEmail","value":""}],"variable":[]}},"response":[],"_postman_id":"f9b4cc11-4020-4689-bf26-17889d44d515"},{"name":"API Use","id":"d12a3d37-6c97-40f8-9b8c-159db8be2308","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/apiQuota?apiKey=&orgId=","description":"<p>Returns total records retrieved by API calls in the last six months and the last 24 hours with a log of all queries in the last 24 hours. Requests to this API do count against daily quota, but this will always return a result even if quota has been exceeded. Cap is 50,000,000 for six months.</p>\n<p>Sample Response:</p>\n<p>{\n\"twentyFourHourUse\": 293528,\n\"sixMonthUse\": 48235135\n \"requestLog\": [\n        {\n            \"query\": {\n                \"orgId\": \"abcd\",\n                \"apiKey\": \"abcd\"\n            },\n            \"records\": 30,\n            \"type\": \"API Quota\",\n            \"timestamp\": {\n                \"_seconds\": 1588688947,\n                \"_nanoseconds\": 498000000\n            }\n        }\n]\n}</p>\n","urlObject":{"protocol":"https","path":["apiQuota"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""}],"variable":[]}},"response":[],"_postman_id":"d12a3d37-6c97-40f8-9b8c-159db8be2308"},{"name":"ID Upload","id":"af2d7cc9-a085-47a9-8ce4-4ff94a6504bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadStudentIds?apiKey=&orgId=","description":"<p>On success, a JSON object of any records with malformed email addresses will be returned to you. To delete existing student ids, upload the userEmail and set the studentId to an empty string.</p>\n<p>Submit as POST with Content-Type of application/json</p>\n<p>Body should be a JSON object formatted as follows:</p>\n<p>[\n    {\n        \"userEmail\": \"<a href=\"mailto:bob@school.edu\">bob@school.edu</a>\",\n        \"studentId\": \"ABC123\"\n    },\n   {\n        \"userEmail\": \"<a href=\"mailto:sue@school.edu\">sue@school.edu</a>\",\n        \"studentId\": \"ABC456\"\n    }\n]</p>\n<p>Response \n{numberOfRecordsProcessed: number, errors: [{userEmail: string, studentId: string]}</p>\n","urlObject":{"protocol":"https","path":["uploadStudentIds"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"disabled":true,"key":"","value":null},{"disabled":true,"key":"","value":null}],"variable":[]}},"response":[{"id":"6691cd48-376a-4180-8e10-e872cbb8e5de","name":"ID Upload Example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"[{\n\t\"userEmail\": \"bob@school.edu\",\n\t\"studentId\": \"ABC123\"\n}, {\n\t\"userEmail\": \"suzy@school\",\n\t\"studentId\": \"\"\n},{\n\t\"userEmail\": \"james@iattendedapp.com\",\n\t\"studentId\": \"XYZ 999c\"\n},{\n\t\"userEmail\": \"sue@school.edu\",\n\t\"studentId\": \"123\"\n}]","options":{"raw":{"language":"json"}}},"url":{"raw":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadStudentIds?apiKey=&orgId=","protocol":"https","host":["us-central1-iattended-a2e10","cloudfunctions","net"],"path":["uploadStudentIds"],"query":[{"key":"apiKey","value":"","description":"Required"},{"key":"orgId","value":"","description":"Required"},{"key":"","value":null,"disabled":true},{"key":"","value":null,"type":"text","disabled":true}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"af2d7cc9-a085-47a9-8ce4-4ff94a6504bf"},{"name":"Name Upload","id":"923955c2-16ba-4d62-96a9-6f255cd492a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadStudentNames?apiKey=&orgId=","description":"<p>Submit as POST with Content-Type of application/json</p>\n<p>Body should be a JSON object formatted as follows:</p>\n<p>[<br />{<br />\"userEmail\": \"<a href=\"https://desktop.postman.com/?desktopVersion=10.15.0&amp;userId=1725951&amp;teamId=0\">bob@school.edu</a>\",<br />\"userName: \"Bob Smith\"<br />},<br />{<br />\"userEmail\": \"<a href=\"https://desktop.postman.com/?desktopVersion=10.15.0&amp;userId=1725951&amp;teamId=0\">sue@school.edu</a>\",<br />\"userName\" \"Suzie Smith\"<br />}<br />]</p>\n<p>Response<br />{numberOfRecordsProcessed: number, errors: [{userEmail: string, userName: string}]}</p>\n<p>On success, a JSON object of any records with malformed email addresses will be returned to you.</p>\n","urlObject":{"protocol":"https","path":["uploadStudentNames"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"disabled":true,"key":"","value":null},{"disabled":true,"key":"","value":null}],"variable":[]}},"response":[{"id":"df057a10-85e7-439c-a476-3efd267123ae","name":"Name Upload Example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"[\n    {\n        \"userEmail\": \"bob@school.edu\",\n        \"userName\": \"Bob Smith\"\n    },\n    {\n        \"userEmail\": \"sue@school.edu\",\n        \"userName\": \"Sue Jones\"\n    }\n]","options":{"raw":{"language":"json"}}},"url":{"raw":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadStudentNames?apiKey=&orgId=","protocol":"https","host":["us-central1-iattended-a2e10","cloudfunctions","net"],"path":["uploadStudentNames"],"query":[{"key":"apiKey","value":"","description":"Required"},{"key":"orgId","value":"","description":"Required"},{"key":"","value":null,"disabled":true},{"key":"","value":null,"disabled":true}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"923955c2-16ba-4d62-96a9-6f255cd492a1"},{"name":"Email Pair Upload","id":"5a86e810-de3a-4df3-bf1d-d92a1b049ad8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadEmailPairs?apiKey=&orgId=","description":"<p>Submit as POST with Content-Type of application/json</p>\n<p>Email suffixes must match the one or two email address patterns on file for your organization. Body should be a JSON object formatted as follows:</p>\n<p>[<br />{<br />\"userEmail1\": \"<a href>bob@school.edu</a>\",<br />\"userEmail2: \"<a href>robert@school.edu</a>\"<br />},<br />{<br />\"userEmail1\": \"<a href>sue@school.edu</a>\",<br />\"userEmail2\" \"<a href>susan@school.edu</a>\"<br />}<br />]</p>\n<p>Response<br />{numberOfRecordsProcessed: number, errors: [{userEmail1: string, userEmail2: string}]}</p>\n<p>On success, a JSON object of any records with malformed or invalid email addresses will be returned to you.</p>\n","urlObject":{"protocol":"https","path":["uploadEmailPairs"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"disabled":true,"key":"","value":null},{"disabled":true,"key":"","value":null}],"variable":[]}},"response":[{"id":"c6708770-2f1e-4e8b-a71d-a6a3371a1ec6","name":"Email Pair Example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"[\n    {\n        \"userEmail1\": \"bob@school.edu\",\n        \"userEmail2\": \"robert@school.edu\"\n    },\n    {\n        \"userEmail1\": \"sue@school.edu\",\n        \"userEmail2\": \"susan@school.edu\"\n    }\n]","options":{"raw":{"language":"json"}}},"url":{"raw":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadEmailPairs?apiKey=&orgId=","protocol":"https","host":["us-central1-iattended-a2e10","cloudfunctions","net"],"path":["uploadEmailPairs"],"query":[{"key":"apiKey","value":"","description":"Required"},{"key":"orgId","value":"","description":"Required"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"5a86e810-de3a-4df3-bf1d-d92a1b049ad8"},{"name":"Exceptions Upload","id":"5ea9e375-58d9-4fe1-bbdf-4f4a8e0b3387","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":""},"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadExceptions?apiKey=&orgId=&periodId=&periodName&userEmail&overallRequirement&minCreditsExcludingChildren","description":"<p>At least one of the periodId or periodName parameters should be provided. The periodId is preferred because it is guaranteed to be unique. If two periods share the same name, the change will be applied to the most recently created period with that name. If both parameters are provided, periodName will be ignored.</p>\n<p>In the uploaded data, the overallRequirement is the number of credits a student needs for that period. If you allow students to earn credits from child events (small groups, for example), you can use the minCreditsExcludingChildren to specify how many credits must come from the parent event. You may leave this blank if you have no minimum or don’t use child event types.</p>\n<p>Submit as POST with Content-Type of application/json</p>\n<p>Body should be a JSON object formatted as follows:</p>\n<p>[\n    {\n        \"userEmail\": \"<a href=\"mailto:bob@school.edu\">bob@school.edu</a>\",\n        \"overallRequirement\":  15,\n        \"minCreditsExcludingChildren\": 10\n    },\n   {\n        \"userEmail\": \"<a href=\"mailto:sue@school.edu\">sue@school.edu</a>\",\n        \"overallRequirement\":  10,\n   }\n]</p>\n<p>Response: {numberOfRecordsProcessed: number, errors: [{userEmail: string, overallRequirement: number, minCreditsExcludingChildren: number]}</p>\n","urlObject":{"protocol":"https","path":["uploadExceptions"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"description":{"content":"<p>Optional, but must have one of periodId or periodName</p>\n","type":"text/plain"},"key":"periodId","value":""},{"description":{"content":"<p>Optional, but must have one of periodId or periodName</p>\n","type":"text/plain"},"key":"periodName","value":null},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"userEmail","value":null},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"overallRequirement","value":null},{"description":{"content":"<p>Optional</p>\n","type":"text/plain"},"key":"minCreditsExcludingChildren","value":null}],"variable":[]}},"response":[{"id":"559aa30c-4c6c-4fd6-bcca-08e9fcc76b97","name":"Exceptions Upload Example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"[\n    {\n        \"userEmail\": \"bob@school.edu\",\n        \"overallRequirement\": \"15\",\n        \"minCreditsExcludingChildren\": 10\n    },\n    {\n        \"userEmail\": \"sue@school.edu\",\n        \"overallRequirement\": 10\n    },\n    {\n        \"userEmail\": \"james@iattendedapp.com\",\n        \"overallRequirement\": 22\n    },\n    {\n        \"userEmail\": \"string@iattendedapp.com\",\n        \"overallRequirement\": \"22\"\n    }\n]","options":{"raw":{"language":"json"}}},"url":{"raw":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadExceptions?apiKey=&orgId=&periodId=&userEmail&overallRequirement&minCreditsExcludingChildren","protocol":"https","host":["us-central1-iattended-a2e10","cloudfunctions","net"],"path":["uploadExceptions"],"query":[{"key":"apiKey","value":"","description":"Required"},{"key":"orgId","value":"","description":"Required"},{"key":"periodId","value":"","description":"Required"},{"key":"userEmail","value":null,"description":"Required"},{"key":"overallRequirement","value":null,"description":"Required"},{"key":"minCreditsExcludingChildren","value":null,"description":"Optional"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"5ea9e375-58d9-4fe1-bbdf-4f4a8e0b3387"},{"name":"Expected Attendance","id":"00aaac8f-b6e6-494f-8b85-0c85760837a6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadExpectedAttendance?apiKey=&orgId=&periodId=&periodName","description":"<p>At least one of the periodId or periodName parameters should be provided. The periodId is preferred because it is guaranteed to be unique. If two periods share the same name, the change will be applied to the most recently created period with that name. If both parameters are provided, periodName will be ignored.</p>\n<p>Upload a list of emails of users you expect to participate in this period. On success, you will be returned an object with the number of records successfully processed and malformed emails or emails that don’t match the requirements of this event type will be returned to you as an array of strings. </p>\n<p>Submit as POST with Content-Type of application/json</p>\n<p>Body should be a JSON object formatted as follows:</p>\n<p>{\"userEmails\": [\"<a href=\"mailto:bob@school.edu\">bob@school.edu</a>\",\"<a href=\"mailto:sue@school.edu\">sue@school.edu</a>\"]} </p>\n<p>Response: {numberOfRecordsProcessed: number, errors: [string]}</p>\n","urlObject":{"protocol":"https","path":["uploadExpectedAttendance"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":""},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":""},{"description":{"content":"<p>The unique iAttended identifier for this period. Find by using the period API described above or from the URL parameters at iattendedapp.com</p>\n","type":"text/plain"},"key":"periodId","value":""},{"description":{"content":"<p>The name you assigned to the period. Using the periodId is preferred.</p>\n","type":"text/plain"},"key":"periodName","value":null}],"variable":[]}},"response":[{"id":"84eeb299-718f-4355-832f-7c2b6ac20fec","name":"Expected Attendance Example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"userEmails\": [\n        \"bob@school.edu\",\n        \"sue@school.edu\",\n        \"james@iattendedapp.com\",\n        \"notanemail\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadExpectedAttendance?apiKey=&orgId=&periodId=&periodName","protocol":"https","host":["us-central1-iattended-a2e10","cloudfunctions","net"],"path":["uploadExpectedAttendance"],"query":[{"key":"apiKey","value":"","description":"Required"},{"key":"orgId","value":"","description":"Required"},{"key":"periodId","value":"","description":"The unique iAttended identifier for this period. Find by using the period API described above or from the URL parameters at iattendedapp.com\n"},{"key":"periodName","value":null,"description":"The name you assigned to the period. Using the periodId is preferred."}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"00aaac8f-b6e6-494f-8b85-0c85760837a6"},{"name":"Tags Upload","id":"74675369-e075-4229-9c0b-a2114fd3b5d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadTags?orgId&apiKey","description":"<p>Submit as POST with Content-Type of application/json</p>\n<p>Body should be a JSON object formatted as follows:</p>\n<p>[<br />{<br />\"userEmail\": \"<a href=\"https://desktop.postman.com/?desktopVersion=10.15.0&amp;userId=1725951&amp;teamId=0\">bob@school.edu</a>\",<br />\"addTagArray: [\"Soccer\",\"Sophomore\"],<br />\"removeTagArray\": [\"Freshman\"]<br />},<br />{<br />\"userEmail\": \"<a href=\"https://desktop.postman.com/?desktopVersion=10.15.0&amp;userId=1725951&amp;teamId=0\">sue@school.edu</a>\",<br />\"removeTagArray\": \"Dean's List\"<br />}<br />]</p>\n<p>Note that tags are not applied retroactively. Each time an attendance record is created, the user's current tags are applied to that record, so tags only reflect the user's status at the time the event was attended.</p>\n<p>On success, a JSON object will be returned to you with the number of records successfully processed and an error object with the email and tag arrays that weren't updated.</p>\n<p>Response<br />{numberOfRecordsProcessed: number,</p>\n<p>errors: [{userEmail: string, addTagArray: string[], removeTagArray:[]}]}</p>\n","urlObject":{"protocol":"https","path":["uploadTags"],"host":["us-central1-iattended-a2e10","cloudfunctions","net"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"orgId","value":null},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"apiKey","value":null}],"variable":[]}},"response":[{"id":"736213df-885c-4588-8b20-1fa748a7b5d5","name":"Tags Upload Example","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"[\n    {\n        \"userEmail\": \"bob@school.edu\",\n        \"addTagArray\": [\"Sophomore\",\"Soccer\"],\n        \"removeTagArray\": [\"Freshman\"]\n    },\n    {\n        \"userEmail\": \"sue@school.edu\",\n        \"removeTagArray\": \"Dean's List\"\n    },\n    {\n        \"userEmail\": \"notAnEmail\"\n    }\n]","options":{"raw":{"language":"json"}}},"url":{"raw":"https://us-central1-iattended-a2e10.cloudfunctions.net/uploadTags?orgId=&apiKey=","protocol":"https","host":["us-central1-iattended-a2e10","cloudfunctions","net"],"path":["uploadTags"],"query":[{"key":"orgId","value":"","description":"Required"},{"key":"apiKey","value":"","description":"Required"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"numberOfRecordsProcessed\": 2,\n    \"errors\": [\n        {\n            \"userEmail\": \"notAnEmail\"\n        }\n    ]\n}"}],"_postman_id":"74675369-e075-4229-9c0b-a2114fd3b5d4"}]}