@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Trash Nothing
@base https://trashnothing.com/api/v1.4
@version 1.4
@auth ApiKey api_key in query
@endpoints 12
@toc users(2), groups(3), posts(7)

@group users
@endpoint GET /users/{user_id}/posts
@required {user_id: any, types: any, sources: any}
@optional {sort_by: any, group_ids: any, per_page: any, page: any, device_pixel_ratio: any, latitude: any, longitude: any, radius: any, date_min: any, date_max: any, outcomes: any, include_reposts: any}
@returns(200)
@errors {400}

@endpoint GET /users/{user_id}/posts/search
@required {user_id: any, search: any, types: any, sources: any}
@optional {sort_by: any, group_ids: any, per_page: any, page: any, device_pixel_ratio: any, latitude: any, longitude: any, radius: any, date_min: any, date_max: any, outcomes: any, include_reposts: any}
@returns(200)
@errors {400}

@endgroup

@group groups
@endpoint GET /groups
@optional {name: any, latitude: any, longitude: any, distance: any, country: any, region: any, postal_code: any, page: any, per_page: any}
@returns(200)
@errors {400}

@endpoint GET /groups/{group_id}
@required {group_id: any}
@returns(200)
@errors {404}

@endpoint GET /groups/multiple
@required {group_ids: any}
@optional {latitude: any, longitude: any}
@returns(200)
@errors {400}

@endgroup

@group posts
@endpoint GET /posts
@required {types: any, sources: any}
@optional {sort_by: any, group_ids: any, per_page: any, page: any, device_pixel_ratio: any, latitude: any, longitude: any, radius: any, date_min: any, date_max: any, outcomes: any, include_reposts: any}
@returns(200)
@errors {400}

@endpoint GET /posts/search
@required {search: any, types: any, sources: any}
@optional {sort_by: any, group_ids: any, per_page: any, page: any, device_pixel_ratio: any, latitude: any, longitude: any, radius: any, date_min: any, date_max: any, outcomes: any, include_reposts: any}
@returns(200)
@errors {400}

@endpoint GET /posts/all
@required {types: any, date_min: any, date_max: any}
@optional {per_page: any, page: any, device_pixel_ratio: any}
@returns(200)
@errors {400}

@endpoint GET /posts/all/changes
@required {date_min: any, date_max: any}
@optional {per_page: any, page: any}
@returns(200)
@errors {400}

@endpoint GET /posts/{post_id}/display
@required {post_id: any}
@returns(200)
@errors {403, 404}

@endpoint GET /posts/{post_id}
@required {post_id: any}
@returns(200)
@errors {403, 404}

@endpoint GET /posts/multiple
@required {post_ids: any}
@returns(200)

@endgroup

@end
