# \ProjectsApi
All URIs are relative to *https://api.enbbox.com*
[**create_project**](ProjectsApi.md#create_project) | **POST** /v1/projects/ | POST /v1/projects/ — create a new project
[**delete_api_key**](ProjectsApi.md#delete_api_key) | **DELETE** /v1/projects/{id}/api-keys/{key_id}/ | DELETE /v1/projects/{id}/api-keys/{key_id}/ — revoke an API key by ID
[**delete_project**](ProjectsApi.md#delete_project) | **DELETE** /v1/projects/{id}/ | DELETE /v1/projects/{id}/ — delete a project (owner only)
[**generate_api_key**](ProjectsApi.md#generate_api_key) | **POST** /v1/projects/{id}/api-keys/ | POST /v1/projects/{id}/api-keys/ — generate a new API key
[**get_project**](ProjectsApi.md#get_project) | **GET** /v1/projects/{id}/ | GET /v1/projects/{id}/ — get a project by ID
[**invite_member**](ProjectsApi.md#invite_member) | **POST** /v1/projects/{id}/members/ | POST /v1/projects/{id}/members/ — invite a member by email (token-based)
[**list_api_keys**](ProjectsApi.md#list_api_keys) | **GET** /v1/projects/{id}/api-keys/ | GET /v1/projects/{id}/api-keys/ — list API keys for a project
[**list_members**](ProjectsApi.md#list_members) | **GET** /v1/projects/{id}/members/ | GET /v1/projects/{id}/members/ — list project members
[**list_projects**](ProjectsApi.md#list_projects) | **GET** /v1/projects/ | GET /v1/projects/ — list all projects the user is a member of
[**project_tags**](ProjectsApi.md#project_tags) | **GET** /v1/projects/{id}/tags/ | GET /v1/projects/{id}/tags/ — returns unique tags from all workflows in the project
[**remove_member**](ProjectsApi.md#remove_member) | **DELETE** /v1/projects/{id}/members/{member_id}/ | DELETE /v1/projects/{id}/members/{member_id}/ — remove a member
[**update_project**](ProjectsApi.md#update_project) | **PATCH** /v1/projects/{id}/ | PATCH /v1/projects/{id}/ — update a project
## create_project
> models::ProjectRecord create_project(create_project)
POST /v1/projects/ — create a new project
### Parameters
**create_project** | [**CreateProject**](CreateProject.md) | | [required] |
### Return type
[**models::ProjectRecord**](ProjectRecord.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## delete_api_key
> delete_api_key(id, key_id)
DELETE /v1/projects/{id}/api-keys/{key_id}/ — revoke an API key by ID
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
**key_id** | **uuid::Uuid** | API Key ID | [required] |
### Return type
(empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## delete_project
> delete_project(id)
DELETE /v1/projects/{id}/ — delete a project (owner only)
Safety guards: - Only owners can delete a project - Cannot delete the system project - Cannot delete a project with an active (non-cancelled) Stripe subscription
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
### Return type
(empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## generate_api_key
> models::ApiKeyCreateResponse generate_api_key(id)
POST /v1/projects/{id}/api-keys/ — generate a new API key
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
### Return type
[**models::ApiKeyCreateResponse**](ApiKeyCreateResponse.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## get_project
> models::ProjectRecord get_project(id)
GET /v1/projects/{id}/ — get a project by ID
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
### Return type
[**models::ProjectRecord**](ProjectRecord.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## invite_member
> models::MemberRecord invite_member(id, invite_member_body)
POST /v1/projects/{id}/members/ — invite a member by email (token-based)
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
**invite_member_body** | [**InviteMemberBody**](InviteMemberBody.md) | | [required] |
### Return type
[**models::MemberRecord**](MemberRecord.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## list_api_keys
> Vec<models::ApiKey> list_api_keys(id)
GET /v1/projects/{id}/api-keys/ — list API keys for a project
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
### Return type
[**Vec<models::ApiKey>**](ApiKey.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## list_members
> Vec<models::MemberRecord> list_members(id)
GET /v1/projects/{id}/members/ — list project members
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
### Return type
[**Vec<models::MemberRecord>**](MemberRecord.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## list_projects
> Vec<models::ProjectRecord> list_projects()
GET /v1/projects/ — list all projects the user is a member of
### Parameters
This endpoint does not need any parameter.
### Return type
[**Vec<models::ProjectRecord>**](ProjectRecord.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## project_tags
> Vec<String> project_tags(id)
GET /v1/projects/{id}/tags/ — returns unique tags from all workflows in the project
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
### Return type
**Vec<String>**
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## remove_member
> remove_member(id, member_id)
DELETE /v1/projects/{id}/members/{member_id}/ — remove a member
Safety guards: - Cannot remove yourself (use a different endpoint or transfer ownership first) - Cannot remove the last owner of a project - Only owners can remove other owners; admins can remove non-owners
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
**member_id** | **uuid::Uuid** | Member ID | [required] |
### Return type
(empty response body)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## update_project
> models::ProjectRecord update_project(id, update_project)
PATCH /v1/projects/{id}/ — update a project
### Parameters
**id** | **uuid::Uuid** | Project ID | [required] |
**update_project** | [**UpdateProject**](UpdateProject.md) | | [required] |
### Return type
[**models::ProjectRecord**](ProjectRecord.md)
### Authorization
[bearer_auth](../README.md#bearer_auth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)