@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Instagram API
@base https://api.instagram.com/v1
@version 1.0.0
@auth ApiKey access_token in query | OAuth2
@endpoints 27
@hint download_for_search
@toc geographies(1), locations(3), media(10), tags(3), users(10)

@group geographies
@endpoint GET /geographies/{geo-id}/media/recent
@required {geo-id: any}
@optional {count: any, min_id: any}
@returns(200)

@endgroup

@group locations
@endpoint GET /locations/search
@optional {distance: any, facebook_places_id: any, foursquare_id: any, lat: any, lng: any, foursquare_v2_id: any}
@returns(200)

@endpoint GET /locations/{location-id}
@required {location-id: any}
@returns(200)

@endpoint GET /locations/{location-id}/media/recent
@required {location-id: any}
@optional {min_timestamp: any, max_timestamp: any, min_id: any, max_id: any}
@returns(200)

@endgroup

@group media
@endpoint GET /media/popular
@returns(200)

@endpoint GET /media/search
@required {lat: any, lng: any}
@optional {min_timestamp: any, max_timestamp: any, distance: any}
@returns(200)

@endpoint GET /media/shortcode/{shortcode}
@required {shortcode: any}
@returns(200)

@endpoint GET /media/{media-id}
@required {media-id: any}
@returns(200)

@endpoint GET /media/{media-id}/comments
@required {media-id: any}
@returns(200)

@endpoint POST /media/{media-id}/comments
@required {media-id: any, text: any}
@returns(200)

@endpoint DELETE /media/{media-id}/comments/{comment-id}
@required {media-id: any, comment-id: any}
@returns(200)

@endpoint DELETE /media/{media-id}/likes
@required {media-id: any}
@returns(200)

@endpoint GET /media/{media-id}/likes
@required {media-id: any}
@returns(200)

@endpoint POST /media/{media-id}/likes
@required {media-id: any}
@returns(200)

@endgroup

@group tags
@endpoint GET /tags/search
@required {q: any}
@returns(200)

@endpoint GET /tags/{tag-name}
@required {tag-name: any}
@returns(200)

@endpoint GET /tags/{tag-name}/media/recent
@required {tag-name: any}
@optional {count: any, min_tag_id: any, max_tag_id: any}
@returns(200)

@endgroup

@group users
@endpoint GET /users/search
@required {q: any}
@optional {count: any}
@returns(200)

@endpoint GET /users/self/feed
@optional {count: any, min_id: any, max_id: any}
@returns(200)

@endpoint GET /users/self/media/liked
@optional {count: any, max_like_id: any}
@returns(200)

@endpoint GET /users/self/requested-by
@returns(200)

@endpoint GET /users/{user-id}
@required {user-id: any}
@returns(200)
@errors {404}

@endpoint GET /users/{user-id}/followed-by
@required {user-id: any}
@returns(200)

@endpoint GET /users/{user-id}/follows
@required {user-id: any}
@returns(200)

@endpoint GET /users/{user-id}/media/recent
@required {user-id: any}
@optional {count: any, max_timestamp: any, min_timestamp: any, min_id: any, max_id: any}
@returns(200)

@endpoint GET /users/{user-id}/relationship
@required {user-id: any}
@returns(200)

@endpoint POST /users/{user-id}/relationship
@required {user-id: any, action: any}
@returns(200)

@endgroup

@end
