Skip to main content

Signatures

Retrieve a list of signatures

Check-in provides a paginated API to retrieve the list of guest signatures for your event.

Start with page=1 and paginate every 500 signatures.

If you need to know the total number of signatures collected during your event, call GET /api/v1/events/{id}.format and check the signature_count property.

JSON

Request

GET /api/v1/events/{event_id}/signatures.json?page=1&auth_token=YOUR_API_TOKEN

Response

// 200 OK
[
{
"_id": "{id}",

// When did the signature take place? (UTC, use event.timezone for display purposes) "access_stamp": "2012-11-26T15:44:44+01:00",

// The UID found in the scanned QR code. Note that guest.uid != guest.id "guest_uid": "68vju8yxgl",

// The access point where the signature took place "accesspoint_id": "{check_in_point_id}",

// The SVG representation of the signature
"points": {
"width": "276",
"height": "266",
"lines": [
{
"x2": "250.625",
"x1": "272",
"stroke-width": "2.3333332538604736",
"y2": "65.75",
"y1": "92"
},
{
"x2": "218.75",
"x1": "250.625",
"stroke-width": "1.7055554389953613",
"y2": "42.375",
"y1": "65.75"

}
// ...
]
},

"event_id": "{event_id}",
"created_at": "2012-11-26T15:44:44+01:00",
"updated_at": "2012-11-26T15:44:44+01:00"
},
{
"_id": "{id}",
"access_stamp": "2012-11-26T15:44:44+01:00",
"guest_uid": "5ch0b30mnc",
"accesspoint_id": "{check_in_point_id}",
"event_id": "{event_id}",
"created_at": "2012-11-26T15:44:44+01:00",
"updated_at": "2012-11-26T15:44:44+01:00"
}
// ...
]

XML

Request

GET /api/v1/events/{event_id}/signatures.xml?page=1&auth_token=YOUR_API_TOKEN

Response

<!-- 200 OK -->
<?xml version="1.0" encoding="UTF-8"?>
<signatures type="array">
<signature>
<_id>{id}</_id>
<access-stamp type="datetime">2012-11-26T14:44:44Z</access-stamp>
<guest-uid>68vju8yxgl</guest-uid>
<accesspoint-id>{check_in_point_id}</accesspoint-id>
<event-id>{event_id}</event-id>
<points>
<width>276</width>
<height>266</height>
<lines type="array">
<line>
<x1>272</x1>
<x2>250.625</x2>
<stroke-width>2.3333332538604736</stroke-width>
<y1>92</y1>
<y2>65.75</y2>
</line>
<!-- [...] -->
</lines>
</points>
<created-at type="datetime">2012-11-26T14:44:44Z</created-at>
<updated-at type="datetime">2012-11-26T14:44:44Z</updated-at>
</signature>
<signature>
<!-- [...] -->
</signature>
</signatures>

Create a signature

This method is used by our iPad application whenever a signature is collected.

JSON

Request

POST /api/v1/events/{event_id}/signatures.json?auth_token=YOUR_API_TOKEN Content-Type: application/json; charset=utf-8
  {
// Where did the signature take place? "accesspoint_id": "{check_in_point_id}",

// Which guest UID? "guest_uid": "19j38293ju",

// When (UTC)? If omitted, the server sets access_stamp to DateTime.now "access_stamp": "2012-11-26T14:44:44Z",

// The SVG representation of the signature
"points": { "width": "276",
"height": "266",
"lines":
[
{
"x2": "250.625",
"x1": "272",
"stroke-width": "2.3333332538604736",
"y2": "65.75",
"y1": "92"
},
{
"x2": "218.75",
"x1": "250.625",
"stroke-width": "1.7055554389953613",
"y2": "42.375",
"y1": "65.75"
}
// ...
]
}
}

Response

// 201 Created 
{
// The signature that was created
}

XML

Request

POST /api/v1/events/{event_id}/signatures.xml?auth_token=YOUR_API_TOKEN Content-Type: application/xml; charset=utf-8
  <signature>
<!-- Where did the signature take place? -->
<accesspoint-id>{check_in_point_id}</accesspoint-id>
<!-- Which guest UID? -->
<guest-uid>19j38293ju</guest-uid>
<!-- When (UTC)? If omitted, the server sets access_stamp to DateTime.now -->
<access-stamp>2012-11-26T14:44:44Z</access-stamp>
<!-- The SVG representation of the signature -->
<points>
<width>276</width>
<height>266</height>
<lines type="array">
<line>
<x1>272</x1>
<x2>250.625</x2>
<stroke-width>2.3333332538604736</stroke-width>
<y1>92</y1>
<y2>65.75</y2>
</line>
<!-- [...] -->
</lines>
</points>
</signature>

Response

<!-- 201 Created -->
<?xml version="1.0" encoding="UTF-8"?>
<signature>
<!-- The signature that was created -->
</signature>

Bulk create signatures

This endpoint is also used by our iPad guest list management application.

When operating offline, it allows the application to synchronize signatures once network connectivity is restored.

Submit an array of signatures to create.

If every signature is valid and the insertion succeeds, the API returns 201 Created.

If at least one signature cannot be inserted, the API returns 422 Unprocessable Entity.

In that case, the response contains the created signatures and an error report, in the same order as the records submitted in the request payload.

JSON

Request

POST /api/v1/events/{event_id}/signatures/batch_create.json?auth_token=YOUR_API_TOKEN Content-Type: application/json; charset=utf-8
  [
{
"accesspoint_id": "{check_in_point_id}",
"guest_uid": "19j38293ju",
"points": "[...]" },
{
"accesspoint_id": "{check_in_point_id}",
"guest_uid": "ieuwh8w7wn",
"points": "[...]"
}
]

Response

// 201 Created
[
{
// The first signature created
},
{
// The second signature created
}
]

XML

Request

POST /api/v1/events/{event_id}/signatures/batch_create.xml?auth_token=YOUR_API_TOKEN Content-Type: application/xml; charset=utf-8  
<signatures type="array">
<signature>
<accesspoint-id>{check_in_point_id}</accesspoint-id>
<guest-uid>19j38293ju</guest-uid>
<points><!-- [...] --></points>
</signature>
<signature>
<accesspoint-id>{check_in_point_id}</accesspoint-id>
<guest-uid>ieuwh8w7wn</guest-uid>
<points><!-- [...] --></points>
</signature>
</signatures>

Response

<!-- 201 Created -->
<signatures type="array">
<signature>
<!-- The first signature created -->
</signature>
<signature>
<!-- The second signature created -->
</signature>
</signatures>
Did this answer your question?