Welcome to Rhabits API documentation!
You can use our API to access Rhabits API endpoints, which can get information from various features.
Getting Started
- Please note that most requests require user authorization, for this you only need to send user’s access_token using GET method.
- All requests require your site (server_key) that should be sent with each request using POST method, the key can be found in Admin Panel > Mobile & API Settings > Manage API Access Keys > Server Key
- This is not a public API that can be used by public users, just the site owner can use it to build third party applications.
- IMPORTANT: This API can’t be used for marketing purpose or used to sell third party applications.
/api/get-site-settings
Get your site settings / config / information.
End point: http://messenger.rhabits/api/get-site-settings
JSON formatted success repsond:
{
"api_status": 200,
"config": [..], // An array of your site information, config etc..
}
/api/auth
Log in the user and get the access token.
End point: http://messenger.rhabits/api/auth
POST data:
Key | Value | Description | Required |
---|---|---|---|
username | string | User’s username | Yes |
password | string | User’s password | Yes |
timezone | string | User’s timezone | No |
device_id | string | Onesignal Device ID | No |
JSON formatted success repsond:
{
"api_status": 200,
"access_token": "", // store this, it will be used for all other API calls
"user_id": "", // authenticated user id
"timezone": "", // user timezone
}
/api/social-login
Log in the user and get the access token using FB or google.
End point: http://messenger.rhabits/api/social-login
POST data:
Key | Value | Description | Required |
---|---|---|---|
access_token | string | FB or Google access_token | Yes |
provider | string(facebook, google) | Login site | Yes |
google_key | string | Google API key | Yes if provider = google |
JSON formatted success repsond:
{
"api_status": 200,
"access_token": "", // store this, it will be used for all other API calls
"user_id": "", // authenticated user id
"timezone": "", // user timezone
}
/api/create-account
Create a new user account. and get the access token.
End point: http://messenger.rhabits/api/create-account
POST data:
Key | Value | Description | Required |
---|---|---|---|
username | string | User’s username | Yes |
password | string | User’s password | Yes |
string | User’s email | Yes | |
confirm_password | string | User’s confirm password | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"access_token": "", // store this, it will be used for all other API calls
"user_id": "", // authenticated user id
}
/api/set-browser-cookie
Log in the user to the browser using access_token.
End point: http://messenger.rhabits/api/set-browser-cookie?access_token=ACCESS_TOKEN
Success repsond:
Redirects to /get_news_feed page.
/api/delete-access-token
Log the user out.
End point: http://messenger.rhabits/api/delete-access-token?access_token=ACCESS_TOKEN
JSON formatted success repsond:
{
"api_status": 200,
}
/api/send-reset-password-email
Send password reset email.
End point: http://messenger.rhabits/api/send-reset-password-email?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
string | User’s Email | Yes |
JSON formatted success repsond:
{
"api_status": 200,
}
/api/get-user-data
Get any user data.
End point: http://messenger.rhabits/api/get-user-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | Get the data of this user id. | Yes |
fetch | user_data,followers,following,liked_pages,joined_groups | Choose what you would like to get from the user. | At least one key is required. |
JSON formatted success repsond:
{
"api_status": 200,
{The keys that are sent in fetch}
}
/api/get-many-users-data
Get mutli users data, for example you can get 20 users data as array in one API call.
End point: http://messenger.rhabits/api/get-many-users-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_ids | string | IDs separated with commas, example: 1,2,3,4,5 | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"users": [..] // array
}
/api/get-user-albums
Get user’s albums.
End point: http://messenger.rhabits/api/get-user-albums?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | Get the albums of this user ID. | Yes |
limit | int | Default: 35 | No |
offset | int | Get albums before the offset ID | No |
JSON formatted success repsond:
{
"api_status": 200,
"albums": {..}
}
/api/create-product
Create new product (market system).
End point: http://messenger.rhabits/api/create-product?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
product_title | string | Product title, min: 2 letters. | Yes |
product_description | string | Product description, min: 2 letters. | Yes |
product_location | string | Product location, min: 2 letters. | Yes |
product_price | int | Product price | Yes |
product_category | int | Product category | Yes |
product_type | int | 1 or 0, 1 for used product, 0 for new. | Yes |
images | Stream (File) | Image, (jpg,png,gif,jpeg) | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"product_id": 0, // created product ID
"product_post_id": 0 // created product post ID
}
/api/get-products
Get latest products, or user products.
End point: http://messenger.rhabits/api/get-products?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | Get the products of this user ID, leave this if you want to get latest products. | No |
limit | int | Default: 35 | No |
offset | int | Get albums before the offset ID | No |
category_id | int | Get the products under this category. | No |
keyword | int | Search for products. | No |
JSON formatted success repsond:
{
"api_status": 200,
"products": {..}
}
/api/get-events
Get latest events, or user events.
End point: http://messenger.rhabits/api/get-events?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
limit | int | Default: 35 | No |
offset | int | Get events before the offset ID | No |
my_offset | int | Get my events before the offset ID | No |
fetch | events,my_events | Choose what you would like to get. | At least one key is required. |
JSON formatted success repsond:
{
"api_status": 200,
{Keys that are sent in fetch}
}
/api/go-to-event
Go to event / remove go to event.
End point: http://messenger.rhabits/api/go-to-event?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
event_id | int | event ID | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"go_status": "going|not-going"
}
/api/interest-event
Interest in event / remove interest in event.
End point: http://messenger.rhabits/api/interest-event?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
event_id | int | event ID | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"interest_status": "interested|not-interested"
}
/api/create-event
Create new events.
End point: http://messenger.rhabits/api/create-event?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
event_name | string | Event name, min: 5 letters. | Yes |
event_location | string | Event location | Yes |
event_description | string | Event description, min: 10 letters. | Yes |
event_start_date | string | Event start date, fromat: YYYY-MM-DD | Yes |
event_end_date | string | Event end date, fromat: YYYY-MM-DD | Yes |
event_start_time | string | Event start time, fromat: 00:00 | Yes |
event_end_time | string | Event end time, fromat: 00:00 | Yes |
event_cover | stream (image file) | Event cover, jpg, png, gif, jpeg | No |
JSON formatted success repsond:
{
"api_status": 200,
"event_id": 0, // created event ID
}
/api/follow-user
Follow or unfollow a user.
End point: http://messenger.rhabits/api/follow-user?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | Who to follow? | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"follow_status": "followed|unfollowed"
}
/api/follow-request-action
Accpet or decline follow / friends requests.
End point: http://messenger.rhabits/api/follow-request-action?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | Who to accept or decline? | Yes |
request_action | accept, decline | Use accpet to accept the follow request, use decline to delete it. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
}
/api/block-user
Block or unblock a user.
End point: http://messenger.rhabits/api/block-user?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | Who to block or un-block? | Yes |
block_action | block, un-block | Use block to block the user, use un-block to unblock the user. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"block_status": "un-blocked|blocked"
}
/api/post-actions
Edit, delete a post | comment, like, wonder|dislike a post.
End point: http://messenger.rhabits/api/post-actions?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
post_id | int | The post you want to modify | Yes |
action | edit,delete,commet,like,dislike,wonder | … | Yes |
text | string | The post’s or comment’s text | Required if action = edit or comment |
JSON formatted success repsond:
{
"api_status": 200,
"action": "deleted|edited|commented|liked|disliked|wondered",
// if there is comments
"comment_data": {
"text": "COMMENT_TEXT",
"post_comments_count": "COMMENT_COUNT"
}
}
/api/like-page
Like or remove a like from a page.
End point: http://messenger.rhabits/api/like-page?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
page_id | int | The page id you want to like/dislike | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"like_status": "liked|unliked"
}
/api/join-group
Join or leave a group.
End point: http://messenger.rhabits/api/join-group?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
group_id | int | The group id you want to join/leave | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"join_status": "joined|left"
}
/api/create-story
Create new user story.
End point: http://messenger.rhabits/api/create-story?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
story_title | string | Story title, min: 2 letters. | No |
story_description | string | Story description | No |
file | Stream (File) | Images or videos, (jpg,png,mp4,gif,jpeg,mov,webm) | Yes |
file_type | image,video | Use image if you are uploading an image, use video if you are uploading a video | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"story_id": 0, // created story ID
}
/api/delete-story
Delete user story/status.
End point: http://messenger.rhabits/api/delete-story?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
story_id | int | Story ID that will be deleted. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"message": ".."
}
/api/set-chat-typing-status
Set chat “typing…” or remove it from chat.
End point: http://messenger.rhabits/api/set-chat-typing-status?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | User ID that the user is chatting with | Yes |
status | typing,stopped | Use typing to show typing message on user’s chat box, use stopped to remove it. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
}
/api/change-chat-color
Change the chat conversation color.
End point: http://messenger.rhabits/api/change-chat-color?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | User ID that the user is chatting with | Yes |
color | #{COLOR} | Hex color, example: #ffffff | Yes |
JSON formatted success repsond:
{
"api_status": 200,
}
/api/get-articles
Get latest or user’s articles.
End point: http://messenger.rhabits/api/get-articles?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
limit | int | Default: 25 | No |
offset | int | Get articles after the offset ID | No |
user_id | int | Filter by user. | No |
category | int | Filter by category. | No |
article_id | int | Get a specified article by ID. | No |
JSON formatted success repsond:
{
"api_status": 200,
"articles": [..] // Array
}
/api/get-group-data
Get any group data.
End point: http://messenger.rhabits/api/get-group-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
group_id | int | Get the data of this group. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"group_data": {..} // Object
}
/api/get-page-data
Get any page data.
End point: http://messenger.rhabits/api/get-page-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
page_id | int | Get the data of this page. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"page_data": {..} // Object
}
/get_news_feed
An HTML hybird page that displays user’s latest posts, page’s posts , group’s posts and latest timeline posts.
End point: http://messenger.rhabits/get_news_feed
GET data:
Key | Value | Description | Required |
---|---|---|---|
user_id | Show posts of this ID | Get the data of this post. | No |
page_id | Show posts of this page | Get the data of this post. | No |
group_id | Show posts of this group | Get the data of this post. | No |
Output:
HTML Document.
/api/get-post-data
Get any post data.
End point: http://messenger.rhabits/api/get-post-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
post_id | int | Get the data of this post. | Yes |
fetch | post_data,post_comments,post_wondered_users,post_liked_users | Choose what you would like to get from the post. | At least one key is required. |
JSON formatted success repsond:
{
"api_status": 200,
{Keys that are sent in fetch}
}
/api/update-user-data
Update user data, avatar, cover, general settings, privacy and a lot more.
End point: http://messenger.rhabits/api/update-user-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
username | string | User’s username | No |
string | User’s email address | No | |
phone_number | string | User’s phone number | No |
new_password | string | User’s new_password | No |
current_password | string | User’s current password | Yes, if new password is sent. |
gender | string (male, female) | User’s gender | No |
avatar | Stream (File) | User’s profile picture | No |
cover | Stream (File | User’s profile avatar | No |
… | strings | You can use and update any user data by sending the key name with its value in the POST request as above. | No |
JSON formatted success repsond:
{
"api_status": 200,
"message": "Your profile was updated"
}
/api/update-group-data
Update group data, avatar, cover, general settings, privacy and a lot more.
End point: http://messenger.rhabits/api/update-group-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
group_id | string | Effected group ID | Yes |
group_name | string | Group name | No |
group_title | string | Group title | No |
about | string | Group description | No |
category | string | Category ID | No |
privacy | 1,0 | Public or Private | No |
avatar | Stream (File) | User’s profile picture | No |
cover | Stream (File) | User’s profile avatar | No |
… | strings | You can use and update any user data by sending the key name with its value in the POST request as above. | No |
JSON formatted success repsond:
{
"api_status": 200,
"message": "Your group was updated"
}
/api/update-page-data
Update page data, avatar, cover, general settings, privacy and a lot more.
End point: http://messenger.rhabits/api/update-page-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
page_id | string | Effected page ID | Yes |
page_name | string | Page name | No |
page_title | string | Page title | No |
page_description | string | Page description | No |
page_category | string | Category ID | No |
avatar | Stream (File) | User’s profile picture | No |
cover | Stream (File) | User’s profile avatar | No |
… | strings | You can use and update any user data by sending the key name with its value in the POST request as above. | No |
JSON formatted success repsond:
{
"api_status": 200,
"message": "Your page was updated"
}
/api/get-movies
Get latest movies.
End point: http://messenger.rhabits/api/get-movies?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
limit | int | Movies Limit | No |
id | int | Get movie information for this ID | No |
offset | int | get movies after this ID | No |
genre | string | get movies under this genre category | No |
country | string | get movies under this country | No |
JSON formatted success repsond:
{
"api_status": 200,
"movies": [] // Array of latest movies
}
/api/create-group
Create a new group. and get the created group data.
End point: http://messenger.rhabits/api/create-group?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
group_name | string | Group name without special characters | Yes |
group_title | string | Group title | Yes |
about | string | Group about info | Yes |
category | int | Category ID | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"group_data": {..} // Object data of the created group
}
/api/create-page
Create a new page. and get the created page data.
End point: http://messenger.rhabits/api/create-page?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
page_name | string | Page name without special characters | Yes |
page_title | string | Page title | Yes |
page_category | string | Page about info | Yes |
page_description | string | Category ID | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"page_data": {..} // Object data of the created group
}
/api/get-nearby-users
Get nearby users using lat / lng
End point: http://messenger.rhabits/api/get-nearby-users?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
limit | int | Default: 25 | No |
offset | int | Get articles after the offset ID | No |
gender | male,female | Filter by gender. | No |
keyword | string | Filter by name. | No |
status | 1,0 | Filter by online / offline. | No |
distance | int | Filter by distance / km | No |
lat | string | Update user lat | No |
lng | string | Update user lng | No |
JSON formatted success repsond:
{
"api_status": 200,
"nearby_users": [..] // Array
}
/api/get-blocked-users
Get blocked users.
End point: http://messenger.rhabits/api/get-blocked-users?access_token=ACCESS_TOKEN
JSON formatted success repsond:
{
"api_status": 200,
"blocked_users": [..] // Array
}
/api/get-stories
Get latest friends stories.
End point: http://messenger.rhabits/api/get-stories?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
limit | int | Default: 25 | No |
JSON formatted success repsond:
{
"api_status": 200,
"stories": [..] // Array
}
/api/delete-conversation
Delete chat conversation
End point: http://messenger.rhabits/api/delete-conversation?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | User id you want to delete the conversation with. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"message": ".."
}
/api/get-community
Get user’s owned groups & pages.
End point: http://messenger.rhabits/api/get-community?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | Get the data of this user ID. | Yes |
fetch | groups,pages | At least one key is required. |
JSON formatted success repsond:
{
"api_status": 200,
{Keys that are sent in fetch}
}
/api/get-general-data
Get general site & user data, notification, friend/follow requests, counts, hashtags, pro users, and promoted pages
End point: http://messenger.rhabits/api/get-general-data?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
fetch | notifications,friend_requests,pro_users,promoted_pages,trending_hashtag,count_new_messages | At least one key is required. |
JSON formatted success repsond:
{
"api_status": 200,
{Keys that are sent in fetch}
}
/api/get-user-suggestions
Get random users to follow, or get users that matchs phone numbers.
End point: http://messenger.rhabits/api/get-user-suggestions?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
contacts | json string | Get users that matchs those phone numbers, example: [NUMBER1, NUMBER2]. | No |
JSON formatted success repsond:
{
"api_status": 200,
"suggestions": [],
"contacts_suggestions": []
}.
/api/send-message
Send a message to a user (file, sticker, or text)
End point: http://messenger.rhabits/api/send-message?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
user_id | int | To whom this message is sent | Yes |
message_hash_id | int | Generate a random unique hash, so you can use after the message is sent. | Yes |
text | string | Message text. | No |
file | stream (File) | Attach a file to the message. | No |
image_url | string (URL) | Import an image from a url. | No |
JSON formatted success repsond:
{
"api_status": 200,
"message_data": [..] // Array
}
/api/search
Search for users, pages, groups
End point: http://messenger.rhabits/api/search?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
limit | int | Default: 35 | No |
user_offset | int | Get users before the offset ID | No |
page_offset | int | Get paes before the offset ID | No |
group_offset | int | Get groups before the offset ID | No |
gender | string | Filter by gender (male/female) | No |
search_key | string | Keyword. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"users": [],
"pages": [],
"groups": []
}
/api/get-activities
Get latest activities
End point: http://messenger.rhabits/api/get-activities?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
limit | int | Default: 25 | No |
offset | int | Get activities before the offset ID | No |
JSON formatted success repsond:
{
"api_status": 200,
"activities": [],
}
/api/delete-user
Delete user.
End point: http://messenger.rhabits/api/delete-user?access_token=ACCESS_TOKEN
POST data:
Key | Value | Description | Required |
---|---|---|---|
password | string | User’s Password. | Yes |
JSON formatted success repsond:
{
"api_status": 200,
"message": "User successfully deleted."
}
Error Handling
All endpoints errors respond looks like:
{
"api_status": "400",
"errors": {
"error_id": ID,
"error_text": "..."
}
}