How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

InstiApp API

IIT Bombay's campus-life API and the single largest first-party programmable surface the institution operates. 112 paths and 164 operations over student bodies and their role graphs (154 bodies live), institute events and calendar, the news feed, hostel mess menus (22 messes), 427 named campus map locations with institute-map coordinates, a public grievance register, a student marketplace, lost-and-found, achievements, and placement/internship blogs. A substantial read surface answers with no credential at all; user-scoped and placement paths require a session. The specification is autogenerated by drf-yasg from the live Django routes and is served at /docs/.

InstiApp API is one of 5 APIs that Indian Institute of Technology Bombay publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 JSON Schema definition.

Tagged areas include Campus Life, Event, Students, Open-Source, and Open Data. The published artifact set on APIs.io includes an OpenAPI specification, an API reference, authentication docs, a support channel, and 1 JSON Schema.

This API exposes 164 operations across 112 paths, organized into 50 resource areas, and defines 37 schemas. It is described by OpenAPI 3.0.0, at version v1.

Requests are made against a single base URL, https://gymkhana.iitb.ac.in/instiapp/api.

164 operations 112 paths 37 schemas 16 DELETE87 GET12 PATCH36 POST13 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
v1
Base URL
https://gymkhana.iitb.ac.in/instiapp/api
Authentication
HTTP Basic
License
AGPLv3
Terms of Service
Resource Areas
50

Authentication & Security 1

InstiApp API declares 1 security scheme for authenticating requests. It accepts HTTP basic authentication (Basic). By default, every request must be authenticated.

Paths & Operations 164

Across 112 paths, the API surfaces 164 operations — 16 DELETE, 87 GET, 12 PATCH, 36 POST, 13 PUT. They span 50 resource areas, including achievements, list_body, achievements-offer, alumni_login, alumni_otp_conf, bans, bodies, get_bodies, and 42 more. Each is listed below with its method, path, parameters, and response codes.

achievements 6
GET
/achievements
List the user's achivements and requests.
achievements_list → 200
POST
/achievements
Make a request to a body for a new achievement.
achievements_create body → 201
GET
/achievements/{id}
Views for Achievements
achievements_read 1 param → 200
PUT
/achievements/{id}
Update/Verify an achievement. Needs BodyRole with VerA or can patch own achievement
achievements_update 1 param body → 200
PATCH
/achievements/{id}
Update/Verify an achievement. Needs BodyRole with VerA or can patch own achievement
achievements_update 1 param body → 200
DELETE
/achievements/{id}
Delete an achievement or request. Needs BodyRole with VerA
achievements_delete 1 param → 204
list_body 1
GET
/achievements-body/{id}
List the user's achivements and requests.
list_body 1 param → 200
achievements-offer 5
POST
/achievements-offer
Offer a new achievement for an event.
achievements-offer_create body → 201
GET
/achievements-offer/{id}
Get a achievement offer.
achievements-offer_read 1 param → 200
POST
/achievements-offer/{id}
Claim and try to get an achievement with its secret.
achievements-offer_create 1 param body → 201
PUT
/achievements-offer/{id}
Update an offered achievement.
achievements-offer_update 1 param body → 200
DELETE
/achievements-offer/{id}
Update an offered achievement.
achievements-offer_delete 1 param → 204
alumni_login 1
GET
/alumniLogin
Login
alumni_login → 200
alumni_otp_conf 1
GET
/alumniOTP
Login
alumni_otp_conf → 200
bans 6
GET
/bans/
List all the banned Accounts.
bans_list → 200
POST
/bans/
bans_create body → 201
GET
/bans/{id}/
bans_read 1 param → 200
PUT
/bans/{id}/
bans_update 1 param body → 200
PATCH
/bans/{id}/
bans_update 1 param body → 200
DELETE
/bans/{id}/
bans_delete 1 param → 204
bodies 8
GET
/bodies
Body
bodies_list → 200
POST
/bodies
Create Body. Needs the AddB Institute Role permission.
bodies_create body → 201
GET
/bodies/{id}
Get Body. Retrieve by uuid or strid.
bodies_read 1 param → 200
PUT
/bodies/{id}
Update Body. Needs the UpdB permission.
bodies_update 1 param body → 200
DELETE
/bodies/{id}
Delete Body. Needs the DelB institute permission.
bodies_delete 1 param → 204
GET
/bodies/{id}/events
Get all events from pk uuid or strid. {?archived} is optional arguement to fetch all events
bodies_get_events 1 param → 200
GET
/bodies/{id}/follow
Follow or unfollow a body {?action}=0,1
bodies_follow 1 param → 200
GET
/bodies/{id}/followers
List followers of body.
bodies_followers_read 1 param → 200
get_bodies 2
GET
/bodies-with-privilege
Get bodies with users having a specific privilege.
get_bodies → 200
GET
/bodies-with-privilege/
Get bodies with users having a specific privilege.
get_bodies → 200
buy 10
GET
/buy/categories
buy_get_categories → 200
GET
/buy/products
buy_products_list → 200
POST
/buy/products
Creates product if the user isn't banned and form is filled correctly. Ban checking is yet to be incorporated.
buy_products_create body → 201
GET
/buy/products/{id}
buy_products_read 1 param → 200
PUT
/buy/products/{id}
buy_products_update 1 param body → 200
DELETE
/buy/products/{id}
buy_products_delete 1 param → 204
POST
/buy/products/{id}/sold
buy_products_mark_sold 1 param body → 201
POST
/buy/report/{id}
buy_report 1 param body → 201
GET
/buy/v2/products
buy_v2_products_read → 200
POST
/buy/v2/products
Creates product if the user isn't banned and form is filled correctly. Ban checking is yet to be incorporated.
buy_v2_products_create body → 201
calendar 27
GET
/calendar/feed/
View class for the Feed
calendar_feed_list → 200
GET
/calendar/preferences/
calendar_preferences_list → 200
PATCH
/calendar/preferences/
calendar_preferences_partial_update → 200
GET
/calendar/preferences/bodies/
calendar_preferences_bodies_list → 200
PATCH
/calendar/preferences/bodies/{body_id}/
calendar_preferences_bodies_partial_update 1 param → 200
GET
/calendar/shared/
calendar_shared_list → 200
POST
/calendar/shared/
calendar_shared_create → 201
PATCH
/calendar/shared/
calendar_shared_partial_update → 200
DELETE
/calendar/shared/
calendar_shared_delete → 204
GET
/calendar/shared/{slug}/
calendar_shared_read 1 param → 200
POST
/calendar/shared/{slug}/
calendar_shared_create 1 param → 201
PATCH
/calendar/shared/{slug}/
calendar_shared_partial_update 1 param → 200
DELETE
/calendar/shared/{slug}/
calendar_shared_delete 1 param → 204
GET
/calendar/shared/{slug}/events/
calendar_shared_events_list 1 param → 200
POST
/calendar/shared/{slug}/events/
calendar_shared_events_create 1 param → 201
PATCH
/calendar/shared/{slug}/events/
calendar_shared_events_partial_update 1 param → 200
DELETE
/calendar/shared/{slug}/events/
calendar_shared_events_delete 1 param → 204
GET
/calendar/shared/{slug}/events/{event_id}/
calendar_shared_events_read 2 params → 200
POST
/calendar/shared/{slug}/events/{event_id}/
calendar_shared_events_create 2 params → 201
PATCH
/calendar/shared/{slug}/events/{event_id}/
calendar_shared_events_partial_update 2 params → 200
DELETE
/calendar/shared/{slug}/events/{event_id}/
calendar_shared_events_delete 2 params → 204
POST
/calendar/shared/{slug}/subscribe/
calendar_shared_subscribe_create 1 param → 201
PATCH
/calendar/shared/{slug}/subscribe/
calendar_shared_subscribe_partial_update 1 param → 200
POST
/calendar/shared/{slug}/toggle/
calendar_shared_toggle_create 1 param → 201
PATCH
/calendar/shared/{slug}/toggle/
calendar_shared_toggle_partial_update 1 param → 200
POST
/calendar/shared/{slug}/unsubscribe/
calendar_shared_unsubscribe_create 1 param → 201
PATCH
/calendar/shared/{slug}/unsubscribe/
calendar_shared_unsubscribe_partial_update 1 param → 200
check 1
GET
/check/
check_list → 200
communities 3
GET
/communities
communities_list → 200
POST
/communities
communities_create body → 201
GET
/communities/{id}
communities_read 1 param → 200
communityposts 5
GET
/communityposts
List Of Posts. List fresh posts arranged chronologiaclly for the current user.
communityposts_list → 200
POST
/communityposts
Create Post and Comments. Needs AddP permission for each body to be associated.
communityposts_create body → 201
PUT
/communityposts/moderator/{id}
communityposts_change_status 1 param body → 200
GET
/communityposts/{id}
Get full Post. Get by uuid or strid
communityposts_read 1 param → 200
PUT
/communityposts/{id}
Update Event. Needs BodyRole with UpdE for at least one associated body. Disassociating bodies from the event requires the DelE permission and associating needs AddE
communityposts_update 1 param body → 200
perform_action 1
PUT
/communityposts/{action}/{id}
action==feature for featuring a post
perform_action 2 params body → 200
events 8
GET
/events
List Events. List fresh events prioritized for the current user.
events_list → 200
POST
/events
Create Event. Needs AddE permission for each body to be associated.
events_create body → 201
GET
/events/{id}
Get Event with permission check and retry-safe transaction.
events_read 1 param → 200
PUT
/events/{id}
Update Event. Needs BodyRole with UpdE for at least one associated body. Disassociating bodies from the event requires the DelE permission and associating needs AddE
events_update 1 param body → 200
DELETE
/events/{id}
Delete Event. Needs DelE permission for all associated bodies.
events_delete 1 param → 204
POST
/events/{id}/approve-mail
events_approve_mail 1 param → 201
POST
/events/{id}/reject-mail
events_reject_mail 1 param → 201
POST
/events/{id}/resubmit
events_resubmit 1 param → 201
list_all 1
GET
/events-all
List Events. List fresh events prioritized for the current user.
list_all → 200
external_blog 1
GET
/external-blog
Get External Blog.
external_blog → 200
getEncr 1
GET
/getEncr
getEncr_list → 200
getUserMess 1
GET
/getUserMess
Get mess status for a user
getUserMess_list → 200
interests 1
POST
/interests
Add a user interest.
interests_create body → 201
delete 1
DELETE
/interests/{id}
Delete a user interest.
delete 1 param → 204
internship 5
GET
/internship/filters/
internship_filters_list → 200
GET
/internship/posts/
internship_posts_list 1 param → 200
GET
/internship/posts/latest/
internship_posts_latest_list 1 param → 200
GET
/internship/threads/
internship_threads_list 1 param → 200
GET
/internship/threads/{company_slug}/
internship_threads_read 1 param → 200
lnf 2
GET
/lnf/products/
Get list of products.
lnf_products_list → 200
GET
/lnf/products/{id}/
Get a product from pk uuid or strid.
lnf_products_read 1 param → 200
locations 5
GET
/locations
List reusable locations.
locations_list → 200
POST
/locations
Create a Location. Needs 'Location' institute permission.
locations_create body → 201
GET
/locations/{id}
Location
locations_read 1 param → 200
PUT
/locations/{id}
Update Location. This requires the user to have the 'Location' institute permission or BodyRole for the event using the location if the it is not reusable.
locations_update 1 param body → 200
DELETE
/locations/{id}
Delete a Location. Needs 'Location' institute permission.
locations_delete 1 param → 204
login 2
GET
/login
Log in. Uses the code and redir query parameters.
login → 200
GET
/login/get-user
Get session and profile.
login_get_user → 200
logout 1
GET
/logout
Log out.
logout → 200
mess 1
GET
/mess
Get mess menus of all hostels.
mess_list → 200
my_events 1
GET
/my-events
Get all events created by the current user.
my_events → 200
nearest 1
POST
/nearest/
nearest_create → 201
news_feed 1
GET
/news
Get News feed.
news_feed → 200
get_notifications 1
GET
/notifications
Get unread notifications for current user.
get_notifications → 200
notifications 2
GET
/notifications/read
Mark all notifications as read.
notifications_mark_all_notifications_read → 200
GET
/notifications/read/{id}
Mark one notification as read.
notifications_mark_notification_read 1 param → 200
pass_login 1
GET
/pass-login
pass_login → 200
placement_blog 1
GET
/placement-blog
Get Placement Blog.
placement_blog → 200
placementblogs 5
GET
/placementblogs/filters/
placementblogs_filters_list → 200
GET
/placementblogs/posts/
placementblogs_posts_list 1 param → 200
GET
/placementblogs/posts/latest/
placementblogs_posts_latest_list 1 param → 200
GET
/placementblogs/threads/
placementblogs_threads_list 1 param → 200
GET
/placementblogs/threads/{company_slug}/
placementblogs_threads_read 1 param → 200
popup-notification 2
GET
/popup-notification/
Pop Up for the events
popup-notification_list → 200
POST
/popup-notification/{popup_id}/mark-as-read/
Marks a specific popup as read for the current user.
popup-notification_mark-as-read_create 1 param → 201
search 2
GET
/query
Get Search Results.
search → 200
GET
/search
search → 200
query 2
POST
/query/add
New Question Asked.
query_ask_question → 201
GET
/query/categories
Method to get all categories
query_get_categories → 200
resend_alumni_otp 1
GET
/resendAlumniOTP
Login
resend_alumni_otp → 200
roles 4
POST
/roles
Body Role
roles_create body → 201
GET
/roles/{id}
Body Role
roles_read 1 param → 200
PUT
/roles/{id}
Body Role
roles_update 1 param body → 200
DELETE
/roles/{id}
Body Role
roles_delete 1 param → 204
shortestpath 1
POST
/shortestpath/
shortestpath_create → 201
test 1
GET
/test/notification
test_create_test_notification → 200
training_blog 1
GET
/training-blog
Get Training Blog.
training_blog → 200
upload 3
POST
/upload
Upload file.
upload_create body → 201
GET
/upload/{id}
Upload
upload_read 1 param → 200
DELETE
/upload/{id}
Delete file entry.
upload_delete 1 param → 204
user-me 13
GET
/user-me
Get current user.
user-me_read → 200
PUT
/user-me
Update current user.
user-me_update body → 200
PATCH
/user-me
Update current user.
user-me_partial_update body → 200
GET
/user-me/events
Current user's created events.
user-me_get_my_events → 200
GET
/user-me/roles
Get roles with nested events.
user-me_get_my_roles → 200
GET
/user-me/signatures
Get signatures of the user.
user-me_signatures_read → 200
POST
/user-me/signatures
Add a signature for the user.
user-me_signatures_create body → 201
DELETE
/user-me/signatures/{id}
Delete a signature for the user.
user-me_delete_signature 1 param → 204
POST
/user-me/subscribe-wp
Subscribe to web push.
user-me_subscribe_web_push body → 201
GET
/user-me/ucpr/{post_pk}
Set UPR(User Post Reaction) for current user. This will create or update if record exists.
user-me_set_upr_me 1 param → 200
POST
/user-me/ucr/
Set UNR(User News Reaction) for current user. This will create or update if record exists.
user-me_set_ucr_me body → 201
GET
/user-me/ues/{event_pk}
Set UES for current user. This will create or update if record exists.
user-me_set_ues_me 1 param → 200
GET
/user-me/unr/{news_pk}
Set UNR(User News Reaction) for current user. This will create or update if record exists.
user-me_set_unr_me 1 param → 200
get_all_user_tags 1
GET
/user-tags
Get a list of categories of user tags with nested tags.
get_all_user_tags → 200
user-tags 1
POST
/user-tags/reach
Get reach of selected user tags.
user-tags_get_user_tags_reach → 201
users 1
GET
/users/{id}
UserProfile
users_read 1 param → 200
venter 10
GET
/venter/comments/{id}
Get a single comment.
venter_comments_read 1 param → 200
PUT
/venter/comments/{id}
Update a comment if created by current user.
venter_comments_update 1 param body → 200
DELETE
/venter/comments/{id}
Delete a comment by the current user.
venter_comments_delete 1 param → 204
GET
/venter/complaints
Get a list of non-deleted complaints. To filter by current user, add a query parameter {?filter}
venter_complaints_list → 200
POST
/venter/complaints
venter_complaints_create body → 201
GET
/venter/complaints/{id}
ComplaintViewSet to get the complaints
venter_complaints_read 1 param → 200
POST
/venter/complaints/{id}/comments
venter_complaints_comments_create 1 param body → 201
GET
/venter/complaints/{id}/subscribe
Subscribe or Un-Subscribe from a complaint {?action}=0,1
venter_complaints_subscribe 1 param → 200
GET
/venter/complaints/{id}/upvote
UpVote or un-UpVote a complaint {?action}=0,1
venter_complaints_up_vote 1 param → 200
GET
/venter/tags
TagViewSet for the getting related tags
venter_tags_list → 200
verifier_events 1
GET
/verifier-events
Get only pending events that the current verifier can approve.
verifier_events → 200

Schemas 37

The contract defines 37 schemas that model the data the API accepts and returns. The most detailed are EventFull (35 properties), UserProfileFull (27 properties), Product (21 properties), CommunityPostSerializers (21 properties). Each schema is shown below with its type and property counts.

BodySerializerMin
object
9 properties 1 required
UserProfile
object
4 properties
EventMin
object
7 properties 3 required
AchievementUser
object
14 properties 1 required
OfferedAchievement
object
7 properties 3 required
SSOBans
object
8 properties 3 required
RoleSerializerMin
object
5 properties 2 required
Body
object
19 properties 1 required
BodyFollowers
object
2 properties
Product
object
21 properties 2 required
CommunitySerializers
object
15 properties 2 required
CommunitySerializerMin
object
9 properties 2 required
Interest
object
2 properties 1 required
CommunityPostSerializers
object
21 properties
LocationSerializerMin
object
5 properties 1 required
EventFull
object
35 properties 6 required
UserInterest
object
2 properties 1 required
ExtractedData
object
11 properties
BlogPost
object
10 properties 6 required
CompanyThread
object
10 properties 3 required
CompleteThread
object
11 properties 3 required
ProductFound
object
10 properties 2 required
Location
object
12 properties 1 required
PlacementExtractedData
object
13 properties
PlacementBlogPost
object
10 properties 6 required
PlacementCompanyThread
object
11 properties 3 required
PlacementCompleteThread
object
12 properties 3 required
Role
object
11 properties 4 required
UploadedImage
object
2 properties
InstituteRole
object
3 properties 2 required
FormerRole
object
5 properties
VerifiedAchievement
object
9 properties 1 required
UserProfileFull
object
27 properties
Signature
object
5 properties 2 required
CommentPost
object
3 properties 1 required
ComplaintPost
object
8 properties
Tag
object
2 properties 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

iit-bombay-instiapp-api-openapi.yml Raw ↑

Other APIs Indian Institute of Technology Bombay publishes across the network.

IITB Central SSO — OpenID Connect
Gymkhana Profiles OAuth API
DSpace Institutional Repository (Central Library)
ITC Single Sign-On
Where this information came from

This is an independent, third-party profile of InstiApp API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.