Skip to content

Projects

albert.resources.projects

ProjectClass

Bases: str, Enum

The access-control class of a project, governing who can see it.

  • PRIVATE: visible only to the project's ACL members (the default).
  • SHARED: visible more broadly across the organization.
  • CONFIDENTIAL: restricted, most tightly controlled access.

Attributes:

Name Type Description
SHARED
CONFIDENTIAL
PRIVATE

SHARED

SHARED = 'shared'

CONFIDENTIAL

CONFIDENTIAL = 'confidential'

PRIVATE

PRIVATE = 'private'

State

Bases: str, Enum

The lifecycle state of a project.

The set of allowed states is customizable per tenant via the entity-status API; these are the platform defaults. Unknown tenant-specific values are tolerated as plain strings on Project.state.

Attributes:

Name Type Description
NOT_STARTED
ACTIVE
CLOSED_SUCCESS
CLOSED_ARCHIVED
JUST_STARTED
IN_PROGRESS

NOT_STARTED

NOT_STARTED = 'Not Started'

ACTIVE

ACTIVE = 'Active'

CLOSED_SUCCESS

CLOSED_SUCCESS = 'Closed - Success'

CLOSED_ARCHIVED

CLOSED_ARCHIVED = 'Closed - Archived'

JUST_STARTED

JUST_STARTED = 'Just Started'

IN_PROGRESS

IN_PROGRESS = 'In Progress'

TaskConfig

Bases: BaseAlbertModel

Default task settings applied when tasks are created within a project.

Show JSON schema:
{
  "description": "Default task settings applied when tasks are created within a project.",
  "properties": {
    "datatemplateId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ID of the data template tasks default to.",
      "title": "Datatemplateid"
    },
    "workflowId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ID of the workflow tasks default to.",
      "title": "Workflowid"
    },
    "defaultTaskName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Default name applied to new tasks.",
      "title": "Defaulttaskname"
    },
    "target": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Default target for the configured tasks.",
      "title": "Target"
    },
    "hidden": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": false,
      "description": "Whether this configuration is hidden in the UI.",
      "title": "Hidden"
    }
  },
  "title": "TaskConfig",
  "type": "object"
}

Fields:

datatemplateId

datatemplateId: str | None = None

ID of the data template tasks default to.

workflowId

workflowId: str | None = None

ID of the workflow tasks default to.

defaultTaskName

defaultTaskName: str | None = None

Default name applied to new tasks.

target

target: str | None = None

Default target for the configured tasks.

hidden

hidden: bool | None = False

Whether this configuration is hidden in the UI.

GridDefault

Bases: str, Enum

The default grid view shown for a project.

  • PD: the Property Data grid.
  • WKS: the Worksheet grid.

Attributes:

Name Type Description
PD
WKS

PD

PD = 'PD'

WKS

WKS = 'WKS'

Project

Project(**data)

Bases: BaseSessionResource

A project in Albert: the top-level container for a piece of R&D work.

A project groups the formulations designed for the work, its Worksheet (1:1 with the project), the Tasks run against it, and the inventory it references. Create and manage projects through the ProjectCollection (client.projects).

Only description is required to build one; it doubles as the project's display name. The id and state are assigned by Albert and are read only from the client's perspective.

Example

from albert import Albert
from albert.resources.projects import Project, ProjectClass
client = Albert()
project = client.projects.create(
    project=Project(
        description="Weatherproof Coatings 2026",
        project_class=ProjectClass.SHARED,
    )
)
project.id
# 'PRO123'
Show JSON schema:
{
  "$defs": {
    "ACL": {
      "description": "A single access rule for a user.",
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        }
      },
      "required": [
        "id"
      ],
      "title": "ACL",
      "type": "object"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "EntityLinkWithName": {
      "description": "EntityLink that includes the name field in serialization.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLinkWithName",
      "type": "object"
    },
    "GridDefault": {
      "description": "The default grid view shown for a project.\n\n- ``PD``: the Property Data grid.\n- ``WKS``: the Worksheet grid.",
      "enum": [
        "PD",
        "WKS"
      ],
      "title": "GridDefault",
      "type": "string"
    },
    "Location": {
      "description": "A physical lab or site location in Albert.\n\nLocations are referenced by Tasks and Inventory Items to record where an\nactivity is performed or where a material lives, and each Location can hold\none or more Storage Locations\n([`StorageLocation`][albert.resources.storage_locations.StorageLocation]). Managed\nthrough [`LocationCollection`][albert.collections.locations.LocationCollection].\n\n!!! example\n    ```python\n    from albert.resources.locations import Location\n    location = Location(\n        name=\"Boston Lab\",\n        latitude=42.3601,\n        longitude=-71.0589,\n        address=\"1 Main St\",\n        country=\"US\",\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The human-readable name of the location.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the location. Assigned by Albert and populated once the location has been created or retrieved.",
          "title": "Albertid"
        },
        "latitude": {
          "description": "The latitude of the location, in decimal degrees.",
          "title": "Latitude",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the location, in decimal degrees.",
          "title": "Longitude",
          "type": "number"
        },
        "address": {
          "description": "The street address of the location.",
          "title": "Address",
          "type": "string"
        },
        "country": {
          "anyOf": [
            {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The two-letter country code of the location (for example, ``\"US\"``).",
          "title": "Country"
        }
      },
      "required": [
        "name",
        "latitude",
        "longitude",
        "address"
      ],
      "title": "Location",
      "type": "object"
    },
    "ProjectClass": {
      "description": "The access-control class of a project, governing who can see it.\n\n- ``PRIVATE``: visible only to the project's ACL members (the default).\n- ``SHARED``: visible more broadly across the organization.\n- ``CONFIDENTIAL``: restricted, most tightly controlled access.",
      "enum": [
        "shared",
        "confidential",
        "private"
      ],
      "title": "ProjectClass",
      "type": "string"
    },
    "State": {
      "description": "The lifecycle state of a project.\n\nThe set of allowed states is customizable per tenant via the entity-status\nAPI; these are the platform defaults. Unknown tenant-specific values are\ntolerated as plain strings on [`Project.state`][albert.resources.projects.Project.state].",
      "enum": [
        "Not Started",
        "Active",
        "Closed - Success",
        "Closed - Archived",
        "Just Started",
        "In Progress"
      ],
      "title": "State",
      "type": "string"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "TaskConfig": {
      "description": "Default task settings applied when tasks are created within a project.",
      "properties": {
        "datatemplateId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the data template tasks default to.",
          "title": "Datatemplateid"
        },
        "workflowId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the workflow tasks default to.",
          "title": "Workflowid"
        },
        "defaultTaskName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default name applied to new tasks.",
          "title": "Defaulttaskname"
        },
        "target": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default target for the configured tasks.",
          "title": "Target"
        },
        "hidden": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether this configuration is hidden in the UI.",
          "title": "Hidden"
        }
      },
      "title": "TaskConfig",
      "type": "object"
    }
  },
  "description": "A project in Albert: the top-level container for a piece of R&D work.\n\nA project groups the formulations designed for the work, its Worksheet (1:1\nwith the project), the Tasks run against it, and the inventory it references.\nCreate and manage projects through the\n[`ProjectCollection`][albert.collections.projects.ProjectCollection] (``client.projects``).\n\nOnly ``description`` is required to build one; it doubles as the project's\ndisplay name. The ``id`` and ``state`` are assigned by Albert and are read\nonly from the client's perspective.\n\n!!! example\n    ```python\n    from albert import Albert\n    from albert.resources.projects import Project, ProjectClass\n    client = Albert()\n    project = client.projects.create(\n        project=Project(\n            description=\"Weatherproof Coatings 2026\",\n            project_class=ProjectClass.SHARED,\n        )\n    )\n    project.id\n    # 'PRO123'\n    ```",
  "properties": {
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Read-only status string returned by Albert.",
      "title": "Status"
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "description": {
      "description": "Human-readable project name/description (1-2000 characters). Also serves as the project's display name.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Description",
      "type": "string"
    },
    "Locations": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Location"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "maxItems": 20,
          "minItems": 1,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The locations the project is associated with. Optional.",
      "title": "Locations"
    },
    "class": {
      "anyOf": [
        {
          "$ref": "#/$defs/ProjectClass"
        },
        {
          "type": "null"
        }
      ],
      "default": "private",
      "description": "Access-control class (private, shared, or confidential). Defaults to private."
    },
    "prefix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional prefix used when naming entities within the project.",
      "title": "Prefix"
    },
    "appEngg": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Inventory Ids to be added as application engineering",
      "title": "Appengg"
    },
    "albertId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Albert Project ID (format ``PRO...``). Assigned by Albert and present once the project has been created or retrieved.",
      "title": "Albertid"
    },
    "ACL": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/ACL"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "Access-control entries controlling who can access the project. Optional.",
      "title": "Acl"
    },
    "old_api_params": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Read-only. Do not use.",
      "title": "Old Api Params"
    },
    "task_config": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/TaskConfig"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "Default task settings applied to tasks created within the project.",
      "title": "Task Config"
    },
    "grid": {
      "anyOf": [
        {
          "$ref": "#/$defs/GridDefault"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The default grid view (Property Data or Worksheet) shown for the project."
    },
    "Metadata": {
      "anyOf": [
        {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "$ref": "#/$defs/EntityLinkWithName"
              },
              {
                "$ref": "#/$defs/EntityLink"
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/EntityLinkWithName"
                    },
                    {
                      "$ref": "#/$defs/EntityLink"
                    }
                  ]
                },
                "type": "array"
              }
            ]
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.",
      "title": "Metadata"
    },
    "state": {
      "anyOf": [
        {
          "$ref": "#/$defs/State"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The project's lifecycle state. Read only on create; can be changed via [`update`][albert.collections.projects.ProjectCollection.update]. Tenant-customized states outside [`State`][albert.resources.projects.State] parse as plain strings.",
      "title": "State"
    }
  },
  "required": [
    "description"
  ],
  "title": "Project",
  "type": "object"
}

Fields:

Validators:

Source code in src/albert/core/shared/models/base.py
def __init__(self, **data):
    super().__init__(**data)
    self._session = data.get("session")

description

description: str

Human-readable project name/description (1-2000 characters). Also serves as the project's display name.

locations

locations: list[SerializeAsEntityLink[Location]] | None = (
    None
)

The locations the project is associated with. Optional.

project_class

project_class: ProjectClass | None = ProjectClass.PRIVATE

Access-control class (private, shared, or confidential). Defaults to private.

prefix

prefix: str | None = None

Optional prefix used when naming entities within the project.

application_engineering_inventory_ids

application_engineering_inventory_ids: list[str] | None = (
    None
)

Inventory Ids to be added as application engineering

id

id: ProjectId | None = None

The Albert Project ID (format PRO...). Assigned by Albert and present once the project has been created or retrieved.

acl

acl: list[ACL] | None

Access-control entries controlling who can access the project. Optional.

old_api_params

old_api_params: dict | None = None

Read-only. Do not use.

task_config

task_config: list[TaskConfig] | None

Default task settings applied to tasks created within the project.

grid

grid: GridDefault | None = None

The default grid view (Property Data or Worksheet) shown for the project.

metadata

metadata: dict[str, MetadataItem] | None = None

Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.

status

status: str | None = None

Read-only status string returned by Albert.

state

state: State | str | None = None

The project's lifecycle state. Read only on create; can be changed via update. Tenant-customized states outside State parse as plain strings.

smart

smart: SmartProject | None

Return the project-bound Smart Projects interface for this project.

Use this property for Smart Projects workflows: adding targets and building smart datasets scoped to the project. For standalone target or smart dataset creation, use TargetCollection or SmartDatasetCollection instead.

Returns:

Type Description
SmartProject or None

The [SmartProject][albert.resources.smart_projects.SmartProject] for this project, or None if no smart project record exists yet.

validate_status

validate_status(value)

Somehow, some statuses are capitalized in the API response. This ensures they are always lowercase.

Source code in src/albert/resources/projects.py
@field_validator("status", mode="before")
def validate_status(cls, value):
    """Somehow, some statuses are capitalized in the API response. This ensures they are always lowercase."""
    if isinstance(value, str):
        return value.lower()
    return value

ProjectSearchItem

Bases: BaseAlbertModel, HydrationMixin[Project]

A lightweight (partial) project returned by project search.

Returned by search, this carries only summary fields for fast listing. Use its hydration support (or fetch by id via get_by_id) to obtain the full Project.

Show JSON schema:
{
  "$defs": {
    "EntityLinkWithName": {
      "description": "EntityLink that includes the name field in serialization.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLinkWithName",
      "type": "object"
    }
  },
  "description": "A lightweight (partial) project returned by project search.\n\nReturned by [`search`][albert.collections.projects.ProjectCollection.search],\nthis carries only summary fields for fast listing. Use its hydration support\n(or fetch by ``id`` via\n[`get_by_id`][albert.collections.projects.ProjectCollection.get_by_id]) to obtain\nthe full [`Project`][albert.resources.projects.Project].",
  "properties": {
    "albertId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Albert Project ID (format ``PRO...``).",
      "title": "Albertid"
    },
    "description": {
      "description": "The project's name/description.",
      "maxLength": 2000,
      "minLength": 1,
      "title": "Description",
      "type": "string"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Read-only status string returned by Albert.",
      "title": "Status"
    },
    "application": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/EntityLinkWithName"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Application tags associated with the project.",
      "title": "Application"
    },
    "technology": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/EntityLinkWithName"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Technology tags associated with the project.",
      "title": "Technology"
    }
  },
  "required": [
    "description"
  ],
  "title": "ProjectSearchItem",
  "type": "object"
}

Fields:

id

id: ProjectId | None = None

The Albert Project ID (format PRO...).

description

description: str

The project's name/description.

status

status: str | None = None

Read-only status string returned by Albert.

application

application: list[EntityLinkWithName] | None = None

Application tags associated with the project.

technology

technology: list[EntityLinkWithName] | None = None

Technology tags associated with the project.

DocumentSearchItem

Bases: BaseAlbertModel

A document (attachment) search result linked to a project.

Returned by document_search. Each item describes an attachment's metadata rather than its file contents.

Show JSON schema:
{
  "description": "A document (attachment) search result linked to a project.\n\nReturned by\n[`document_search`][albert.collections.projects.ProjectCollection.document_search]. Each\nitem describes an attachment's metadata rather than its file contents.",
  "properties": {
    "albertId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Albert Attachment ID (format ``ATT...``).",
      "title": "Albertid"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The document's file name.",
      "title": "Name"
    },
    "mimeType": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The document's MIME type (e.g. ``application/pdf``).",
      "title": "Mimetype"
    },
    "fileSize": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The document's size in bytes.",
      "title": "Filesize"
    },
    "projectId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ID of the project the document is linked to.",
      "title": "Projectid"
    },
    "key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Storage key for the document.",
      "title": "Key"
    },
    "source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source system or origin of the document.",
      "title": "Source"
    },
    "createdBy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ID of the user who uploaded the document.",
      "title": "Createdby"
    },
    "createdByName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Name of the user who uploaded the document.",
      "title": "Createdbyname"
    },
    "createdAt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Timestamp when the document was created.",
      "title": "Createdat"
    }
  },
  "title": "DocumentSearchItem",
  "type": "object"
}

Fields:

id

id: AttachmentId | None = None

The Albert Attachment ID (format ATT...).

name

name: str | None = None

The document's file name.

mime_type

mime_type: str | None = None

The document's MIME type (e.g. application/pdf).

file_size

file_size: int | None = None

The document's size in bytes.

project_id

project_id: str | None = None

ID of the project the document is linked to.

key

key: str | None = None

Storage key for the document.

source

source: str | None = None

Source system or origin of the document.

created_by

created_by: str | None = None

ID of the user who uploaded the document.

created_by_name

created_by_name: str | None = None

Name of the user who uploaded the document.

created_at

created_at: str | None = None

Timestamp when the document was created.