{"note":"OpenAPI conversion -- returning structured metadata","name":"contribly-com","description":"Contribly","version":"1.0.0","base_url":"https://api.contribly.com/1","endpoints":44,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Contribly\n@base https://api.contribly.com/1\n@version 1.0.0\n@auth OAuth2\n@endpoints 44\n@hint download_for_search\n@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)\n\n@group artifact-formats\n@endpoint GET /artifact-formats\n@desc Artifact formats\n@returns(200) A list of artifact formats\n\n@endgroup\n\n@group assignments\n@endpoint GET /assignments\n@desc List assignments\n@optional {ownedBy: any # Restrict results to assignments owned by this user., page: any # Pagination page, pageSize: any # Pagination page size, q: any # Restrict results to assignments whose name or description matches this keyword., urlWords: any # Select an assignment by urlWords., open: any # Select open or closed assignments, alwaysOpen: any # Select assignments with no closing date., tag: any # Restrict results to assignments which are tagged with this tag., name: any # Restrict results to the assignment (or potentially assignments) with this exact name}\n@returns(200) A list of assignments\n\n@endpoint POST /assignments\n@desc Create a new assignment\n@required {body: map # Assignment object to be created}\n@returns(200) Assignment created\n@errors {400: The new assignment vailed to validate. Check the response body for details., 500: Failed to create the new assignment due to an unexpected error.}\n\n@endpoint DELETE /assignments/{id}\n@desc Delete this assignment and all of it's contributions\n@required {id: any # Id of the assignment to return}\n@returns(200) Assignment deleted\n@errors {403: Not permitted to delete this assignment., 404: Not found}\n\n@endpoint GET /assignments/{id}\n@desc Get a single assigment by id\n@required {id: any # Id of the assignment to return}\n@returns(200) Assignment found\n@errors {404: Not found}\n\n@endgroup\n\n@group change-log\n@endpoint GET /change-log\n@desc Recent changes\n@returns(200) A list of change log items\n\n@endgroup\n\n@group contribution-refinements\n@endpoint GET /contribution-refinements\n@desc List contribution refinement options\n@optional {assignment: any # Restrict results to contributions submitted to this assignment., country: any # Limit results to contributions which have a publicly visible location within the given country (specified by two letter country code)., createdBefore: any # Limit results to contributions created before this date time., createdAfter: any # Limit results to contributions created after this date time., geohash: any # Restrict results to contributions which have specified a location which falls within this geohash (or comma seperated list of multiple geohashes), hasLocation: any # Restrict results to contributions which have a publicly visible location., latLong: any # Limit results to contributions with location near this latitude and longitude (comma seperated lat/long pair). Also see radius, radius: any # When limiting result by location with the latLong parameter, specify the radius in kilometers., mediaType: any # Restrict results to contributions which include a media file of the given type (ie. image / video), ownedBy: any # Restrict results to contributions which are fall under the jurisdiction by this user., q: any # Restrict results to contributions whose headline text matches this keyword., urlWords: any # Locate a specific contribution by URL words, user: any # Restrict results to contributions by this user identified by id., refinements: any # Comma seperated list of refinement names., refinementSize: any # Number of refinement options to return.}\n@returns(200) A map of refinement names to lists of options\n\n@endgroup\n\n@group contribution-refinement-types\n@endpoint GET /contribution-refinement-types\n@desc List valid contribution refinement types\n@returns(200) An array of refinement types. These are the possible values of the get contribution refinements parameter.\n\n@endgroup\n\n@group export\n@endpoint POST /export\n@desc Export contributions.\n@optional {assignment: any # Restrict results to contributions submitted to this assignment., country: any # Limit results to contributions which have a publicly visible location within the given country (specified by two letter country code)., createdBefore: any # Limit results to contributions created before this date time., createdAfter: any # Limit results to contributions created after this date time., geohash: any # Restrict results to contributions which have specified a location which falls within this geohash (or comma seperated list of multiple geohashes), hasLocation: any # Restrict results to contributions which have a publicly visible location., latLong: any # Limit results to contributions with location near this latitude and longitude (comma seperated lat/long pair). Also see radius, radius: any # When limiting result by location with the latLong parameter, specify the radius in kilometers., mediaType: any # Restrict results to contributions which include a media file of the given type (ie. image / video), ownedBy: any # Restrict results to contributions which are fall under the jurisdiction by this user., q: any # Restrict results to contributions whose headline text matches this keyword., urlWords: any # Locate a specific contribution by URL words, user: any # Restrict results to contributions by this user identified by id., tagged: any # Should exported media files be tagged with metadata. Deprecated; use format instead., combined: any # Included a combined file with all contribution text., individual: any # Include individual text files for each contribution., format: any # Media format to export; none, fullsize, tagged or original., json: any # Include raw JSON for each contribution.}\n@returns(202) An export job describing the state of an export job.\n\n@endgroup\n\n@group export-summary\n@endpoint POST /export-summary\n@desc Export contributions preflight summary.\n@optional {assignment: any # Restrict results to contributions submitted to this assignment., country: any # Limit results to contributions which have a publicly visible location within the given country (specified by two letter country code)., createdBefore: any # Limit results to contributions created before this date time., createdAfter: any # Limit results to contributions created after this date time., geohash: any # Restrict results to contributions which have specified a location which falls within this geohash (or comma seperated list of multiple geohashes), hasLocation: any # Restrict results to contributions which have a publicly visible location., latLong: any # Limit results to contributions with location near this latitude and longitude (comma seperated lat/long pair). Also see radius, radius: any # When limiting result by location with the latLong parameter, specify the radius in kilometers., mediaType: any # Restrict results to contributions which include a media file of the given type (ie. image / video), ownedBy: any # Restrict results to contributions which are fall under the jurisdiction by this user., q: any # Restrict results to contributions whose headline text matches this keyword., urlWords: any # Locate a specific contribution by URL words, user: any # Restrict results to contributions by this user identified by id.}\n@returns(200) A summary of the number of contributions, media files and approximate total size of media files.\n\n@endgroup\n\n@group exports\n@endpoint GET /exports/{id}\n@desc Get a single export job; poll to follow export progress.\n@required {id: any # Id of the export job to return}\n@returns(200) Successful\n@errors {404: Not found}\n\n@endgroup\n\n@group contributions\n@endpoint GET /contributions\n@desc List contributions\n@optional {assignment: any # Restrict results to contributions submitted to this assignment., country: any # Limit results to contributions which have a publicly visible location within the given country (specified by two letter country code)., createdBefore: any # Limit results to contributions created before this date time., createdAfter: any # Limit results to contributions created after this date time., createdDay: any # Limit results to contributions created on this day., createdMonth: any # Limit results to contributions created during this month., geohash: any # Restrict results to contributions which have specified a location which falls within this geohash (or comma seperated list of multiple geohashes), hasLocation: any # Restrict results to contributions which have a publicly visible location., latLong: any # Limit results to contributions with location near this latitude and longitude (comma seperated lat/long pair). Also see radius, radius: any # When limiting result by location with the latLong parameter, specify the radius in kilometers., mediaType: any # Restrict results to contributions which include a media file of the given type (ie. image / video), ownedBy: any # Restrict results to contributions which are fall under the jurisdiction by this user., q: any # Restrict results to contributions whose headline text matches this keyword., urlWords: any # Locate a specific contribution by URL words, user: any # Restrict results to contributions by this user identified by id., ids: any # Restrict results to a list of specific contributions identified by a comma seperated list of ids., format: any # Select output format. 'json' or 'rss'. Defaults to JSON.}\n@returns(200) A list of contributions\n\n@endpoint POST /contributions\n@desc Create a new contribution\n@required {body: map # Contribution object to be created}\n@returns(200) Contribution created\n\n@endpoint GET /contributions/{id}\n@desc Get a single contribution by id\n@required {id: any # Id of the contribution to return}\n@returns(200) Successful\n@errors {404: Not found}\n\n@endpoint DELETE /contributions/{id}\n@desc Delete this contribution\n@required {id: any # Id of the contribution to delete}\n@returns(200) The deletion request has been accepted and will be processed in the background.\n@errors {403: The currently authorised user is not allowed to delete this contribution., 404: Not found}\n\n@endpoint POST /contributions/{id}/flag\n@desc Raise a flag against this contribution\n@required {id: any # Id of the contribution to flag, body: map # Flag to be created}\n@returns(200) Flag created\n\n@endpoint POST /contributions/{id}/like\n@desc Allows a user to mark a contribution as liked\n@required {id: any # Id of the contribution}\n@returns(200) The updated like count for this contribution.\n\n@endpoint GET /contributions/{id}/likes\n@desc List users who have liked this contributions\n@required {id: any # Id of the contribution}\n@returns(200) A list of user ids.\n\n@endpoint POST /contributions/{id}/moderate\n@desc Perform a moderation action on this contribution\n@required {id: any # Id of the contribution to moderate, body: map # A moderation action}\n@returns(200) The moderation action was successfully applied\n@errors {400: The submission falied to validate. Check the response body for details., 401: The request was not correctly authorised., 403: You do not have permission to perform this moderation action., 500: An unexpected error occurred.}\n\n@endgroup\n\n@group credentials\n@endpoint GET /credentials\n@desc List the credentials associated with the authenticated user.\n@returns(200) A list of credentials associated with this user.\n@errors {401: Not authorised}\n\n@endgroup\n\n@group event-types\n@endpoint GET /event-types\n@desc Event types\n@returns(200) A list of event types\n\n@endgroup\n\n@group forms\n@endpoint GET /forms\n@desc List forms\n@required {ownedBy: any # Restrict results to forms owned by this user.}\n@returns(200) A list of forms\n\n@endpoint POST /forms\n@desc Create a form\n@required {body: map # Form object to be created}\n@returns(200) Form created\n\n@endpoint GET /forms/{id}\n@desc Get a single form by id\n@required {id: any # Id of the form to return}\n@returns(200) Form found\n@errors {404: Not found}\n\n@endpoint DELETE /forms/{id}\n@desc Delete this form and all of it's responses.\n@required {id: any # Id of the form to delete}\n@returns(200) Form deleted\n@errors {404: Not found}\n\n@endgroup\n\n@group form-responses\n@endpoint POST /form-responses\n@desc Submit a response to a form\n@required {body: map # Form response}\n@returns(200) Form response saved\n\n@endpoint GET /form-responses\n@desc List form responses\n@optional {user: any # Restrict results to responses submitted by this user., form: any # Restrict results to responses submitted to this form., contribution: any # Restrict results to responses relating to this contribution.}\n@returns(200) A list of form responses\n\n@endpoint GET /form-responses/{id}\n@desc Get a single form response by id\n@required {id: any # Id of the assignment to return}\n@returns(200) Form response found\n@errors {404: Not found}\n\n@endgroup\n\n@group media\n@endpoint POST /media\n@desc Submit a new media file\n@required {body: str(byte) # Binary media file}\n@returns(200) Media created\n\n@endgroup\n\n@group notifications\n@endpoint GET /notifications/contributions/{id}/preview\n@required {id: any # Id of the contribution to preview a notification for, message: any # Type of message to preview.}\n@returns(200) Notification preview\n\n@endgroup\n\n@group scopes\n@endpoint GET /scopes\n@desc Scopes\n@returns(200) A list of scopes\n\n@endgroup\n\n@group subscriptions\n@endpoint GET /subscriptions\n@desc List subscriptions for the authorised user.\n@required {body: map # Subscription to be created}\n@returns(200) A list of notification subscriptions\n\n@endpoint DELETE /subscriptions/{id}\n@desc Delete a subscription.\n@required {id: any # Id of the subscription to delete}\n@returns(200) The subscription has been successfully deleted.\n\n@endgroup\n\n@group subscription-types\n@endpoint GET /subscription-types\n@desc Subscription types\n@returns(200) A list of subscription event types\n\n@endgroup\n\n@group tags\n@endpoint GET /tags\n@desc List tags\n@optional {ownedBy: any # Restrict results to those owned by this user., tagSet: any # Restrict results to tags belonging to this tag set., urlWords: any # Restrict results by urlWords. Should be used with ownedBy when searching for one of your own tags.}\n@returns(200) A list of tags\n\n@endpoint POST /tags\n@desc Create a new tag\n@required {body: map # Tag object to be created}\n@returns(200) Tag created\n@errors {400: The new tag submission failed to validate. Check the response body for details., 500: Failed to create the new tag due to an unexcepted error.}\n\n@endpoint GET /tags/{id}\n@desc Retrieve a single tag by id\n@required {id: any # Id of the tag to return}\n@returns(200) The tag\n@errors {404: Not found}\n\n@endgroup\n\n@group tagsets\n@endpoint GET /tagsets\n@desc List tag sets\n@optional {ownedBy: any # Restrict results to those owned by this user., urlWords: any # Restrict results by urlWords. Should be used with ownedBy when searching for one of your own tag sets.}\n@returns(200) A list of tag sets\n\n@endpoint POST /tagsets\n@desc Create a new tag set\n@required {body: map # Tag set to be created}\n@returns(200) Tagset created\n\n@endpoint GET /tagsets/{id}\n@desc Retrieve a single tag set by id\n@required {id: any # Id of the tag set to return}\n@returns(200) The tag set\n@errors {404: Not found}\n\n@endgroup\n\n@group users\n@endpoint GET /users\n@desc List users\n@optional {assignment: any # Restrict results to the users who have contributed to this assignment., country: any # Restrict results to the users who have submitted a contribution with a public location located within this country., minimumContributions: any # Restrict results to the users who have submitted at least this many contributions., linkedProfile: any # Restrict results to the users who a linked profile of this type., ownedBy: any # Restrict results to the users who are owned by of this owner., submittedBefore: any # Limit results to users who have submitted at least one contribution before this date time., submittedAfter: any # Limit results to users who have submitted at least one contribution after this date time., username: any # Restrict results to the user with this username.}\n@returns(200) A list of users\n\n@endpoint GET /users/{id}\n@desc Retrieve a single user by id\n@required {id: any # Id of the user to return}\n@returns(200) Successful\n@errors {404: Not found}\n\n@endpoint GET /users/{id}/linked/{type}\n@desc Retrieve a users linked profile by type\n@required {id: any # Id of the user to return, type: any # Type of the linked profile to fetch}\n@returns(200) Successful\n@errors {404: Not found}\n\n@endgroup\n\n@group verify\n@endpoint POST /verify\n@desc Verify token and return details of the owning user\n@returns(200) Token is valid\n\n@endgroup\n\n@end\n"}