The Inviite API
A (Mostly) Unformatted API Guide
All actions have standard REST verbs: GET, POST, PUT, DELETE.
An invitation represents a described event at a particular place, with a start (and optionally end) time.
URL
http://api.inviite.com/invitations.format
Formats
json, xml
HTTP Method
GET
Requires Authentication
false
Request Parameters
-
q
search by query string
Example http://api.inviite.com/invitations.json?q=birthday
-
tags
return events with tags
Example http://api.inviite.com/invitations.json?tags=jets
-
radius
find nearby events as a radius degree around a given latitude, longitude. Defaults to 0.3
-
latitude
find nearby events as latitude, also requires longitude
-
longitude
find nearby events as longitude, also requires latitude
Example
http://api.inviite.com/invitations.json?latitude=45.52240508804939&longitude=-122.68415500000003
Response Example
{
"invitation_id":"oqMJ",
"title":"Surprise Tailgating Party!",
"details":"<div>You're invited to my tailgating party!
You don't need to bring any beer. On the other hand...</div>",
"start_date_time":"2021-03-01T16:00:00+00:00",
"end_date_time":"2021-03-01T18:00:00+00:00",
"public":false,
"price":0.0,
"tags":["tailgating", "beer"]
"attending":{
"no_response":0
"yes":1,
"no":0,
"maybe":0,
},
"place":{
"venue":"Crystal Ballroom",
"address":"550 SW 16th Ave, Portland, OR 97205",
"city":"Portland",
"state":"OR",
"timezone":"America/Los_Angeles",
"utc_offset":-8.0,
"dst_utc_offset":-7.0,
"population": 540513,
"country":"US",
"location":{
"latitude":45.52240508804939,
"longitude":-122.68415500000003
}
},
"attendance_options":{
"yes":true,
"no":true,
"maybe":false
},
"guests":[{
"guest_id":"4d95749b360b0143eb00002d",
"name":"Eric Redmond",
"attending":"yes",
"others":0,
"role":"organizer",
"avatar":"http://www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e",
"location":{
"latitude":45.52240508804939,
"longitude":-122.68415500000003
}
"comments": [{
"text": "This sounds fun!"
"private": false
}]
}]
}
Response Values
All values are optional unless otherwise noted. Only "title" and "start_date_time" are required to create an event.
-
invitation_id
A public ID representing the event. The normal web access method is http://inviite.com/i/invitation_id
-
title (required)
A 50 char or less description of the event. Is required.
-
details
A longer HTML-laden description of the event
-
start_date_time (required)
-
end_date_time
Start and end time of the event in extended ISO 8601 date-time format. [YYYY]-[MM]-[DD]T[hh]:[mm]+00:00 Currently, the timezones are set to 0 and assumed to be in local time. I have a mechanism for tracking timezone by city closest to geo location, but until it's 100% correct, this way is fine. Since people will be in proximity, or know the location, they can assume 5:00pm means 5:00pm local time, not GMT :)
-
all_day
True if the event lasts all day. Time isn't required in this case, but clearly date still is. So start_date_time is still required.
-
tags
An array of any strings used to tag the event. Can be used as categories.
-
price
Unused in this context. Can be set if an event has a charge.
-
public
True if this event is publicly available (if public, event will be automatically added to SEO friendly event feeds and public calendars). I have this set to false
-
guests
A guest is someone who has (or is expected to) RSVP to an invitation no_response, yes, no, maybe
-
id
-
name
-
attending
no_response, yes, no, maybe
-
others
a count of other guests this person is bringing
-
role
The role of the guest. Currently only "organizer" has any meaning, and is the person who created the invitation.
-
avatar
A link to an icon that represents the person
-
comments
-
text
-
private
True if this comment is not to be published, and is viewable only by the organizer.
-
-
-
attendance_options
Mark the options available for attendance. Options are yes, no, and maybe.
Example {"yes":true,"no":false,"maybe":false} ... Guests may only RSVP "yes", or not at all
-
yes
-
no
-
maybe
-
-
attending
Each value is just a count of guests with the given attending response.
Example If 5 guests said "yes", {"yes":5, "no":0, "maybe":0, "no_response":0}. It's just a count.
-
no_response
-
yes
-
no
-
maybe
-
-
place
Information known about a place. Provides a venue name, address, city and other information. Importantly, also contains nested location information
-
venue
-
address
-
city
-
state
-
country
-
timezone
-
population
-
location
The global latitude/longitude coordinates of the event
-
latitude
A number between -180 and 180, representing a latitude position on the globe
-
longitude
A number between -180 and 180, representing a longitude position on the globe
-
-
URL
http://api.inviite.com/invitations.format
Formats
json, xml
HTTP Method
POST
Request Parameters
- Any of the above, plus the following
-
city_input -
name of a city. uses best match unless a specific state is also given
Example "Portland"
-
state_input -
name of a state. city_input required if a state is given
Example "OR"
-
venue_input -
name of a venue
Example "Crystal Ballroom"
-
address -
an address
Example "1234 Sesame St"
-
tag_input -
A comma separated list of tags/categories
Example "tailgating,party,beerbash"
- location[latitude] - set latitude
- location[longitude] - set longitude
-
group_nickname -
the nickname of a group hosting the event, accessible by http://inviite.com/group_nickname
Example "pdxweb"
Response Values
private_id
YOU MUST KEEP THIS. You cannot update an event or delete if you do not have the private key. This will change with the implementation of an OAuth security model. But for now, this secret key lets us know that this person created the event initially.
URL
http://api.inviite.com/invitations.format
Formats
json, xml
HTTP Method:
PUT
Request Parameters
- private_id (required)
Response Values
Same as above
Retrieving a single event
URL
http://api.inviite.com/invitations/invitation_id.format
Formats
json, xml
HTTP Method
GET
More Doco coming soon