HTTP API

The HTTP API can be used to build applications on top of Grove. Of course, you can always use the IRC protocol to interact with Grove too.

For all endpoints, HTTP basic access authentication is required.

Auth

GET https://grove.io/api/auth

Use this method to check if that the authentication username and password are correct. Returns the user and a list of their organizations.

Organization

GET https://grove.io/api/organizations/:org_id

Get information about an organization including a list of channels the user has joined in the organization. Also returns the cursor for use in the live endpoint.

Channel

GET https://grove.io/api/channels/:channel_id

Get information about a channel.

Messages

GET https://grove.io/api/channels/:channel_id/messages

Get a list of the most recent messages in a channel. Use the optional until_id parameter to paginate and get messages up until that message ID.
Optional parameters: until_id

Post a message

POST https://grove.io/api/channels/:channel_id/messages

Post a new message. To help remove duplicates in your own application, you may supply a unique ID for each message using the cid parameter.
Required parameters: message
Optional parameters: cid
Note: Want to post a message from a bot or service? Try our simple POST API.

Users

GET https://grove.io/api/channels/:channel_id/users

Get the list of the users in the channel. The response includes an online flag.

Topic

GET https://grove.io/api/channels/:channel_id/topic

Get the channel topic.

Update the topic

POST https://grove.io/api/channels/:channel_id/topic

Update the channel topic.
Required parameters: topic

Join list

GET https://grove.io/api/organizations/:org_id/join

Get list of available channels to join. The response includes an joined flag for channels the user has already joined.

Join channel

POST https://grove.io/api/channels/:channel_id/join

Join a channel.

Part channel

POST https://grove.io/api/channels/:channel_id/part

Part or leave a channel.

Private channel

GET https://grove.io/api/private/:org_name/:username

Get information about a private channel with another user. This will create a private channel if it doesn't exist already and also join the user to the channel.

Private channel messages

GET https://grove.io/api/private/:private_channel_id/messages

Get a list of the most recent private messages in a private channel. Use the optional until_id parameter to paginate and get messages up until that message ID.
Optional parameters: until_id

Post a private message

POST https://grove.io/api/private/:private_channel_id/messages

Post a new private message. To help remove duplicates in your own application, you may supply a unique ID for each message using the cid parameter.
Required parameters: message
Optional parameters: cid

Part private channel

POST https://grove.io/api/private/:private_channel_id/part

Part or leave a private channel.

Invite to an organization

POST https://grove.io/api/organizations/:org_id/invite

Invite someone to join your organization. You must be an owner of the organization. The emails parameter may be one or more email addresses, separated by commas. Use the optional message parameter to send a personal message.
Required parameters: emails
Optional parameters: message