Introducing Our New EdTech API: A Comprehensive Guide
We're thrilled to announce the launch of our new API, designed to enhance your EdTech experience. This API provides a wide range of functionalities, from user management to project handling and collections. Here's a detailed overview of our API endpoints:
Users
GET /users/c: Fetch the currently logged-in user's username and credentials.
GET /users: Obtain a paginated list of users based on username or email. Search with 'matchtext'. The returned parameters depend on the query issuer's permissions.
GET /users/:username: Retrieve detailed information about a specific user.
GET /users/:username/password_reset/:token: Check and use a reset password token.
GET /users/:username/verify_user/:token: Verify a user's email or remove an expired token. Admins can verify users directly.
GET /users/email/:email: Send an email listing all users associated with an email address.
POST /users/:username: Add or update a user's information, including pre-hashed (SHA512) passwords.
POST /users/:username/newpassword: Set a new password for a user, with SHA512 pre-hashing.
POST /users/:username/resendverification: Resend a user verification email.
POST /users/:username/password_reset: Generate a token to reset a user's password.
POST /users/:username/login: Log a user into the system.
POST /logout: Log out the current user.
Projects
GET /projects: Access a list of published projects with filtering options.
GET /projects/:username: Get project metadata filtered by various parameters.
GET /projects/:username/:projectname: Retrieve specific project details.
GET /projects/:username/:projectname/metadata: Access project metadata.
GET /projects/:username/:projectname/versions: View information about project versions.
GET /projects/:username/:projectname/remixes: List all published remixes of a project.
GET /projects/:username/:projectname/thumbnail: Fetch a project's thumbnail.
POST /projects/:username/:projectname: Add or update a project.
POST /projects/:username/:projectname/metadata: Modify project metadata.
DELETE /projects/:username/:projectname: Remove a specific project.
Collections
GET /collections: Admins can view all collections or search by name.
GET /users/:username/collections: View a user's collections with search functionality.
GET /users/:username/collections/:collection_slug: Obtain details about a specific collection.
GET /users/:username/collections/:collection_slug/items(/:item_id): List items in a collection.
POST /users/:username/collections/:collection_slug: Create a new collection.
POST /users/:username/collections/:collection_slug/items(/:item_id): Add items to a collection.
DELETE /users/:username/collections/:collection_slug: Delete a collection.
DELETE /users/:username/collections/:collection_slug/items(/:item_id): Remove an item from a collection.
Our Writing Process
Our API documentation is crafted with precision and clarity. We believe in providing comprehensive yet understandable information to our users. We focus on clear language, practical examples, and thorough explanations of each endpoint. Our goal is to make your integration process as smooth as possible.
Stay tuned for more updates, and don't hesitate to reach out with any questions or feedback. Happy coding!
We keep a canonical copy of our API endpoints at /static/API for your convenience.