@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Contribly
@base https://api.contribly.com/1
@version 1.0.0
@auth OAuth2
@endpoints 44
@hint download_for_search
@toc artifact-formats(1), assignments(4), change-log(1), contribution-refinements(1), contribution-refinement-types(1), export(1), export-summary(1), exports(1), contributions(8), credentials(1), event-types(1), forms(4), form-responses(3), media(1), notifications(1), scopes(1), subscriptions(2), subscription-types(1), tags(3), tagsets(3), users(3), verify(1)

@group artifact-formats
@endpoint GET /artifact-formats
@returns(200)

@endgroup

@group assignments
@endpoint GET /assignments
@optional {ownedBy: any, page: any, pageSize: any, q: any, urlWords: any, open: any, alwaysOpen: any, tag: any, name: any}
@returns(200)

@endpoint POST /assignments
@required {body: map}
@returns(200)
@errors {400, 500}

@endpoint DELETE /assignments/{id}
@required {id: any}
@returns(200)
@errors {403, 404}

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

@endgroup

@group change-log
@endpoint GET /change-log
@returns(200)

@endgroup

@group contribution-refinements
@endpoint GET /contribution-refinements
@optional {assignment: any, country: any, createdBefore: any, createdAfter: any, geohash: any, hasLocation: any, latLong: any, radius: any, mediaType: any, ownedBy: any, q: any, urlWords: any, user: any, refinements: any, refinementSize: any}
@returns(200)

@endgroup

@group contribution-refinement-types
@endpoint GET /contribution-refinement-types
@returns(200)

@endgroup

@group export
@endpoint POST /export
@optional {assignment: any, country: any, createdBefore: any, createdAfter: any, geohash: any, hasLocation: any, latLong: any, radius: any, mediaType: any, ownedBy: any, q: any, urlWords: any, user: any, tagged: any, combined: any, individual: any, format: any, json: any}
@returns(202)

@endgroup

@group export-summary
@endpoint POST /export-summary
@optional {assignment: any, country: any, createdBefore: any, createdAfter: any, geohash: any, hasLocation: any, latLong: any, radius: any, mediaType: any, ownedBy: any, q: any, urlWords: any, user: any}
@returns(200)

@endgroup

@group exports
@endpoint GET /exports/{id}
@required {id: any}
@returns(200)
@errors {404}

@endgroup

@group contributions
@endpoint GET /contributions
@optional {assignment: any, country: any, createdBefore: any, createdAfter: any, createdDay: any, createdMonth: any, geohash: any, hasLocation: any, latLong: any, radius: any, mediaType: any, ownedBy: any, q: any, urlWords: any, user: any, ids: any, format: any}
@returns(200)

@endpoint POST /contributions
@required {body: map}
@returns(200)

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

@endpoint DELETE /contributions/{id}
@required {id: any}
@returns(200)
@errors {403, 404}

@endpoint POST /contributions/{id}/flag
@required {id: any, body: map}
@returns(200)

@endpoint POST /contributions/{id}/like
@required {id: any}
@returns(200)

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

@endpoint POST /contributions/{id}/moderate
@required {id: any, body: map}
@returns(200)
@errors {400, 401, 403, 500}

@endgroup

@group credentials
@endpoint GET /credentials
@returns(200)
@errors {401}

@endgroup

@group event-types
@endpoint GET /event-types
@returns(200)

@endgroup

@group forms
@endpoint GET /forms
@required {ownedBy: any}
@returns(200)

@endpoint POST /forms
@required {body: map}
@returns(200)

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

@endpoint DELETE /forms/{id}
@required {id: any}
@returns(200)
@errors {404}

@endgroup

@group form-responses
@endpoint POST /form-responses
@required {body: map}
@returns(200)

@endpoint GET /form-responses
@optional {user: any, form: any, contribution: any}
@returns(200)

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

@endgroup

@group media
@endpoint POST /media
@required {body: str(byte)}
@returns(200)

@endgroup

@group notifications
@endpoint GET /notifications/contributions/{id}/preview
@required {id: any, message: any}
@returns(200)

@endgroup

@group scopes
@endpoint GET /scopes
@returns(200)

@endgroup

@group subscriptions
@endpoint GET /subscriptions
@required {body: map}
@returns(200)

@endpoint DELETE /subscriptions/{id}
@required {id: any}
@returns(200)

@endgroup

@group subscription-types
@endpoint GET /subscription-types
@returns(200)

@endgroup

@group tags
@endpoint GET /tags
@optional {ownedBy: any, tagSet: any, urlWords: any}
@returns(200)

@endpoint POST /tags
@required {body: map}
@returns(200)
@errors {400, 500}

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

@endgroup

@group tagsets
@endpoint GET /tagsets
@optional {ownedBy: any, urlWords: any}
@returns(200)

@endpoint POST /tagsets
@required {body: map}
@returns(200)

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

@endgroup

@group users
@endpoint GET /users
@optional {assignment: any, country: any, minimumContributions: any, linkedProfile: any, ownedBy: any, submittedBefore: any, submittedAfter: any, username: any}
@returns(200)

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

@endpoint GET /users/{id}/linked/{type}
@required {id: any, type: any}
@returns(200)
@errors {404}

@endgroup

@group verify
@endpoint POST /verify
@returns(200)

@endgroup

@end
