Skip to content
Get started

Projects

Create
projects.create(ProjectCreateParams**kwargs) -> ProjectCreateResponse
POST/projects
Delete
projects.delete(strproject_id) -> object
DELETE/projects/{projectId}
List
projects.list(ProjectListParams**kwargs) -> SyncProjectsCursor[ProjectListResponse]
GET/projects
Retrieve
projects.retrieve(strproject_id) -> ProjectRetrieveResponse
GET/projects/{projectId}
Update
projects.update(strproject_id, ProjectUpdateParams**kwargs) -> ProjectUpdateResponse
PUT/projects/{projectId}
ModelsExpand Collapse
class ProjectCreateResponse: …
project: Project
id: str

The project ID (example: “project_eyVcnFJcR92BxBkz7N6g5w”)

created_at: str
keys: List[ProjectKey]

The keys of the project (get from the ProjectRoles table)

id: str

The key’s member id (its API user id, apiu_...), taken by the member and usage routes (example: “apiu_eyVcnFJcR92BxBkz7N6g5w”)

api_key_id: str

The API key id (api_...), taken by the api-keys routes (example: “api_eyVcnFJcR92BxBkz7N6g5w”)

api_key_status: Literal["active", "inactive"]

The status of the API key

One of the following:
"active"
"inactive"
created_at: str

The API key creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

name: str

The API key name (example: “eurv-scenario”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

scope: Literal["project", "team"]

The scope of the API key: ‘project’ for project-scoped keys, ‘team’ for team-scoped keys

One of the following:
"project"
"team"
updated_at: str

The API key last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

author_id: Optional[str]

The member who created the key: a human, or the member id (apiu_...) of the team API key that created it.

consumption: Optional[float]

Consumption (CU) used by this key over the current billing period.

last_used_at: Optional[str]

The date the API key was last used to authenticate a request, as an ISO string (example: “2023-02-03T11:19:41.579Z”). Absent if the key has never been used.

max_consumption: Optional[float]

The key’s effective consumption (CU) cap for the period (per-key override, else the team-wide default). Absent when the key is uncapped.

owner_id: Optional[str]

For a PROJECT key: the project it was created on (the team id on some legacy keys). Absent for team keys.

projects: Optional[List[ProjectKeyProject]]

For a PROJECT key: the projects it has access to and its role on each. Empty when the key is currently not a member of any (live) project. Absent for team keys.

project_id: str

The project the key has a role on

role: str

The key’s role on this project: a built-in role (admin/editor/reader) or a custom ;-separated scope list (example: "asset.read;model.read").

name: str

The project name (example: “Default Project”)

privacy_mode: bool

Whether the project is privacyMode In a privacyMode project, users can only see their own generated assets (except admins)

team_id: str

The team ID (example: “team_eyVcnFJcR92BxBkz7N6g5w”)

updated_at: str
users: List[ProjectUser]

The users of the project (get from the ProjectRoles table)

id: str

The user ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

created_at: str

The user creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

email: str

The user email (example: “herve@scenario.com”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

updated_at: str

The user last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

avatar: Optional[ProjectUserAvatar]

The user’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this member over the current billing period.

max_consumption: Optional[float]

The member’s effective consumption (CU) cap for the period (per-user override, else the team-wide default). Absent when the member is uncapped.

avatar: Optional[ProjectAvatar]

The project’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this project over the current billing period.

description: Optional[str]

High-level markdown description of the project Only returned on single project GET, not on list

description_date: Optional[str]

ISO string date when the description was last updated Only returned on single project GET, not on list

disable_ip_detection: Optional[bool]

When true, IP detection is switched off for this project even if the team has an active posture. Absent means the team posture applies. The posture itself (disabled / active-fail-open / active-fail-closed) is a team-level setting, see the team’s ipDetectionEnforcement.

max_consumption: Optional[float]

The project’s consumption (CU) cap for the period. Absent when uncapped.

quality_gate_auto_detect: Optional[bool]

Whether Quality Gate auto-detection runs on generation for this project.

settings: Optional[ProjectSettings]

Project settings. Returned on GET and PUT /projects/{projectId}, absent from the projects list.

homepage: Optional[Dict[str, object]]

Published homepage layout.

class ProjectListResponse: …
id: str

The project ID (example: “project_eyVcnFJcR92BxBkz7N6g5w”)

created_at: str
keys: List[Key]

The keys of the project (get from the ProjectRoles table)

id: str

The key’s member id (its API user id, apiu_...), taken by the member and usage routes (example: “apiu_eyVcnFJcR92BxBkz7N6g5w”)

api_key_id: str

The API key id (api_...), taken by the api-keys routes (example: “api_eyVcnFJcR92BxBkz7N6g5w”)

api_key_status: Literal["active", "inactive"]

The status of the API key

One of the following:
"active"
"inactive"
created_at: str

The API key creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

name: str

The API key name (example: “eurv-scenario”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

scope: Literal["project", "team"]

The scope of the API key: ‘project’ for project-scoped keys, ‘team’ for team-scoped keys

One of the following:
"project"
"team"
updated_at: str

The API key last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

author_id: Optional[str]

The member who created the key: a human, or the member id (apiu_...) of the team API key that created it.

consumption: Optional[float]

Consumption (CU) used by this key over the current billing period.

last_used_at: Optional[str]

The date the API key was last used to authenticate a request, as an ISO string (example: “2023-02-03T11:19:41.579Z”). Absent if the key has never been used.

max_consumption: Optional[float]

The key’s effective consumption (CU) cap for the period (per-key override, else the team-wide default). Absent when the key is uncapped.

owner_id: Optional[str]

For a PROJECT key: the project it was created on (the team id on some legacy keys). Absent for team keys.

projects: Optional[List[KeyProject]]

For a PROJECT key: the projects it has access to and its role on each. Empty when the key is currently not a member of any (live) project. Absent for team keys.

project_id: str

The project the key has a role on

role: str

The key’s role on this project: a built-in role (admin/editor/reader) or a custom ;-separated scope list (example: "asset.read;model.read").

name: str

The project name (example: “Default Project”)

privacy_mode: bool

Whether the project is privacyMode In a privacyMode project, users can only see their own generated assets (except admins)

team_id: str

The team ID (example: “team_eyVcnFJcR92BxBkz7N6g5w”)

updated_at: str
users: List[User]

The users of the project (get from the ProjectRoles table)

id: str

The user ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

created_at: str

The user creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

email: str

The user email (example: “herve@scenario.com”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

updated_at: str

The user last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

avatar: Optional[UserAvatar]

The user’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this member over the current billing period.

max_consumption: Optional[float]

The member’s effective consumption (CU) cap for the period (per-user override, else the team-wide default). Absent when the member is uncapped.

avatar: Optional[Avatar]

The project’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this project over the current billing period.

description: Optional[str]

High-level markdown description of the project Only returned on single project GET, not on list

description_date: Optional[str]

ISO string date when the description was last updated Only returned on single project GET, not on list

disable_ip_detection: Optional[bool]

When true, IP detection is switched off for this project even if the team has an active posture. Absent means the team posture applies. The posture itself (disabled / active-fail-open / active-fail-closed) is a team-level setting, see the team’s ipDetectionEnforcement.

max_consumption: Optional[float]

The project’s consumption (CU) cap for the period. Absent when uncapped.

quality_gate_auto_detect: Optional[bool]

Whether Quality Gate auto-detection runs on generation for this project.

settings: Optional[Settings]

Project settings. Returned on GET and PUT /projects/{projectId}, absent from the projects list.

homepage: Optional[Dict[str, object]]

Published homepage layout.

class ProjectRetrieveResponse: …
project: Project
id: str

The project ID (example: “project_eyVcnFJcR92BxBkz7N6g5w”)

created_at: str
keys: List[ProjectKey]

The keys of the project (get from the ProjectRoles table)

id: str

The key’s member id (its API user id, apiu_...), taken by the member and usage routes (example: “apiu_eyVcnFJcR92BxBkz7N6g5w”)

api_key_id: str

The API key id (api_...), taken by the api-keys routes (example: “api_eyVcnFJcR92BxBkz7N6g5w”)

api_key_status: Literal["active", "inactive"]

The status of the API key

One of the following:
"active"
"inactive"
created_at: str

The API key creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

name: str

The API key name (example: “eurv-scenario”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

scope: Literal["project", "team"]

The scope of the API key: ‘project’ for project-scoped keys, ‘team’ for team-scoped keys

One of the following:
"project"
"team"
updated_at: str

The API key last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

author_id: Optional[str]

The member who created the key: a human, or the member id (apiu_...) of the team API key that created it.

consumption: Optional[float]

Consumption (CU) used by this key over the current billing period.

last_used_at: Optional[str]

The date the API key was last used to authenticate a request, as an ISO string (example: “2023-02-03T11:19:41.579Z”). Absent if the key has never been used.

max_consumption: Optional[float]

The key’s effective consumption (CU) cap for the period (per-key override, else the team-wide default). Absent when the key is uncapped.

owner_id: Optional[str]

For a PROJECT key: the project it was created on (the team id on some legacy keys). Absent for team keys.

projects: Optional[List[ProjectKeyProject]]

For a PROJECT key: the projects it has access to and its role on each. Empty when the key is currently not a member of any (live) project. Absent for team keys.

project_id: str

The project the key has a role on

role: str

The key’s role on this project: a built-in role (admin/editor/reader) or a custom ;-separated scope list (example: "asset.read;model.read").

name: str

The project name (example: “Default Project”)

privacy_mode: bool

Whether the project is privacyMode In a privacyMode project, users can only see their own generated assets (except admins)

team_id: str

The team ID (example: “team_eyVcnFJcR92BxBkz7N6g5w”)

updated_at: str
users: List[ProjectUser]

The users of the project (get from the ProjectRoles table)

id: str

The user ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

created_at: str

The user creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

email: str

The user email (example: “herve@scenario.com”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

updated_at: str

The user last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

avatar: Optional[ProjectUserAvatar]

The user’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this member over the current billing period.

max_consumption: Optional[float]

The member’s effective consumption (CU) cap for the period (per-user override, else the team-wide default). Absent when the member is uncapped.

avatar: Optional[ProjectAvatar]

The project’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this project over the current billing period.

description: Optional[str]

High-level markdown description of the project Only returned on single project GET, not on list

description_date: Optional[str]

ISO string date when the description was last updated Only returned on single project GET, not on list

disable_ip_detection: Optional[bool]

When true, IP detection is switched off for this project even if the team has an active posture. Absent means the team posture applies. The posture itself (disabled / active-fail-open / active-fail-closed) is a team-level setting, see the team’s ipDetectionEnforcement.

max_consumption: Optional[float]

The project’s consumption (CU) cap for the period. Absent when uncapped.

quality_gate_auto_detect: Optional[bool]

Whether Quality Gate auto-detection runs on generation for this project.

settings: Optional[ProjectSettings]

Project settings. Returned on GET and PUT /projects/{projectId}, absent from the projects list.

homepage: Optional[Dict[str, object]]

Published homepage layout.

class ProjectUpdateResponse: …
project: Project
id: str

The project ID (example: “project_eyVcnFJcR92BxBkz7N6g5w”)

created_at: str
keys: List[ProjectKey]

The keys of the project (get from the ProjectRoles table)

id: str

The key’s member id (its API user id, apiu_...), taken by the member and usage routes (example: “apiu_eyVcnFJcR92BxBkz7N6g5w”)

api_key_id: str

The API key id (api_...), taken by the api-keys routes (example: “api_eyVcnFJcR92BxBkz7N6g5w”)

api_key_status: Literal["active", "inactive"]

The status of the API key

One of the following:
"active"
"inactive"
created_at: str

The API key creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

name: str

The API key name (example: “eurv-scenario”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

scope: Literal["project", "team"]

The scope of the API key: ‘project’ for project-scoped keys, ‘team’ for team-scoped keys

One of the following:
"project"
"team"
updated_at: str

The API key last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

author_id: Optional[str]

The member who created the key: a human, or the member id (apiu_...) of the team API key that created it.

consumption: Optional[float]

Consumption (CU) used by this key over the current billing period.

last_used_at: Optional[str]

The date the API key was last used to authenticate a request, as an ISO string (example: “2023-02-03T11:19:41.579Z”). Absent if the key has never been used.

max_consumption: Optional[float]

The key’s effective consumption (CU) cap for the period (per-key override, else the team-wide default). Absent when the key is uncapped.

owner_id: Optional[str]

For a PROJECT key: the project it was created on (the team id on some legacy keys). Absent for team keys.

projects: Optional[List[ProjectKeyProject]]

For a PROJECT key: the projects it has access to and its role on each. Empty when the key is currently not a member of any (live) project. Absent for team keys.

project_id: str

The project the key has a role on

role: str

The key’s role on this project: a built-in role (admin/editor/reader) or a custom ;-separated scope list (example: "asset.read;model.read").

name: str

The project name (example: “Default Project”)

privacy_mode: bool

Whether the project is privacyMode In a privacyMode project, users can only see their own generated assets (except admins)

team_id: str

The team ID (example: “team_eyVcnFJcR92BxBkz7N6g5w”)

updated_at: str
users: List[ProjectUser]

The users of the project (get from the ProjectRoles table)

id: str

The user ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

created_at: str

The user creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

email: str

The user email (example: “herve@scenario.com”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

updated_at: str

The user last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

avatar: Optional[ProjectUserAvatar]

The user’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this member over the current billing period.

max_consumption: Optional[float]

The member’s effective consumption (CU) cap for the period (per-user override, else the team-wide default). Absent when the member is uncapped.

avatar: Optional[ProjectAvatar]

The project’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this project over the current billing period.

description: Optional[str]

High-level markdown description of the project Only returned on single project GET, not on list

description_date: Optional[str]

ISO string date when the description was last updated Only returned on single project GET, not on list

disable_ip_detection: Optional[bool]

When true, IP detection is switched off for this project even if the team has an active posture. Absent means the team posture applies. The posture itself (disabled / active-fail-open / active-fail-closed) is a team-level setting, see the team’s ipDetectionEnforcement.

max_consumption: Optional[float]

The project’s consumption (CU) cap for the period. Absent when uncapped.

quality_gate_auto_detect: Optional[bool]

Whether Quality Gate auto-detection runs on generation for this project.

settings: Optional[ProjectSettings]

Project settings. Returned on GET and PUT /projects/{projectId}, absent from the projects list.

homepage: Optional[Dict[str, object]]

Published homepage layout.

ProjectsAPI Keys

Create
projects.api_keys.create(strproject_id, APIKeyCreateParams**kwargs) -> APIKeyCreateResponse
POST/projects/{projectId}/api-keys
Delete
projects.api_keys.delete(strkey_id, APIKeyDeleteParams**kwargs) -> object
DELETE/projects/{projectId}/api-keys/{keyId}
ModelsExpand Collapse
class APIKeyCreateResponse: …
id: str
author_id: str
created_at: str
owner_type: Literal["project", "team"]
One of the following:
"project"
"team"
secret: str
user_id: str

The key’s member id (apiu_...), taken by the member routes; the api-keys routes take id.

owner_id: Optional[str]
team_id: Optional[str]

ProjectsBrief

Delete
projects.brief.delete(strproject_id) -> BriefDeleteResponse
DELETE/projects/{projectId}/brief
Retrieve
projects.brief.retrieve(strproject_id) -> BriefRetrieveResponse
GET/projects/{projectId}/brief
Update
projects.brief.update(strproject_id, BriefUpdateParams**kwargs) -> BriefUpdateResponse
PUT/projects/{projectId}/brief
ModelsExpand Collapse
class BriefDeleteResponse: …
deleted: bool
class BriefRetrieveResponse: …
brief: Brief

A brand-style / project-rules / campaign-context brief stored at one scope.

id: str

Stable identifier derived from level + scopeId

body: str

Free-text brief: brand style, rules, campaign context

created_at: str

ISO-8601 creation timestamp

created_by: str

User id that last wrote the brief

enabled: bool

Whether the brief is applied during verification

level: Literal["project", "team"]

Scope this brief applies to: team or project

One of the following:
"project"
"team"
reference_asset_ids: List[str]

Reference assets the verifier compares the image against

scope_id: str

The id of the team or project that owns this brief

updated_at: str

ISO-8601 last-update timestamp

sensitivity: Optional[Literal["high", "low", "medium"]]

Threshold strictness applied when verifying against this scope

One of the following:
"high"
"low"
"medium"
class BriefUpdateResponse: …
brief: Brief

A brand-style / project-rules / campaign-context brief stored at one scope.

id: str

Stable identifier derived from level + scopeId

body: str

Free-text brief: brand style, rules, campaign context

created_at: str

ISO-8601 creation timestamp

created_by: str

User id that last wrote the brief

enabled: bool

Whether the brief is applied during verification

level: Literal["project", "team"]

Scope this brief applies to: team or project

One of the following:
"project"
"team"
reference_asset_ids: List[str]

Reference assets the verifier compares the image against

scope_id: str

The id of the team or project that owns this brief

updated_at: str

ISO-8601 last-update timestamp

sensitivity: Optional[Literal["high", "low", "medium"]]

Threshold strictness applied when verifying against this scope

One of the following:
"high"
"low"
"medium"

ProjectsInstructions

Retrieve
projects.instructions.retrieve(strproject_id) -> InstructionRetrieveResponse
GET/projects/{projectId}/instructions
Update
projects.instructions.update(strproject_id, InstructionUpdateParams**kwargs) -> InstructionUpdateResponse
PUT/projects/{projectId}/instructions
ModelsExpand Collapse
class InstructionRetrieveResponse: …
memory: Memory

Public JSON shape returned by GET endpoints

id: str

The memory ID — deterministic from scope + parent IDs (example: “mem_team_team_abc”)

content: str

Markdown content of the memory

created_at: str

ISO 8601 timestamp when the memory was first written

size_bytes: float

UTF-8 byte length of the content — used for quota enforcement

updated_at: str

ISO 8601 timestamp when the memory was last updated

updated_by: str

The userId of the last writer — useful for audit/UI

class InstructionUpdateResponse: …
memory: Optional[Memory]

Public JSON shape returned by GET endpoints

id: str

The memory ID — deterministic from scope + parent IDs (example: “mem_team_team_abc”)

content: str

Markdown content of the memory

created_at: str

ISO 8601 timestamp when the memory was first written

size_bytes: float

UTF-8 byte length of the content — used for quota enforcement

updated_at: str

ISO 8601 timestamp when the memory was last updated

updated_by: str

The userId of the last writer — useful for audit/UI

ProjectsMembers

Create
projects.members.create(strproject_id, MemberCreateParams**kwargs) -> MemberCreateResponse
POST/projects/{projectId}/members
Delete
projects.members.delete(strmember_id, MemberDeleteParams**kwargs) -> MemberDeleteResponse
DELETE/projects/{projectId}/members/{memberId}
Update
projects.members.update(strmember_id, MemberUpdateParams**kwargs) -> MemberUpdateResponse
PUT/projects/{projectId}/members/{memberId}
ModelsExpand Collapse
class MemberCreateResponse: …
project: Project
id: str

The project ID (example: “project_eyVcnFJcR92BxBkz7N6g5w”)

created_at: str
keys: List[ProjectKey]

The keys of the project (get from the ProjectRoles table)

id: str

The key’s member id (its API user id, apiu_...), taken by the member and usage routes (example: “apiu_eyVcnFJcR92BxBkz7N6g5w”)

api_key_id: str

The API key id (api_...), taken by the api-keys routes (example: “api_eyVcnFJcR92BxBkz7N6g5w”)

api_key_status: Literal["active", "inactive"]

The status of the API key

One of the following:
"active"
"inactive"
created_at: str

The API key creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

name: str

The API key name (example: “eurv-scenario”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

scope: Literal["project", "team"]

The scope of the API key: ‘project’ for project-scoped keys, ‘team’ for team-scoped keys

One of the following:
"project"
"team"
updated_at: str

The API key last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

author_id: Optional[str]

The member who created the key: a human, or the member id (apiu_...) of the team API key that created it.

consumption: Optional[float]

Consumption (CU) used by this key over the current billing period.

last_used_at: Optional[str]

The date the API key was last used to authenticate a request, as an ISO string (example: “2023-02-03T11:19:41.579Z”). Absent if the key has never been used.

max_consumption: Optional[float]

The key’s effective consumption (CU) cap for the period (per-key override, else the team-wide default). Absent when the key is uncapped.

owner_id: Optional[str]

For a PROJECT key: the project it was created on (the team id on some legacy keys). Absent for team keys.

projects: Optional[List[ProjectKeyProject]]

For a PROJECT key: the projects it has access to and its role on each. Empty when the key is currently not a member of any (live) project. Absent for team keys.

project_id: str

The project the key has a role on

role: str

The key’s role on this project: a built-in role (admin/editor/reader) or a custom ;-separated scope list (example: "asset.read;model.read").

name: str

The project name (example: “Default Project”)

privacy_mode: bool

Whether the project is privacyMode In a privacyMode project, users can only see their own generated assets (except admins)

team_id: str

The team ID (example: “team_eyVcnFJcR92BxBkz7N6g5w”)

updated_at: str
users: List[ProjectUser]

The users of the project (get from the ProjectRoles table)

id: str

The user ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

created_at: str

The user creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

email: str

The user email (example: “herve@scenario.com”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

updated_at: str

The user last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

avatar: Optional[ProjectUserAvatar]

The user’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this member over the current billing period.

max_consumption: Optional[float]

The member’s effective consumption (CU) cap for the period (per-user override, else the team-wide default). Absent when the member is uncapped.

avatar: Optional[ProjectAvatar]

The project’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this project over the current billing period.

description: Optional[str]

High-level markdown description of the project Only returned on single project GET, not on list

description_date: Optional[str]

ISO string date when the description was last updated Only returned on single project GET, not on list

disable_ip_detection: Optional[bool]

When true, IP detection is switched off for this project even if the team has an active posture. Absent means the team posture applies. The posture itself (disabled / active-fail-open / active-fail-closed) is a team-level setting, see the team’s ipDetectionEnforcement.

max_consumption: Optional[float]

The project’s consumption (CU) cap for the period. Absent when uncapped.

quality_gate_auto_detect: Optional[bool]

Whether Quality Gate auto-detection runs on generation for this project.

settings: Optional[ProjectSettings]

Project settings. Returned on GET and PUT /projects/{projectId}, absent from the projects list.

homepage: Optional[Dict[str, object]]

Published homepage layout.

class MemberDeleteResponse: …
project: Project
id: str

The project ID (example: “project_eyVcnFJcR92BxBkz7N6g5w”)

created_at: str
keys: List[ProjectKey]

The keys of the project (get from the ProjectRoles table)

id: str

The key’s member id (its API user id, apiu_...), taken by the member and usage routes (example: “apiu_eyVcnFJcR92BxBkz7N6g5w”)

api_key_id: str

The API key id (api_...), taken by the api-keys routes (example: “api_eyVcnFJcR92BxBkz7N6g5w”)

api_key_status: Literal["active", "inactive"]

The status of the API key

One of the following:
"active"
"inactive"
created_at: str

The API key creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

name: str

The API key name (example: “eurv-scenario”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

scope: Literal["project", "team"]

The scope of the API key: ‘project’ for project-scoped keys, ‘team’ for team-scoped keys

One of the following:
"project"
"team"
updated_at: str

The API key last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

author_id: Optional[str]

The member who created the key: a human, or the member id (apiu_...) of the team API key that created it.

consumption: Optional[float]

Consumption (CU) used by this key over the current billing period.

last_used_at: Optional[str]

The date the API key was last used to authenticate a request, as an ISO string (example: “2023-02-03T11:19:41.579Z”). Absent if the key has never been used.

max_consumption: Optional[float]

The key’s effective consumption (CU) cap for the period (per-key override, else the team-wide default). Absent when the key is uncapped.

owner_id: Optional[str]

For a PROJECT key: the project it was created on (the team id on some legacy keys). Absent for team keys.

projects: Optional[List[ProjectKeyProject]]

For a PROJECT key: the projects it has access to and its role on each. Empty when the key is currently not a member of any (live) project. Absent for team keys.

project_id: str

The project the key has a role on

role: str

The key’s role on this project: a built-in role (admin/editor/reader) or a custom ;-separated scope list (example: "asset.read;model.read").

name: str

The project name (example: “Default Project”)

privacy_mode: bool

Whether the project is privacyMode In a privacyMode project, users can only see their own generated assets (except admins)

team_id: str

The team ID (example: “team_eyVcnFJcR92BxBkz7N6g5w”)

updated_at: str
users: List[ProjectUser]

The users of the project (get from the ProjectRoles table)

id: str

The user ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

created_at: str

The user creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

email: str

The user email (example: “herve@scenario.com”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

updated_at: str

The user last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

avatar: Optional[ProjectUserAvatar]

The user’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this member over the current billing period.

max_consumption: Optional[float]

The member’s effective consumption (CU) cap for the period (per-user override, else the team-wide default). Absent when the member is uncapped.

avatar: Optional[ProjectAvatar]

The project’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this project over the current billing period.

description: Optional[str]

High-level markdown description of the project Only returned on single project GET, not on list

description_date: Optional[str]

ISO string date when the description was last updated Only returned on single project GET, not on list

disable_ip_detection: Optional[bool]

When true, IP detection is switched off for this project even if the team has an active posture. Absent means the team posture applies. The posture itself (disabled / active-fail-open / active-fail-closed) is a team-level setting, see the team’s ipDetectionEnforcement.

max_consumption: Optional[float]

The project’s consumption (CU) cap for the period. Absent when uncapped.

quality_gate_auto_detect: Optional[bool]

Whether Quality Gate auto-detection runs on generation for this project.

settings: Optional[ProjectSettings]

Project settings. Returned on GET and PUT /projects/{projectId}, absent from the projects list.

homepage: Optional[Dict[str, object]]

Published homepage layout.

class MemberUpdateResponse: …
project: Project
id: str

The project ID (example: “project_eyVcnFJcR92BxBkz7N6g5w”)

created_at: str
keys: List[ProjectKey]

The keys of the project (get from the ProjectRoles table)

id: str

The key’s member id (its API user id, apiu_...), taken by the member and usage routes (example: “apiu_eyVcnFJcR92BxBkz7N6g5w”)

api_key_id: str

The API key id (api_...), taken by the api-keys routes (example: “api_eyVcnFJcR92BxBkz7N6g5w”)

api_key_status: Literal["active", "inactive"]

The status of the API key

One of the following:
"active"
"inactive"
created_at: str

The API key creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

name: str

The API key name (example: “eurv-scenario”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

scope: Literal["project", "team"]

The scope of the API key: ‘project’ for project-scoped keys, ‘team’ for team-scoped keys

One of the following:
"project"
"team"
updated_at: str

The API key last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

author_id: Optional[str]

The member who created the key: a human, or the member id (apiu_...) of the team API key that created it.

consumption: Optional[float]

Consumption (CU) used by this key over the current billing period.

last_used_at: Optional[str]

The date the API key was last used to authenticate a request, as an ISO string (example: “2023-02-03T11:19:41.579Z”). Absent if the key has never been used.

max_consumption: Optional[float]

The key’s effective consumption (CU) cap for the period (per-key override, else the team-wide default). Absent when the key is uncapped.

owner_id: Optional[str]

For a PROJECT key: the project it was created on (the team id on some legacy keys). Absent for team keys.

projects: Optional[List[ProjectKeyProject]]

For a PROJECT key: the projects it has access to and its role on each. Empty when the key is currently not a member of any (live) project. Absent for team keys.

project_id: str

The project the key has a role on

role: str

The key’s role on this project: a built-in role (admin/editor/reader) or a custom ;-separated scope list (example: "asset.read;model.read").

name: str

The project name (example: “Default Project”)

privacy_mode: bool

Whether the project is privacyMode In a privacyMode project, users can only see their own generated assets (except admins)

team_id: str

The team ID (example: “team_eyVcnFJcR92BxBkz7N6g5w”)

updated_at: str
users: List[ProjectUser]

The users of the project (get from the ProjectRoles table)

id: str

The user ID (example: “eyVcnFJcR92BxBkz7N6g5w”)

created_at: str

The user creation date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

email: str

The user email (example: “herve@scenario.com”)

role: str

A project role value. Accepted values are:

  • a built-in role: "admin", "editor" or "reader" (see ProjectRoles);
  • a custom inline role: a ;-separated scope list, e.g. "assets.write;workflows.run".

Resolved to capabilities by ProjectRole.scopesFromRole().

updated_at: str

The user last update date as an ISO string (example: “2023-02-03T11:19:41.579Z”)

avatar: Optional[ProjectUserAvatar]

The user’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this member over the current billing period.

max_consumption: Optional[float]

The member’s effective consumption (CU) cap for the period (per-user override, else the team-wide default). Absent when the member is uncapped.

avatar: Optional[ProjectAvatar]

The project’s avatar

asset_id: Optional[str]

ID of the asset used as thumbnail if provided, otherwise undefined

url: Optional[str]

Signed URL of the assetId or free url if assetId is undefined

consumption: Optional[float]

Consumption (CU) used by this project over the current billing period.

description: Optional[str]

High-level markdown description of the project Only returned on single project GET, not on list

description_date: Optional[str]

ISO string date when the description was last updated Only returned on single project GET, not on list

disable_ip_detection: Optional[bool]

When true, IP detection is switched off for this project even if the team has an active posture. Absent means the team posture applies. The posture itself (disabled / active-fail-open / active-fail-closed) is a team-level setting, see the team’s ipDetectionEnforcement.

max_consumption: Optional[float]

The project’s consumption (CU) cap for the period. Absent when uncapped.

quality_gate_auto_detect: Optional[bool]

Whether Quality Gate auto-detection runs on generation for this project.

settings: Optional[ProjectSettings]

Project settings. Returned on GET and PUT /projects/{projectId}, absent from the projects list.

homepage: Optional[Dict[str, object]]

Published homepage layout.

ProjectsMemory

Retrieve
projects.memory.retrieve(strproject_id) -> MemoryRetrieveResponse
GET/projects/{projectId}/memory
Update
projects.memory.update(strproject_id, MemoryUpdateParams**kwargs) -> MemoryUpdateResponse
PUT/projects/{projectId}/memory
ModelsExpand Collapse
class MemoryRetrieveResponse: …
memory: Memory

Public JSON shape returned by GET endpoints

id: str

The memory ID — deterministic from scope + parent IDs (example: “mem_team_team_abc”)

content: str

Markdown content of the memory

created_at: str

ISO 8601 timestamp when the memory was first written

size_bytes: float

UTF-8 byte length of the content — used for quota enforcement

updated_at: str

ISO 8601 timestamp when the memory was last updated

updated_by: str

The userId of the last writer — useful for audit/UI

class MemoryUpdateResponse: …
memory: Optional[Memory]

Public JSON shape returned by GET endpoints

id: str

The memory ID — deterministic from scope + parent IDs (example: “mem_team_team_abc”)

content: str

Markdown content of the memory

created_at: str

ISO 8601 timestamp when the memory was first written

size_bytes: float

UTF-8 byte length of the content — used for quota enforcement

updated_at: str

ISO 8601 timestamp when the memory was last updated

updated_by: str

The userId of the last writer — useful for audit/UI

ProjectsWatermark

Delete
projects.watermark.delete(strproject_id) -> WatermarkDeleteResponse
DELETE/projects/{projectId}/watermark
Delete Logo
projects.watermark.delete_logo(strproject_id) -> WatermarkDeleteLogoResponse
DELETE/projects/{projectId}/watermark/logo
Preview
projects.watermark.preview(strproject_id, WatermarkPreviewParams**kwargs) -> WatermarkPreviewResponse
POST/projects/{projectId}/watermark/preview
Retrieve
projects.watermark.retrieve(strproject_id) -> WatermarkRetrieveResponse
GET/projects/{projectId}/watermark
Update
projects.watermark.update(strproject_id, WatermarkUpdateParams**kwargs) -> WatermarkUpdateResponse
PUT/projects/{projectId}/watermark
Update Logo
projects.watermark.update_logo(strproject_id, WatermarkUpdateLogoParams**kwargs) -> WatermarkUpdateLogoResponse
PUT/projects/{projectId}/watermark/logo
ModelsExpand Collapse
class WatermarkDeleteResponse: …
deleted: bool
class WatermarkDeleteLogoResponse: …
watermark: Watermark

Forced-watermark configuration stored at one scope.

id: str

Stable identifier derived from level + scopeId

created_at: str

ISO-8601 creation timestamp

created_by: str

User id that last wrote the configuration

enabled: bool

Whether the watermark is enforced on assets generated in this scope. A disabled project configuration falls back to its team’s.

level: Literal["project", "team"]

Scope this configuration applies to: team or project

One of the following:
"project"
"team"
opacity: float

Mark opacity, 0.05 (barely visible) to 1 (opaque)

placement: Literal["bottom-left", "bottom-right", "center", 3 more]

Where the mark sits on the image

One of the following:
"bottom-left"
"bottom-right"
"center"
"tiled"
"top-left"
"top-right"
rotation: float

Mark rotation in degrees, -90 to 90. 0 is horizontal.

scale: float

Mark width as a fraction of the image width

scope_id: str

The id of the team or project that owns this configuration

spacing: float

Gap between repetitions, as a fraction of the mark’s own size. Tiled placement only; 0 repeats the mark edge to edge.

updated_at: str

ISO-8601 last-update timestamp

version: float

Bumped on every write.

deleted_at: Optional[str]

Set when the configuration has been deleted.

logo_is_opaque: Optional[bool]

Whether the stored logo has no transparency at all.

Recorded at upload so the UI can warn without decoding the image again: an opaque logo draws its whole rectangle, which a rotated tiled mark turns into a very visible diamond.

logo_key: Optional[str]

Where the uploaded logo lives, when one is set.

text: Optional[str]

Text rendered as the mark, when no logo is set

class WatermarkPreviewResponse: …

Response of the watermark preview routes.

image: str

The sample image with the mark drawn on it, base64-encoded.

class WatermarkRetrieveResponse: …
watermark: Watermark

Forced-watermark configuration stored at one scope.

id: str

Stable identifier derived from level + scopeId

created_at: str

ISO-8601 creation timestamp

created_by: str

User id that last wrote the configuration

enabled: bool

Whether the watermark is enforced on assets generated in this scope. A disabled project configuration falls back to its team’s.

level: Literal["project", "team"]

Scope this configuration applies to: team or project

One of the following:
"project"
"team"
opacity: float

Mark opacity, 0.05 (barely visible) to 1 (opaque)

placement: Literal["bottom-left", "bottom-right", "center", 3 more]

Where the mark sits on the image

One of the following:
"bottom-left"
"bottom-right"
"center"
"tiled"
"top-left"
"top-right"
rotation: float

Mark rotation in degrees, -90 to 90. 0 is horizontal.

scale: float

Mark width as a fraction of the image width

scope_id: str

The id of the team or project that owns this configuration

spacing: float

Gap between repetitions, as a fraction of the mark’s own size. Tiled placement only; 0 repeats the mark edge to edge.

updated_at: str

ISO-8601 last-update timestamp

version: float

Bumped on every write.

deleted_at: Optional[str]

Set when the configuration has been deleted.

logo_is_opaque: Optional[bool]

Whether the stored logo has no transparency at all.

Recorded at upload so the UI can warn without decoding the image again: an opaque logo draws its whole rectangle, which a rotated tiled mark turns into a very visible diamond.

logo_key: Optional[str]

Where the uploaded logo lives, when one is set.

text: Optional[str]

Text rendered as the mark, when no logo is set

class WatermarkUpdateResponse: …
watermark: Watermark

Forced-watermark configuration stored at one scope.

id: str

Stable identifier derived from level + scopeId

created_at: str

ISO-8601 creation timestamp

created_by: str

User id that last wrote the configuration

enabled: bool

Whether the watermark is enforced on assets generated in this scope. A disabled project configuration falls back to its team’s.

level: Literal["project", "team"]

Scope this configuration applies to: team or project

One of the following:
"project"
"team"
opacity: float

Mark opacity, 0.05 (barely visible) to 1 (opaque)

placement: Literal["bottom-left", "bottom-right", "center", 3 more]

Where the mark sits on the image

One of the following:
"bottom-left"
"bottom-right"
"center"
"tiled"
"top-left"
"top-right"
rotation: float

Mark rotation in degrees, -90 to 90. 0 is horizontal.

scale: float

Mark width as a fraction of the image width

scope_id: str

The id of the team or project that owns this configuration

spacing: float

Gap between repetitions, as a fraction of the mark’s own size. Tiled placement only; 0 repeats the mark edge to edge.

updated_at: str

ISO-8601 last-update timestamp

version: float

Bumped on every write.

deleted_at: Optional[str]

Set when the configuration has been deleted.

logo_is_opaque: Optional[bool]

Whether the stored logo has no transparency at all.

Recorded at upload so the UI can warn without decoding the image again: an opaque logo draws its whole rectangle, which a rotated tiled mark turns into a very visible diamond.

logo_key: Optional[str]

Where the uploaded logo lives, when one is set.

text: Optional[str]

Text rendered as the mark, when no logo is set

class WatermarkUpdateLogoResponse: …
watermark: Watermark

Forced-watermark configuration stored at one scope.

id: str

Stable identifier derived from level + scopeId

created_at: str

ISO-8601 creation timestamp

created_by: str

User id that last wrote the configuration

enabled: bool

Whether the watermark is enforced on assets generated in this scope. A disabled project configuration falls back to its team’s.

level: Literal["project", "team"]

Scope this configuration applies to: team or project

One of the following:
"project"
"team"
opacity: float

Mark opacity, 0.05 (barely visible) to 1 (opaque)

placement: Literal["bottom-left", "bottom-right", "center", 3 more]

Where the mark sits on the image

One of the following:
"bottom-left"
"bottom-right"
"center"
"tiled"
"top-left"
"top-right"
rotation: float

Mark rotation in degrees, -90 to 90. 0 is horizontal.

scale: float

Mark width as a fraction of the image width

scope_id: str

The id of the team or project that owns this configuration

spacing: float

Gap between repetitions, as a fraction of the mark’s own size. Tiled placement only; 0 repeats the mark edge to edge.

updated_at: str

ISO-8601 last-update timestamp

version: float

Bumped on every write.

deleted_at: Optional[str]

Set when the configuration has been deleted.

logo_is_opaque: Optional[bool]

Whether the stored logo has no transparency at all.

Recorded at upload so the UI can warn without decoding the image again: an opaque logo draws its whole rectangle, which a rotated tiled mark turns into a very visible diamond.

logo_key: Optional[str]

Where the uploaded logo lives, when one is set.

text: Optional[str]

Text rendered as the mark, when no logo is set

ProjectsWebhook Endpoints

Create
projects.webhook_endpoints.create(strproject_id, WebhookEndpointCreateParams**kwargs) -> WebhookEndpointCreateResponse
POST/projects/{projectId}/webhook-endpoints
Delete
projects.webhook_endpoints.delete(strwebhook_endpoint_id, WebhookEndpointDeleteParams**kwargs) -> object
DELETE/projects/{projectId}/webhook-endpoints/{webhookEndpointId}
List
projects.webhook_endpoints.list(strproject_id) -> WebhookEndpointListResponse
GET/projects/{projectId}/webhook-endpoints
Update
projects.webhook_endpoints.update(strwebhook_endpoint_id, WebhookEndpointUpdateParams**kwargs) -> WebhookEndpointUpdateResponse
PUT/projects/{projectId}/webhook-endpoints/{webhookEndpointId}
ModelsExpand Collapse
class WebhookEndpointCreateResponse: …
webhook_endpoint: WebhookEndpoint

The creation response, and the only one that carries the secret: it is generated once and never returned again, so a client that loses it has to recreate the endpoint.

id: str

The ID of the webhook endpoint

created_at: str

The date and time the webhook endpoint was created

enabled: bool

Whether the webhook is enabled

enabled_events: List[Literal["*", "asset.download.completed", "asset.download.created", 16 more]]

The events that trigger the webhook. [’*’] indicates that all events are enabled

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
nb_failed_calls: float

The number of calls to the webhook endpoint that have failed

nb_total_calls: float

The number of calls to the webhook endpoint

owner_id: str

The ID of the owner of the webhook endpoint: a project id for job lifecycle events, a team id for alert events

owner_type: Literal["project", "team"]

Whether the owner is a project or a team. Required to tell them apart: a project created before the team/project split shares its team’s id

One of the following:
"project"
"team"
secret: str

The endpoint’s secret, used to generate webhook signatures

updated_at: str

The date and time the webhook endpoint was updated

url: str

The URL of the webhook endpoint

description: Optional[str]

A description of the webhook endpoint

class WebhookEndpointListResponse: …
webhook_endpoints: List[WebhookEndpoint]

A list of the project webhooks

id: str

The ID of the webhook endpoint

created_at: str

The date and time the webhook endpoint was created

enabled: bool

Whether the webhook is enabled

enabled_events: List[Literal["*", "asset.download.completed", "asset.download.created", 16 more]]

The events that trigger the webhook. [’*’] indicates that all events are enabled

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
nb_failed_calls: float

The number of calls to the webhook endpoint that have failed

nb_total_calls: float

The number of calls to the webhook endpoint

owner_id: str

The ID of the owner of the webhook endpoint: a project id for job lifecycle events, a team id for alert events

owner_type: Literal["project", "team"]

Whether the owner is a project or a team. Required to tell them apart: a project created before the team/project split shares its team’s id

One of the following:
"project"
"team"
updated_at: str

The date and time the webhook endpoint was updated

url: str

The URL of the webhook endpoint

description: Optional[str]

A description of the webhook endpoint

class WebhookEndpointUpdateResponse: …
webhook_endpoint: WebhookEndpoint
id: str

The ID of the webhook endpoint

created_at: str

The date and time the webhook endpoint was created

enabled: bool

Whether the webhook is enabled

enabled_events: List[Literal["*", "asset.download.completed", "asset.download.created", 16 more]]

The events that trigger the webhook. [’*’] indicates that all events are enabled

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
nb_failed_calls: float

The number of calls to the webhook endpoint that have failed

nb_total_calls: float

The number of calls to the webhook endpoint

owner_id: str

The ID of the owner of the webhook endpoint: a project id for job lifecycle events, a team id for alert events

owner_type: Literal["project", "team"]

Whether the owner is a project or a team. Required to tell them apart: a project created before the team/project split shares its team’s id

One of the following:
"project"
"team"
updated_at: str

The date and time the webhook endpoint was updated

url: str

The URL of the webhook endpoint

description: Optional[str]

A description of the webhook endpoint

ProjectsWebhook EndpointsEvents

List
projects.webhook_endpoints.events.list(strwebhook_endpoint_id, EventListParams**kwargs) -> EventListResponse
GET/projects/{projectId}/webhook-endpoints/{webhookEndpointId}/events
Retrieve
projects.webhook_endpoints.events.retrieve(strevent_id, EventRetrieveParams**kwargs) -> EventRetrieveResponse
GET/projects/{projectId}/webhook-endpoints/{webhookEndpointId}/events/{eventId}
ModelsExpand Collapse
class EventListResponse: …
items: List[Item]

A list of the project webhook events

id: str
endpoint_id: str
status: Literal["created", "failed", "retrying", "success"]
One of the following:
"created"
"failed"
"retrying"
"success"
type: Literal["*", "asset.download.completed", "asset.download.created", 16 more]

Every event a webhook endpoint can subscribe to: a project endpoint takes the job lifecycle events, a team endpoint takes the alert events.

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
updated_at: str
next_pagination_token: Optional[str]

A token to query the next page of events

class EventRetrieveResponse: …
webhook_event: WebhookEvent
id: str
attempts: List[WebhookEventAttempt]
response_status_code: float
sent_at: str
created_at: str
endpoint_id: str
payload: object
sent_at: str
status: Literal["created", "failed", "retrying", "success"]
One of the following:
"created"
"failed"
"retrying"
"success"
type: Literal["*", "asset.download.completed", "asset.download.created", 16 more]

Every event a webhook endpoint can subscribe to: a project endpoint takes the job lifecycle events, a team endpoint takes the alert events.

One of the following:
"*"
"asset.download.completed"
"asset.download.created"
"asset.download.failed"
"generation.completed"
"generation.created"
"generation.failed"
"inference.cancelled"
"inference.completed"
"inference.created"
"inference.failed"
"model.download.completed"
"model.download.created"
"model.download.failed"
"model.training.cancelled"
"model.training.completed"
"model.training.failed"
"model.training.started"
"team.credit.threshold.crossed"
updated_at: str