Testers

List all testers

Receive a list of all Testers. Optionally, you can pass the following query parameters:

GET /api/v1/betas/{beta_id}/testers.xml

Request

curl http://sample.prefinery.com/api/v1/betas/1/testers.xml?api_key=a6c4aae2f1fc0e147272079ea95b219e26f6beaa

Response

HTTP/1.1 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<testers>
  <tester>
    <email>justin@prefinery.com</email>
    <id type="integer">1259</id>
    <invitation-code></invitation-code>
    <status>applied</status>
    <created-at type="datetime">2009-04-27T22:56:45-05:00</created-at>
    <updated-at type="datetime">2009-04-30T19:51:54-05:00</updated-at>
    <profile>
      <first-name>Justin</first-name>
      <last-name>Britten</last-name>
      <employer></employer>
      <jobtitle></jobtitle>
      <address-line1></address-line1>
      <address-line2></address-line2>
      <city>Austin</city>
      <state>TX</state>
      <postal-code></postal-code>
      <country></country>
      <telephone></telephone>
    </profile>
  </tester>
</testers>

Show a single tester

Get a single tester by its ID and the ID of the parent beta.

GET /api/v1/betas/{beta_id}/testers/1259.xml

Request

curl http://sample.prefinery.com/api/v1/betas/1/testers/1259.xml?api_key=a6c4aae2f1fc0e147272079ea95b219e26f6beaa

Response

HTTP/1.1 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<tester>
  <email>justin@prefinery.com</email>
  <id type="integer">1259</id>
  <invitation-code></invitation-code>
  <status>applied</status>
  <created-at type="datetime">2009-04-27T22:56:45-05:00</created-at>
  <updated-at type="datetime">2009-04-30T19:51:54-05:00</updated-at>
  <profile>
    <first-name>Justin</first-name>
    <last-name>Britten</last-name>
    <employer></employer>
    <jobtitle></jobtitle>
    <address-line1></address-line1>
    <address-line2></address-line2>
    <city>Austin</city>
    <state>TX</state>
    <postal-code></postal-code>
    <country></country>
    <telephone></telephone>
  </profile>
</tester>

Create a new tester

Create a new tester for a particular beta.

POST /api/v1/betas/{beta_id}/testers.xml

For example, attempt to create a tester as part of your site's signup process using an invitation code supplied by the tester in an input field in your signup form (e.g. TECHCRUNCH):

Request

<?xml version="1.0" encoding="UTF-8"?>
<tester>
  <email>justin@prefinery.com</email>
  <invitation-code>TECHCRUNCH</invitation-code>
  <status>active</status>
  <profile>
    <first-name>Justin</first-name>
    <last-name>Britten</last-name>
    <employer></employer>
    <jobtitle></jobtitle>
    <address-line1></address-line1>
    <address-line2></address-line2>
    <city></city>
    <state></state>
    <postal-code></postal-code>
    <country></country>
    <telephone></telephone>
  </profile>
</tester>

Or, using curl

curl --header "Content-Type: text/xml" --data "{the block of xml above}" http://sample.prefinery.com/api/v1/betas/1/testers?api_key=a6c4aae2f1fc0e147272079ea95b219e26f6beaa

Response

HTTP/1.1 201 Created
<?xml version="1.0" encoding="UTF-8"?>
<tester>
  <email>justin@prefinery.com</email>
  <id type="integer">1259</id>
  <invitation-code>TECHCRUNCH</invitation-code>
  <status>active</status>
  <created-at type="datetime">2009-04-27T22:56:45-05:00</created-at>
  <updated-at type="datetime">2009-04-30T19:51:54-05:00</updated-at>
  <profile>
    <first-name>Justin</first-name>
    <last-name>Britten</last-name>
    <employer></employer>
    <jobtitle></jobtitle>
    <address-line1></address-line1>
    <address-line2></address-line2>
    <city></city>
    <state></state>
    <postal-code></postal-code>
    <country></country>
    <telephone></telephone>
  </profile>
</tester>

Update an existing tester

Update a single tester by its ID and the ID of the parent beta. All fields are optional.

PUT /api/v1/betas/{beta_id}/testers/1259.xml

Request

<?xml version="1.0" encoding="UTF-8"?>
<tester>
  <email>justin@prefinery.com</email>
  <status>active</status>
  <profile>
    <first-name>Justin</first-name>
    <last-name>Britten</last-name>
    <employer></employer>
    <jobtitle></jobtitle>
    <address-line1></address-line1>
    <address-line2></address-line2>
    <city>Austin</city>
    <state>TX</state>
    <postal-code></postal-code>
    <country></country>
    <telephone></telephone>
  </profile>
</tester>

Or, using curl

curl -X PUT --header "Content-Type: text/xml" --data "{the block of xml above}" http://sample.prefinery.com/api/v1/betas/1/testers/1259.xml?api_key=a6c4aae2f1fc0e147272079ea95b219e26f6beaa

Response

HTTP/1.1 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<tester>
  <email>justin@prefinery.com</email>
  <id type="integer">1259</id>
  <invitation-code></invitation-code>
  <status>active</status>
  <created-at type="datetime">2009-04-27T22:56:45-05:00</created-at>
  <updated-at type="datetime">2009-04-30T19:51:54-05:00</updated-at>
  <profile>
    <first-name>Justin</first-name>
    <last-name>Britten</last-name>
    <employer></employer>
    <jobtitle></jobtitle>
    <address-line1></address-line1>
    <address-line2></address-line2>
    <city>Austin</city>
    <state>TX</state>
    <postal-code></postal-code>
    <country></country>
    <telephone></telephone>
  </profile>
</tester>

Delete a single tester

Delete a single tester by its ID and the ID of the parent beta.

DELETE /api/v1/betas/{beta_id}/testers/1259.xml

Request

curl -X DELETE http://sample.prefinery.com/api/v1/betas/1/testers/1259.xml?api_key=a6c4aae2f1fc0e147272079ea95b219e26f6beaa

Response

HTTP/1.1 200 OK

Verify a tester's invitation code

Verify whether an invitation code is valid for a given tester.

GET /api/v1/betas/{beta_id}/testers/1259/verify.xml?invitation_code=abc

Request

curl http://sample.prefinery.com/api/v1/betas/1/testers/1259/verify.xml?api_key=a6c4aae2f1fc0e147272079ea95b219e26f6beaa&invitation_code=532498a7b0ed9c798c6d1ba719be1394849d1bb28

Response

HTTP/1.1 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<tester>
  <email>justin@prefinery.com</email>
  <id type="integer">1259</id>
  <invitation-code>532498a7b0ed9c798c6d1ba719be1394849d1bb28</invitation-code>
  <status>invited</status>
  <created-at type="datetime">2009-04-27T22:56:45-05:00</created-at>
  <updated-at type="datetime">2009-04-30T19:51:54-05:00</updated-at>
  <profile>
    <first-name>Justin</first-name>
    <last-name>Britten</last-name>
    <employer></employer>
    <jobtitle></jobtitle>
    <address-line1></address-line1>
    <address-line2></address-line2>
    <city>Austin</city>
    <state>TX</state>
    <postal-code></postal-code>
    <country></country>
    <telephone></telephone>
  </profile>
</tester>

Check-in a tester

When a tester checks in their status will be set to active. Checking in a tester who has created an account on your site is a great way to identify testers who have actually accepted the invitation to your beta. Also, checking in a tester each time they log into your site is a great way to track visits and retention over time.

If you want to check in a tester by e-mail address, see Checkins

POST /api/v1/betas/{beta_id}/testers/1259/checkin.xml

Request

curl -X POST http://sample.prefinery.com/api/v1/betas/1/testers/1259/checkin.xml?api_key=a6c4aae2f1fc0e147272079ea95b219e26f6beaa

Response

HTTP/1.1 200 OK

List all checkins for a tester

Receive a list of checkins for a given tester. Only the last 60 checkins are returned and only one checkin is recorded per day.

GET /api/v1/betas/{beta_id}/testers/1259/checkins.xml

Request

curl http://sample.prefinery.com/api/v1/betas/1/testers/1259/checkins.xml?api_key=a6c4aae2f1fc0e147272079ea95b219e26f6beaa

Response

HTTP/1.1 200 OK
<?xml version="1.0" encoding="UTF-8"?>
<checkins>
  <checkin>
    <date type="date">2010-01-05</date>
  </checkin>
</checkins>