# `api.notes.list` > `GET /note` — ACPortal **Python** ```python api.notes.list(*, category: list[str] | None = None, job_id: str | None = None, contact_id: int | None = None, company_id: str | None = None) -> list[GlobalNote] ``` **CLI** ```bash ab notes list [--category ...] [--job-id ...] [--contact-id ...] [--company-id ...] ``` List notes (``GET /note``). Swagger marks every filter optional, but the **live API requires at least one** of ``category``, ``job_id``, ``contact_id``, or ``company_id`` -- omitting them all returns HTTP 400. The SDK relays whatever the caller passes; it does not impose this rule. Args: category: One or more category UUIDs (repeated query param). job_id: Filter to notes attached to this job UUID. contact_id: Filter to notes attached to this contact ID. company_id: Filter to notes attached to this company UUID. ## Query parameters — `NotesListParams` | Field | Type | Required | Description | |---|---|---|---| | `category` | `Optional[list[str]]` | no | Filter by category UUIDs | | `jobId` | `Optional[str]` | no | Filter by job UUID | | `contactId` | `Optional[int]` | no | Filter by contact ID | | `companyId` | `Optional[str]` | no | Filter by company UUID | ## Response Returns a list of `List[GlobalNote]`. | Field | Type | Required | Description | |---|---|---|---| | `noteID` | `Optional[int]` | no | Note ID (int) | | `isImportant` | `Optional[bool]` | no | Important flag | | `comments` | `Optional[str]` | no | Note content | | `category` | `Optional[str]` | no | Category UUID | | `dueDate` | `Optional[datetime]` | no | Due date | | `jobId` | `Optional[str]` | no | Associated job UUID | | `crmContactId` | `Optional[int]` | no | CRM contact ID (int) | | `contactId` | `Optional[str]` | no | Contact UUID | | `companyId` | `Optional[str]` | no | Company UUID | | `userID` | `Optional[str]` | no | User UUID | | `importance` | `Optional[str]` | no | Importance label | | `author` | `Optional[str]` | no | Author display name | | `dueDates` | `Optional[str]` | no | Due-date label | | `categoryName` | `Optional[str]` | no | Category display name | | `createdDate` | `Optional[datetime]` | no | Created timestamp | | `createdBy` | `Optional[str]` | no | Creator user UUID | | `modifiedBy` | `Optional[str]` | no | Modifier user UUID | | `modifiyDate` | `Optional[datetime]` | no | Modified timestamp (server spelling: modifiyDate) | | `franchiseID` | `Optional[str]` | no | Franchise UUID | | `isCompleted` | `Optional[bool]` | no | Completion flag | | `isGlobal` | `Optional[bool]` | no | Global flag | | `isShared` | `Optional[bool]` | no | Shared flag | | `assignedContactNames` | `Optional[list[str]]` | no | Assigned contact display names | | `assignedUsers` | `Optional[list[SuggestedUser]]` | no | Assigned users (SuggestedContactEntity[]) | | `isJobLevel` | `Optional[bool]` | no | Job-scoped note flag | --- [← Back to api.notes](../notes.md)