# Tribal Habits API > Reference for the Tribal Habits Public API V1. - [Introduction](https://api-docs.tribalhabits.com/introduction.md): Tribal Habits Public API V1 reference. - [Authentication](https://api-docs.tribalhabits.com/authentication.md): Authenticate requests with your organisation's API key. - [Vanity URL](https://api-docs.tribalhabits.com/vanity-url.md): Use your own company domain for API requests. - [Errors](https://api-docs.tribalhabits.com/errors.md): Error codes returned by the Tribal Habits API. - [Rate limits](https://api-docs.tribalhabits.com/rate-limits.md): Request limits for the Tribal Habits API. - [Custom fields](https://api-docs.tribalhabits.com/custom-fields.md): Read and set your organisation's custom user fields. - [Get all users](https://api-docs.tribalhabits.com/api-reference/users/get-all-users.md): This endpoint retrieves all users (paginated), newest first. - [Create a new user](https://api-docs.tribalhabits.com/api-reference/users/create-a-new-user.md): This endpoint creates a new person. If the `user_name` or `email` is already used by another user, or a field is invalid, `422` is returned with details of the problem. - [Get a specific user](https://api-docs.tribalhabits.com/api-reference/users/get-a-specific-user.md): This endpoint retrieves a specific user. - [Update a specific user](https://api-docs.tribalhabits.com/api-reference/users/update-a-specific-user.md): This endpoint updates a specific user. Only fields that are supplied will be updated. To clear an optional field, send an empty string, eg `"manager_email": ""`. Returns `404` if the user does not exist. - [Batch create or update](https://api-docs.tribalhabits.com/api-reference/users/batch-create-or-update.md): This endpoint creates or updates multiple users in one call. A user whose `user_name` does not match an existing user is created with all the fields given. If the `user_name` already exists in the portal, that user is updated with only the fields that are given. To clear an optional field, send an e… - [Get all topics](https://api-docs.tribalhabits.com/api-reference/topics/get-all-topics.md): This endpoint retrieves all topics (paginated), ordered by title. Draft and archived topics are included; use `visibility` to tell them apart. - [Get a specific topic](https://api-docs.tribalhabits.com/api-reference/topics/get-a-specific-topic.md): This endpoint retrieves a specific topic. - [Get all pathways](https://api-docs.tribalhabits.com/api-reference/pathways/get-all-pathways.md): This endpoint retrieves all pathways (paginated), ordered by title. - [Get a specific pathway](https://api-docs.tribalhabits.com/api-reference/pathways/get-a-specific-pathway.md): This endpoint retrieves a specific pathway. - [Get all topic enrolments](https://api-docs.tribalhabits.com/api-reference/enrolments/get-all-topic-enrolments.md): This endpoint retrieves all topic enrolments (paginated), oldest first. - [Get all topic enrolments by user](https://api-docs.tribalhabits.com/api-reference/enrolments/get-all-topic-enrolments-by-user.md): This endpoint retrieves all topic enrolments for a user (paginated), oldest first. `user_name` is case-insensitive. Returns `404` if the user does not exist. - [Get a specific topic enrolment](https://api-docs.tribalhabits.com/api-reference/enrolments/get-a-specific-topic-enrolment.md): This endpoint retrieves a specific topic enrolment. - [Create or update topic or pathway enrolments](https://api-docs.tribalhabits.com/api-reference/enrolments/create-or-update-topic-or-pathway-enrolments.md): This endpoint creates or updates topic or pathway enrolments for one user, using enrolment codes. It is the single endpoint for creating and updating all enrolments, including pathway enrolments. Use the `UPDATE` action code to change dates on an existing enrolment. See [How can I enrol people or im… - [Get all pathway enrolments](https://api-docs.tribalhabits.com/api-reference/enrolments/get-all-pathway-enrolments.md): This endpoint retrieves all pathway enrolments (paginated), oldest first. - [Get all pathway enrolments by user](https://api-docs.tribalhabits.com/api-reference/enrolments/get-all-pathway-enrolments-by-user.md): This endpoint retrieves all pathway enrolments for a user (paginated), oldest first. `user_name` is case-insensitive. Returns `404` if the user does not exist. - [Get a specific pathway enrolment](https://api-docs.tribalhabits.com/api-reference/enrolments/get-a-specific-pathway-enrolment.md): This endpoint retrieves a specific pathway enrolment. - [Certificates](https://api-docs.tribalhabits.com/certificates.md): Generate and download certificates for completed enrolments. - [Request a certificate](https://api-docs.tribalhabits.com/api-reference/certificates/request-a-certificate.md): This endpoint requests certificate generation for a completed topic or pathway enrolment. Use `knowledge_type=topic` for both standard and short topics. The returned `job_id` can be checked for 24 hours. - [Poll certificate status](https://api-docs.tribalhabits.com/api-reference/certificates/poll-certificate-status.md): This endpoint checks the status of a certificate generation job. Jobs expire 24 hours after they are requested, after which this endpoint returns `404`. - [Download certificate PDF](https://api-docs.tribalhabits.com/download-certificate.md): Step 3 of 3: download the generated certificate PDF. - [Get all external knowledge](https://api-docs.tribalhabits.com/api-reference/external-knowledge/get-all-external-knowledge.md): This endpoint retrieves all external knowledge records (paginated). - [Get a specific external knowledge](https://api-docs.tribalhabits.com/api-reference/external-knowledge/get-a-specific-external-knowledge.md): This endpoint retrieves a specific external knowledge record. - [Create a new external knowledge](https://api-docs.tribalhabits.com/api-reference/external-knowledge/create-a-new-external-knowledge.md): This endpoint creates a new external knowledge record for a user. If the user cannot be found, `400` is returned and nothing is saved. Missing required fields return `422`. - [Update an external knowledge](https://api-docs.tribalhabits.com/api-reference/external-knowledge/update-an-external-knowledge.md): This endpoint updates an existing external knowledge record. Only fields that are supplied will be updated. The user cannot be changed with this endpoint. Skills and categories are only changed when the request includes them. To clear an optional field, send an empty string, eg `"notes": ""`. Return… - [Batch create external knowledge](https://api-docs.tribalhabits.com/api-reference/external-knowledge/batch-create-external-knowledge.md): This endpoint creates multiple external knowledge records in one call. Each record accepts the same fields as [Create a new external knowledge](/api-reference/external-knowledge/create-a-new-external-knowledge). Records are always created, not updated. - [Webhooks](https://api-docs.tribalhabits.com/webhooks.md): Get notified when events happen in Tribal Habits. - [Enrolment created](https://api-docs.tribalhabits.com/api-reference/webhooks/enrolment-created.md): Sent when a user is enrolled. - [Enrolment completed](https://api-docs.tribalhabits.com/api-reference/webhooks/enrolment-completed.md): Sent when an enrolment is completed. This is also sent when an enrolment is created already completed, for example by an import. - [Enrolment updated](https://api-docs.tribalhabits.com/api-reference/webhooks/enrolment-updated.md): Sent when an existing enrolment's dates change. It is sent only when: - [Enrolment deleted](https://api-docs.tribalhabits.com/api-reference/webhooks/enrolment-deleted.md): Sent when an enrolment is deleted. The payload describes the enrolment as it was before deletion. ## OpenAPI Specs - [openapi](/openapi.yaml) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.