API endpoint that allows AnnotationTypes to be viewed or edited.

» click to learn about Filtering, Ordering and more...

Accepted filters:

- id: ID (exact)
- created: Created (exact)
- modified: Modified (exact)
- name: Name starts with (istartswith)
- description: Description contains (icontains)
- query: Search filter on the name property (exact)
- owner: Owner Username (exact)
- owned_by: Filter on list of owned by group names [OR] (exact)
- public: Public (exact)
- type: Type (exact)
- label: Label (exact)
- created_by: Created by Username (exact)
- modified_by: Modified by Username (exact)
- model_name: [invalid name] (exact)
- model_type: [invalid name] (exact)

Advanced Filtering

You can also filter using a json object to process all search parameters. Currently this filter supports the syntax as produced/used by the http://summitroute.github.io/react-structured-filter/ search UI.

Example

?query_expression={"category":"name","operator":"contains","value":"Y00"},
       {"category":"amount","operator":">","value":"10"},
       {"category":"type__name","operator":"exact","value":"ANTIBODY"}
» more info about the query_expression param..

Preset mappings

- created_by: created_by__username
- modified_by: modified_by__username
- owner: owner__username
- owned_by: owned_by__name
- deleted: <function filter_deleted at 0x7f45063b6710>
- deleted_by: deleted_by__username
- notes: notes__content
- cv_category: cv_category__name
- field_meta: field_meta__name
- mandatory_owned_by: mandatory_owned_by__name
- user: user__username
- credential: credential__name
- workflowversion: workflowversion__name
- workflowrun: workflowrun__name
- dataset: dataset__name

Operators

- ==
- =
- >=
- >
- <=
- <
- contains
- icontains
- exact
- iexact
- startswith
- istartswith
- endswith
- iendswith

Permission filtering

Based on the current logged in user you can filter for objects that have a particular permission set:

- can_change: True/False, show objects that you can change
- can_delete: True/False, show objects that you can delete

# not applicable - will raise NotAcceptable:
- can_view: as this is always True, you can only view items you are allowed to see

Ordering

You can order on practically any field even spanning relations.

# reverse order on owner username
?ordering=-owner

# order on related field
?ordering=category__version
API endpoint that allows AnnotationTypes to be viewed or edited.

None

The default modelviewset used in this project


Add JSONPatch like functionality to bulk update items.


### Bulk Delete

This view also allows for one to bulk delete items. The url needs to be appended by ``/bulk_delete/`` and the ids
need to be given by multiple query_params:

```
{current_url}/bulk_delete/?id=<id_1>,id=<id_2>
```
GET /api/v2/annotationtypes/df2e0c4c-8ea0-4691-aedd-9cbbbc345be7/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "url": "https://labid-demo.embl.de/api/v2/annotationtypes/df2e0c4c-8ea0-4691-aedd-9cbbbc345be7/?format=api",
    "id": "df2e0c4c-8ea0-4691-aedd-9cbbbc345be7",
    "created_by": "admin",
    "modified_by": "admin",
    "created": {
        "name": "created",
        "value": "2025-12-16T09:11:47.731712+01:00",
        "category": "property"
    },
    "modified": {
        "name": "modified",
        "value": "2025-12-16T09:11:47.731787+01:00",
        "category": "property"
    },
    "name": "TreatmentConcentration",
    "choice_label": "TreatmentConcentration",
    "description": "Describes the concentration at which a sample has been treated with a compound indicated in the Treatment annotation. WHENEVER POSSIBLE USE THE SAME concentration UNIT FOR ALL SAMPLES OF THE SAME EXPERIMENT. Values should NOT contain greek letter i.e. please fully spell the concentration unit e.g. microliter.",
    "public": true,
    "permissions": {
        "public": true,
        "actions": {
            "view": {
                "users": [],
                "groups": []
            },
            "change": {
                "users": [],
                "groups": []
            },
            "delete": {
                "users": [],
                "groups": []
            }
        }
    },
    "unit_choices_api": null,
    "type": "TEXT",
    "label": "TreatmentConcentration",
    "help_text": "Describes the concentration at which a sample has been treated with a compound indicated in the Treatment annotation. WHENEVER POSSIBLE USE THE SAME concentration UNIT FOR ALL SAMPLES OF THE SAME EXPERIMENT. Values should NOT contain greek letter i.e. please fully spell the concentration unit e.g. microliter.",
    "default": "",
    "has_default": false,
    "multiple": false,
    "is_protocol_parameter": false,
    "autocomplete": "",
    "searchable": true,
    "readonly": false,
    "sortable": true,
    "cv_category": null,
    "mandatory": false,
    "validations": [],
    "visibility": "ALWAYS",
    "edit_visibility": "ALWAYS",
    "list_visibility": "OPTIONAL",
    "value_choices": null,
    "choices_value": "id",
    "choices_label": "name",
    "choices_api": null,
    "preferred_view_widget": "TEXT",
    "preferred_edit_widget": "TEXTINPUT",
    "preferred_list_widget": "TEXT",
    "field_meta": "ca1f6072-9c3a-4b1c-8e1c-14e53370e4f4",
    "owner": "admin",
    "owned_by": "SYSTEM_GROUP"
}