fastDove

API Documentation

Let your Dove go REST: Information for developers

Requeriments

To understand this document you need minimal knowledge about HTTP calls, XML and JSON.

What we provide

We are providing an HTTP-based API to enhance both fastDove and your applications features.

All the information can be returned in both xml and json, depending on the extension/content type requested.

If you're working with Python, you may consider using our Python wrapper instead.

List of methods

Contacts

  • GET /api/contacts.format : Get a list of all your contacts
  • GET /api/contacts/id.format: Get full info of contact with id
  • POST/PUT /api/contacts.format: Add a contact
    • name
    • lastname
    • prefix
    • mobile
    • groups (comma separated ids)
  • POST /api/contacts/id.format: Edit a contact
    • name
    • lastname
    • prefix
    • mobile
  • DELETE /api/contacts/id.format: Delete contact with id
  • POST /api/contacts/delete.format: Delete multiple contacts by id
    • contacts (comma separated ids)

Groups

  • GET /api/groups.xml: List groups
  • GET /api/groups/id.xml Get info from group with id
  • PUT/POST /api/groups.xml Add a group
    • name
    • description
    • contacts (comma separated ids)
  • POST /api/groups/id.xml Edit group with id
    • name
    • description
    • contacts (comma separated ids)
  • DELETE /api/groups/id.xml Delete group with id
  • POST /api/groups/delete.xml Delete multiple groups by id
    • groups (comma separated ids)

Messages

  • POST /api/message/send.xml: Send SMS
    • text
    • recipients[numbers] (comma separated numbers)
    • recipients[contacts] (comma separated ids)
    • recipients[groups] (comma separated ids)
    • scheduled[is] (1|0)
    • scheduled[date] (DD/MM/YYYY format)
    • scheduled[hour] (HH:MM format)
    • template (id)
    • template_params (parameters defined on your template)
    • senderid (id)
  • GET /api/message/history.xml: Get history of sent messages
  • DELETE /api/message/id.format: Delete message by batch id
  • POST /api/message/delete.format: Delete multiple messages by batch id
    • messages (comma separated ids)

Templates

  • GET /api/templates.xml: List templates
  • GET /api/templates/id.xml Get info of template with id
  • PUT/POST /api/templates.xml: Add a template
    • title
    • message
  • POST /api/templates/id.xml: Edit a template with id
    • title
    • message
  • DELETE /api/templates/id.format: Delete template with id
  • POST /api/templates/delete.format: Delete multiple templates by id
    • templates (comma separated ids)

Devices

  • POST /account/devices/associate.format: Associate a device with your fastDove account
    • type (possible values: "iphone")
    • token (device ID for push notifications)
  • POST /account/devices/unassociate.format: Unssociate a device from your fastDove accuont
    • type (possible values: "iphone")
    • token (device ID for push notifications)
  • GET /account/devices.format: Get the list of currently associated devices

Some examples

  • Get a list of your contacts:

    Just access to http://www.fastdove.com/api/contacts.xml

    You will be asked for your username and password. Remember, this is a GET request if your are using it outside a browser

  • Add a contact (using CURL):

    curl -X POST -u user:passwd --data "name=John&lastname=Smit&mobile=34666666666" http://www.fastdove.com/api/contacts.xml

  • Send a message (using CURL):

    Datafile:
    recipients[numbers]=34666666&text=Welcome to fastDove

    curl -X POST -u user:passwd --data @datafile http://www.fastdove.com/api/message/send.xml

    This method allows any of these parameters as recipients (or any combination of them):

    • Direct numbers: recipients[numbers]
    • Contacts: recipients[contacts] (by id)
    • Groups: recipients[groups] (by id)

FAQ

  1. This documentation is useless. I need more info
  2. Right now the documentation is a work in progress. We will open a wiki eventually

  3. Is this secure? What authentication method is being used?
  4. We are currently using httpauth to authenticate with the server. If you are concerned of someone hijacking/spying on your network, you should use alternative secure ways like tunneling and encryption.

  5. Can I use fastDove's API inside my appliaction/project/cheese-powered robot?
  6. Yes! Feel free to email us with your projects and ideas. We love innovation!

  7. I need X, which is not implemented.
  8. By now almost all fastDove's web funcionalities are implemented. If something is missing or not working feel free to contact us!

  9. This will be great to make an iPhone/android application! Are you aware of that?
  10. Yes, we are :)