openapi: 3.1.1 info: version: 1.0.0 title: Braintrust Acls Users API description: 'API specification for the backend data server. The API is hosted globally at https://api.braintrust.dev or in your own environment. You can access the OpenAPI spec for this API at https://github.com/braintrustdata/braintrust-openapi.' license: name: Apache 2.0 servers: - url: https://api.braintrust.dev security: - bearerAuth: [] - {} tags: - name: Users paths: /v1/user: get: operationId: getUser tags: - Users description: List out all users. The users are sorted by creation date, with the most recently-created users coming first summary: List users security: - bearerAuth: [] - {} parameters: - $ref: '#/components/parameters/AppLimitParam' - $ref: '#/components/parameters/StartingAfter' - $ref: '#/components/parameters/EndingBefore' - $ref: '#/components/parameters/Ids' - $ref: '#/components/parameters/UserGivenName' - $ref: '#/components/parameters/UserFamilyName' - $ref: '#/components/parameters/UserEmail' - $ref: '#/components/parameters/OrgName' responses: '200': description: Returns a list of user objects content: application/json: schema: type: object properties: objects: type: array items: $ref: '#/components/schemas/User' description: A list of user objects required: - objects additionalProperties: false '400': description: The request was unacceptable, often due to missing a required parameter content: text/plain: schema: type: string application/json: schema: nullable: true '401': description: No valid API key provided content: text/plain: schema: type: string application/json: schema: nullable: true '403': description: The API key doesn’t have permissions to perform the request content: text/plain: schema: type: string application/json: schema: nullable: true '429': description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests headers: Retry-After: schema: type: string content: text/plain: schema: type: string application/json: schema: nullable: true '500': description: Something went wrong on Braintrust's end. (These are rare.) content: text/plain: schema: type: string application/json: schema: nullable: true /v1/user/{user_id}: get: operationId: getUserId tags: - Users description: Get a user object by its id summary: Get user security: - bearerAuth: [] - {} parameters: - $ref: '#/components/parameters/UserIdParam' responses: '200': description: Returns the user object content: application/json: schema: $ref: '#/components/schemas/User' '400': description: The request was unacceptable, often due to missing a required parameter content: text/plain: schema: type: string application/json: schema: nullable: true '401': description: No valid API key provided content: text/plain: schema: type: string application/json: schema: nullable: true '403': description: The API key doesn’t have permissions to perform the request content: text/plain: schema: type: string application/json: schema: nullable: true '429': description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests headers: Retry-After: schema: type: string content: text/plain: schema: type: string application/json: schema: nullable: true '500': description: Something went wrong on Braintrust's end. (These are rare.) content: text/plain: schema: type: string application/json: schema: nullable: true components: parameters: EndingBefore: schema: $ref: '#/components/schemas/EndingBefore' required: false description: 'Pagination cursor id. For example, if the initial item in the last page you fetched had an id of `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only pass one of `starting_after` and `ending_before`' name: ending_before in: query UserGivenName: schema: $ref: '#/components/schemas/UserGivenName' required: false description: Given name of the user to search for. You may pass the param multiple times to filter for more than one given name name: given_name in: query allowReserved: true StartingAfter: schema: $ref: '#/components/schemas/StartingAfter' required: false description: 'Pagination cursor id. For example, if the final item in the last page you fetched had an id of `foo`, pass `starting_after=foo` to fetch the next page. Note: you may only pass one of `starting_after` and `ending_before`' name: starting_after in: query AppLimitParam: schema: $ref: '#/components/schemas/AppLimitParam' required: false description: Limit the number of objects to return name: limit in: query Ids: schema: $ref: '#/components/schemas/Ids' required: false description: Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times name: ids in: query UserIdParam: schema: $ref: '#/components/schemas/UserIdParam' required: true description: User id name: user_id in: path UserFamilyName: schema: $ref: '#/components/schemas/UserFamilyName' required: false description: Family name of the user to search for. You may pass the param multiple times to filter for more than one family name name: family_name in: query allowReserved: true OrgName: schema: $ref: '#/components/schemas/OrgName' required: false description: Filter search results to within a particular organization name: org_name in: query allowReserved: true UserEmail: schema: $ref: '#/components/schemas/UserEmail' required: false description: Email of the user to search for. You may pass the param multiple times to filter for more than one email name: email in: query allowReserved: true schemas: OrgName: type: string description: Filter search results to within a particular organization User: type: object properties: id: type: string format: uuid description: Unique identifier for the user given_name: type: string nullable: true description: Given name of the user family_name: type: string nullable: true description: Family name of the user email: type: string nullable: true description: The user's email avatar_url: type: string nullable: true description: URL of the user's Avatar image created: type: string nullable: true format: date-time description: Date of user creation required: - id UserIdParam: type: string format: uuid description: User id AppLimitParam: type: integer nullable: true minimum: 0 description: Limit the number of objects to return UserFamilyName: anyOf: - type: string - type: array items: type: string description: Family name of the user to search for. You may pass the param multiple times to filter for more than one family name Ids: anyOf: - type: string format: uuid - type: array items: type: string format: uuid description: Filter search results to a particular set of object IDs. To specify a list of IDs, include the query param multiple times UserGivenName: anyOf: - type: string - type: array items: type: string description: Given name of the user to search for. You may pass the param multiple times to filter for more than one given name StartingAfter: type: string format: uuid description: 'Pagination cursor id. For example, if the final item in the last page you fetched had an id of `foo`, pass `starting_after=foo` to fetch the next page. Note: you may only pass one of `starting_after` and `ending_before`' UserEmail: anyOf: - type: string - type: array items: type: string description: Email of the user to search for. You may pass the param multiple times to filter for more than one email EndingBefore: type: string format: uuid description: 'Pagination cursor id. For example, if the initial item in the last page you fetched had an id of `foo`, pass `ending_before=foo` to fetch the previous page. Note: you may only pass one of `starting_after` and `ending_before`' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: API key or JWT description: 'Most Braintrust endpoints are authenticated by providing your API key as a header `Authorization: Bearer [api_key]` to your HTTP request. You can create an API key in the Braintrust [organization settings page](https://www.braintrustdata.com/app/settings?subroute=api-keys).'