Getting Started
The Intercom API is based on REST: it is comprised of resources with predictable urls and utilises standard HTTP features (like HTTP Basic Authentication, Response Codes and Methods). All requests, including errors, return JSON. The API expects JSON for all POST and PUT requests.
API Endpoint
https://api.intercom.io/v1/
API Resources
- /users
- /users/notes
- /users/impressions
- /users/message_threads
- /tags
Client/Framework Libraries
- Ruby - github.com/intercom/intercom-ruby
- Ruby on Rails - github.com/intercom/intercom-rails
3rd party libraries
- Python - github.com/jkeyes/python-intercom
- Django - github.com/kencochrane/django-intercom
- PHP - github.com/nubera-ebusiness/intercom-php
- Zend Framework 2 - github.com/bgallagher/BgIntercom
- ASP.NET - github.com/tarr11/IntercomDotnet
Response Codes & Errors
Intercom uses standard HTTP response codes to indicate whether a request was successful or not. All errors return a JSON object describing the error.
Successful Responses
- 200 OK - Everything worked as expected.
- 201 Created - Everything worked and the request resulted in a resource being created and/or updated.
Errors
- 400 Bad Request - Often missing a required parameter.
- 401 Unauthorized - No valid API Key provided.
- 402 Request Failed - Parameters were valid but request failed.
- 404 Not Found - The requested item doesn't exist.
- 500, 502, 503, 504 Server errors - something went wrong on Intercom's end.
JSON Error Objects
{
"error": {
"type": "not_found",
"message": "The User was not found"
}
}type can be one of:
not_found: The resource wasn't foundserver_error: Something went wrong on our end
message should be a human friendly description of what went wrong.
Authentication
HTTP Authentication is used to authenticate with The API. Your username is your App ID and your password is an active API key for your app; these are both available on the API keys page, accessible through the "API Keys" menu item.
It is also possible to access a "dummy" app for testing your API Client by using dummy_app_id as the username. When using dummy mode, no data is persisted to the database and no messages will be sent to users.