openapi: 3.0.3
info:
title: Baserow API spec Admin Database table timeline view API
version: 2.2.2
description: 'For more information about our REST API, please visit [this page](https://baserow.io/docs/apis%2Frest-api).
For more information about our deprecation policy, please visit [this page](https://baserow.io/docs/apis%2Fdeprecations).'
contact:
url: https://baserow.io/contact
license:
name: MIT
url: https://github.com/baserow/baserow/blob/develop/LICENSE
tags:
- name: Database table timeline view
paths:
/api/database/views/timeline/{slug}/public/rows/:
get:
operationId: public_list_database_table_timeline_view_rows
description: 'Lists the requested rows of the view''s table related to the provided `slug` if the timeline view is public.The response is paginated either by a limit/offset or page/size style. The style depends on the provided GET parameters. The properties of the returned rows depends on which fields the table has. For a complete overview of fields use the **list_database_table_fields** endpoint to list them all. In the example all field types are listed, but normally the number in field_{id} key is going to be the id of the field. The value is what the user has provided and the format of it depends on the fields type.
'
parameters:
- in: query
name: count
schema:
type: boolean
description: If provided only the count will be returned.
- in: query
name: exclude_fields
schema:
type: string
description: 'All the fields are included in the response by default. You can select a subset of fields by providing the exclude_fields query parameter. If you for example provide the following GET parameter `exclude_fields=field_1,field_2` then the fields with id `1` and id `2` are going to be excluded from the selection and response. '
- in: query
name: filter__{field}__{filter}
schema:
type: string
description: "The rows can optionally be filtered by the same view filters available for the views. Multiple filters can be provided if they follow the same format. The field and filter variable indicate how to filter and the value indicates where to filter on.\n\nFor example if you provide the following GET parameter `filter__field_1__equal=test` then only rows where the value of field_1 is equal to test are going to be returned.\n\nThe following filters are available: equal, not_equal, filename_contains, files_lower_than, has_file_type, contains, contains_not, contains_word, doesnt_contain_word, length_is_lower_than, higher_than, higher_than_or_equal, lower_than, lower_than_or_equal, is_even_and_whole, date_equal, date_before, date_before_or_equal, date_after_days_ago, date_after, date_after_or_equal, date_not_equal, date_equals_today, date_before_today, date_after_today, date_within_days, date_within_weeks, date_within_months, date_equals_days_ago, date_equals_months_ago, date_equals_years_ago, date_equals_week, date_equals_month, date_equals_day_of_month, date_equals_year, date_is, date_is_not, date_is_before, date_is_on_or_before, date_is_after, date_is_on_or_after, date_is_within, single_select_equal, single_select_not_equal, single_select_is_any_of, single_select_is_none_of, link_row_has, link_row_has_not, link_row_contains, link_row_not_contains, boolean, empty, not_empty, multiple_select_has, multiple_select_has_not, multiple_collaborators_has, multiple_collaborators_has_not, user_is, user_is_not, has_value_equal, has_not_value_equal, has_value_contains, has_not_value_contains, has_value_contains_word, has_not_value_contains_word, has_value_length_is_lower_than, has_all_values_equal, has_empty_value, has_not_empty_value, has_any_select_option_equal, has_none_select_option_equal, has_value_lower, has_value_lower_or_equal, has_value_higher, has_value_higher_or_equal, has_not_value_higher_or_equal, has_not_value_higher, has_not_value_lower_or_equal, has_not_value_lower, has_date_equal, has_not_date_equal, has_date_before, has_not_date_before, has_date_on_or_before, has_not_date_on_or_before, has_date_on_or_after, has_not_date_on_or_after, has_date_after, has_not_date_after, has_date_within, has_not_date_within.\n\n**Please note that if the `filters` parameter is provided, this parameter will be ignored.** \n\n"
- in: query
name: filter_type
schema:
type: string
description: '`AND`: Indicates that the rows must match all the provided filters.
`OR`: Indicates that the rows only have to match one of the filters.
This works only if two or more filters are provided.
**Please note that if the `filters` parameter is provided, this parameter will be ignored.**'
- in: query
name: filters
schema:
type: string
description: "A JSON serialized string containing the filter tree to apply to this view. The filter tree is a nested structure containing the filters that need to be applied. \n\nAn example of a valid filter tree is the following:`{\"filter_type\": \"AND\", \"filters\": [{\"field\": 1, \"type\": \"equal\", \"value\": \"test\"}]}`. The `field` value must be the ID of the field to filter on, or the name of the field if `user_field_names` is true.\n\nThe following filters are available: equal, not_equal, filename_contains, files_lower_than, has_file_type, contains, contains_not, contains_word, doesnt_contain_word, length_is_lower_than, higher_than, higher_than_or_equal, lower_than, lower_than_or_equal, is_even_and_whole, date_equal, date_before, date_before_or_equal, date_after_days_ago, date_after, date_after_or_equal, date_not_equal, date_equals_today, date_before_today, date_after_today, date_within_days, date_within_weeks, date_within_months, date_equals_days_ago, date_equals_months_ago, date_equals_years_ago, date_equals_week, date_equals_month, date_equals_day_of_month, date_equals_year, date_is, date_is_not, date_is_before, date_is_on_or_before, date_is_after, date_is_on_or_after, date_is_within, single_select_equal, single_select_not_equal, single_select_is_any_of, single_select_is_none_of, link_row_has, link_row_has_not, link_row_contains, link_row_not_contains, boolean, empty, not_empty, multiple_select_has, multiple_select_has_not, multiple_collaborators_has, multiple_collaborators_has_not, user_is, user_is_not, has_value_equal, has_not_value_equal, has_value_contains, has_not_value_contains, has_value_contains_word, has_not_value_contains_word, has_value_length_is_lower_than, has_all_values_equal, has_empty_value, has_not_empty_value, has_any_select_option_equal, has_none_select_option_equal, has_value_lower, has_value_lower_or_equal, has_value_higher, has_value_higher_or_equal, has_not_value_higher_or_equal, has_not_value_higher, has_not_value_lower_or_equal, has_not_value_lower, has_date_equal, has_not_date_equal, has_date_before, has_not_date_before, has_date_on_or_before, has_not_date_on_or_before, has_date_on_or_after, has_not_date_on_or_after, has_date_after, has_not_date_after, has_date_within, has_not_date_within.\n\n**Please note that if this parameter is provided, all other `filter__{field}__{filter}` will be ignored, as well as the `filter_type` parameter.**"
- in: query
name: include
schema:
type: string
description: A comma separated list allowing the values of `field_options` which will add the object/objects with the same name to the response if included. The `field_options` object contains user defined view settings for each field. For example the field's width is included in here.
- in: query
name: include_fields
schema:
type: string
description: All the fields are included in the response by default. You can select a subset of fields by providing the fields query parameter. If you for example provide the following GET parameter `include_fields=field_1,field_2` then only the fields with id `1` and id `2` are going to be selected and included in the response.
- in: query
name: limit
schema:
type: integer
description: Defines how many rows should be returned.
- in: query
name: limit_linked_items
schema:
type: integer
description: if provided, the maximum number of relationships per link row field in the response. If not provided, all the relationships will be returned.
- in: query
name: offset
schema:
type: integer
description: Can only be used in combination with the `limit` parameter and defines from which offset the rows should be returned.
- in: query
name: order_by
schema:
type: string
description: Optionally the rows can be ordered by provided field ids separated by comma. By default a field is ordered in ascending (A-Z) order, but by prepending the field with a '-' it can be ordered descending (Z-A).
- in: query
name: page
schema:
type: integer
description: Defines which page of rows should be returned. Either the `page` or `limit` can be provided, not both.
- in: query
name: search
schema:
type: string
description: If provided only rows with data that matches the search query are going to be returned.
- in: query
name: search_mode
schema:
type: string
description: If provided, allows API consumers to determine what kind of search experience they wish to have. If the default `SearchMode.FT_WITH_COUNT` is used, then Postgres full-text search is used. If `SearchMode.COMPAT` is provided then the search term will be exactly searched for including whitespace on each cell. This is the Baserow legacy search behaviour.
- in: query
name: size
schema:
type: integer
description: Can only be used in combination with the `page` parameter and defines how many rows should be returned.
- in: path
name: slug
schema:
type: string
description: Returns only rows that belong to the related view.
required: true
tags:
- Database table timeline view
security:
- UserSource JWT: []
- JWT: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicPaginationSerializerWithTimelineViewFieldOptionsExampleRowResponse'
description: ''
'400':
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine readable error indicating what went wrong.
enum:
- ERROR_USER_NOT_IN_GROUP
- ERROR_ORDER_BY_FIELD_NOT_FOUND
- ERROR_ORDER_BY_FIELD_NOT_POSSIBLE
- ERROR_FILTER_FIELD_NOT_FOUND
- ERROR_VIEW_FILTER_TYPE_DOES_NOT_EXIST
- ERROR_VIEW_FILTER_TYPE_UNSUPPORTED_FIELD
- ERROR_FILTERS_PARAM_VALIDATION_ERROR
detail:
oneOf:
- type: string
format: string
description: Human readable details about what went wrong.
- type: object
format: object
description: Machine readable object about what went wrong.
description: ''
'401':
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine readable error indicating what went wrong.
enum:
- ERROR_NO_AUTHORIZATION_TO_PUBLICLY_SHARED_VIEW
detail:
oneOf:
- type: string
format: string
description: Human readable details about what went wrong.
- type: object
format: object
description: Machine readable object about what went wrong.
description: ''
'404':
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine readable error indicating what went wrong.
enum:
- ERROR_TIMELINE_DOES_NOT_EXIST
- ERROR_FIELD_DOES_NOT_EXIST
detail:
oneOf:
- type: string
format: string
description: Human readable details about what went wrong.
- type: object
format: object
description: Machine readable object about what went wrong.
description: ''
/api/database/views/timeline/{view_id}/:
get:
operationId: list_database_table_timeline_view_rows
description: 'Lists the requested rows of the view''s table related to the provided `view_id` if the authorized user has access to the database''s workspace. The response is paginated either by a limit/offset or page/size style. The style depends on the provided GET parameters. The properties of the returned rows depends on which fields the table has. For a complete overview of fields use the **list_database_table_fields** endpoint to list them all. In the example all field types are listed, but normally the number in field_{id} key is going to be the id of the field. The value is what the user has provided and the format of it depends on the fields type.
The filters and sortings are automatically applied. To get a full overview of the applied filters and sortings you can use the `list_database_table_view_filters` and `list_database_table_view_sortings` endpoints.
This is a **premium** feature.'
parameters:
- in: query
name: count
schema:
type: boolean
description: If provided only the count will be returned.
- in: query
name: exclude_count
schema:
type: boolean
description: If provided, the count, previous, and next properties will be excluded from the response. This is useful for large datasets where counting the total number of results is slow.
- in: query
name: exclude_fields
schema:
type: string
description: 'All the fields are included in the response by default. You can select a subset of fields by providing the exclude_fields query parameter. If you for example provide the following GET parameter `exclude_fields=field_1,field_2` then the fields with id `1` and id `2` are going to be excluded from the selection and response. '
- in: query
name: filter__{field}__{filter}
schema:
type: string
description: "The rows can optionally be filtered by the same view filters available for the views. Multiple filters can be provided if they follow the same format. The field and filter variable indicate how to filter and the value indicates where to filter on.\n\nFor example if you provide the following GET parameter `filter__field_1__equal=test` then only rows where the value of field_1 is equal to test are going to be returned.\n\nThe following filters are available: equal, not_equal, filename_contains, files_lower_than, has_file_type, contains, contains_not, contains_word, doesnt_contain_word, length_is_lower_than, higher_than, higher_than_or_equal, lower_than, lower_than_or_equal, is_even_and_whole, date_equal, date_before, date_before_or_equal, date_after_days_ago, date_after, date_after_or_equal, date_not_equal, date_equals_today, date_before_today, date_after_today, date_within_days, date_within_weeks, date_within_months, date_equals_days_ago, date_equals_months_ago, date_equals_years_ago, date_equals_week, date_equals_month, date_equals_day_of_month, date_equals_year, date_is, date_is_not, date_is_before, date_is_on_or_before, date_is_after, date_is_on_or_after, date_is_within, single_select_equal, single_select_not_equal, single_select_is_any_of, single_select_is_none_of, link_row_has, link_row_has_not, link_row_contains, link_row_not_contains, boolean, empty, not_empty, multiple_select_has, multiple_select_has_not, multiple_collaborators_has, multiple_collaborators_has_not, user_is, user_is_not, has_value_equal, has_not_value_equal, has_value_contains, has_not_value_contains, has_value_contains_word, has_not_value_contains_word, has_value_length_is_lower_than, has_all_values_equal, has_empty_value, has_not_empty_value, has_any_select_option_equal, has_none_select_option_equal, has_value_lower, has_value_lower_or_equal, has_value_higher, has_value_higher_or_equal, has_not_value_higher_or_equal, has_not_value_higher, has_not_value_lower_or_equal, has_not_value_lower, has_date_equal, has_not_date_equal, has_date_before, has_not_date_before, has_date_on_or_before, has_not_date_on_or_before, has_date_on_or_after, has_not_date_on_or_after, has_date_after, has_not_date_after, has_date_within, has_not_date_within.\n\n**Please note that if the `filters` parameter is provided, this parameter will be ignored.** \n\n\n\n**Please note that by passing the filter parameters the view filters saved for the view itself will be ignored.**"
- in: query
name: filter_type
schema:
type: string
description: '`AND`: Indicates that the rows must match all the provided filters.
`OR`: Indicates that the rows only have to match one of the filters.
This works only if two or more filters are provided.
**Please note that if the `filters` parameter is provided, this parameter will be ignored.**'
- in: query
name: filters
schema:
type: string
description: "A JSON serialized string containing the filter tree to apply to this view. The filter tree is a nested structure containing the filters that need to be applied. \n\nAn example of a valid filter tree is the following:`{\"filter_type\": \"AND\", \"filters\": [{\"field\": 1, \"type\": \"equal\", \"value\": \"test\"}]}`. The `field` value must be the ID of the field to filter on, or the name of the field if `user_field_names` is true.\n\nThe following filters are available: equal, not_equal, filename_contains, files_lower_than, has_file_type, contains, contains_not, contains_word, doesnt_contain_word, length_is_lower_than, higher_than, higher_than_or_equal, lower_than, lower_than_or_equal, is_even_and_whole, date_equal, date_before, date_before_or_equal, date_after_days_ago, date_after, date_after_or_equal, date_not_equal, date_equals_today, date_before_today, date_after_today, date_within_days, date_within_weeks, date_within_months, date_equals_days_ago, date_equals_months_ago, date_equals_years_ago, date_equals_week, date_equals_month, date_equals_day_of_month, date_equals_year, date_is, date_is_not, date_is_before, date_is_on_or_before, date_is_after, date_is_on_or_after, date_is_within, single_select_equal, single_select_not_equal, single_select_is_any_of, single_select_is_none_of, link_row_has, link_row_has_not, link_row_contains, link_row_not_contains, boolean, empty, not_empty, multiple_select_has, multiple_select_has_not, multiple_collaborators_has, multiple_collaborators_has_not, user_is, user_is_not, has_value_equal, has_not_value_equal, has_value_contains, has_not_value_contains, has_value_contains_word, has_not_value_contains_word, has_value_length_is_lower_than, has_all_values_equal, has_empty_value, has_not_empty_value, has_any_select_option_equal, has_none_select_option_equal, has_value_lower, has_value_lower_or_equal, has_value_higher, has_value_higher_or_equal, has_not_value_higher_or_equal, has_not_value_higher, has_not_value_lower_or_equal, has_not_value_lower, has_date_equal, has_not_date_equal, has_date_before, has_not_date_before, has_date_on_or_before, has_not_date_on_or_before, has_date_on_or_after, has_not_date_on_or_after, has_date_after, has_not_date_after, has_date_within, has_not_date_within.\n\n**Please note that if this parameter is provided, all other `filter__{field}__{filter}` will be ignored, as well as the `filter_type` parameter.**\n\n**Please note that by passing the filters parameter the view filters saved for the view itself will be ignored.**"
- in: query
name: include
schema:
type: string
description: A comma separated list allowing the values of `field_options` and `row_metadata` which will add the object/objects with the same name to the response if included. The `field_options` object contains user defined view settings for each field. For example the field's width is included in here. The `row_metadata` object includes extra row specific data on a per row basis.
- in: query
name: include_fields
schema:
type: string
description: All the fields are included in the response by default. You can select a subset of fields by providing the fields query parameter. If you for example provide the following GET parameter `include_fields=field_1,field_2` then only the fields with id `1` and id `2` are going to be selected and included in the response.
- in: query
name: limit
schema:
type: integer
description: Defines how many rows should be returned.
- in: query
name: limit_linked_items
schema:
type: integer
description: if provided, the maximum number of relationships per link row field in the response. If not provided, all the relationships will be returned.
- in: query
name: offset
schema:
type: integer
description: Can only be used in combination with the `limit` parameter and defines from which offset the rows should be returned.
- in: query
name: order_by
schema:
type: string
description: Optionally the rows can be ordered by provided field ids separated by comma. By default a field is ordered in ascending (A-Z) order, but by prepending the field with a '-' it can be ordered descending (Z-A).
- in: query
name: page
schema:
type: integer
description: Defines which page of rows should be returned. Either the `page` or `limit` can be provided, not both.
- in: query
name: search
schema:
type: string
description: If provided only rows with data that matches the search query are going to be returned.
- in: query
name: search_mode
schema:
type: string
description: If provided, allows API consumers to determine what kind of search experience they wish to have. If the default `SearchMode.FT_WITH_COUNT` is used, then Postgres full-text search is used. If `SearchMode.COMPAT` is provided then the search term will be exactly searched for including whitespace on each cell. This is the Baserow legacy search behaviour.
- in: query
name: size
schema:
type: integer
description: Can only be used in combination with the `page` parameter and defines how many rows should be returned.
- in: path
name: view_id
schema:
type: integer
description: Returns only rows that belong to the related view's table.
required: true
tags:
- Database table timeline view
security:
- UserSource JWT: []
- JWT: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginationSerializerWithTimelineViewFieldOptionsExampleRowResponse'
description: ''
'400':
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine readable error indicating what went wrong.
enum:
- ERROR_USER_NOT_IN_GROUP
- ERROR_ORDER_BY_FIELD_NOT_FOUND
- ERROR_ORDER_BY_FIELD_NOT_POSSIBLE
- ERROR_FILTER_FIELD_NOT_FOUND
- ERROR_VIEW_FILTER_TYPE_DOES_NOT_EXIST
- ERROR_VIEW_FILTER_TYPE_UNSUPPORTED_FIELD
- ERROR_FILTERS_PARAM_VALIDATION_ERROR
detail:
oneOf:
- type: string
format: string
description: Human readable details about what went wrong.
- type: object
format: object
description: Machine readable object about what went wrong.
description: ''
'404':
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Machine readable error indicating what went wrong.
enum:
- ERROR_TIMELINE_DOES_NOT_EXIST
- ERROR_FIELD_DOES_NOT_EXIST
detail:
oneOf:
- type: string
format: string
description: Human readable details about what went wrong.
- type: object
format: object
description: Machine readable object about what went wrong.
description: ''
components:
schemas:
PaginationSerializerWithTimelineViewFieldOptionsExampleRowResponse:
type: object
properties:
field_options:
type: object
additionalProperties:
$ref: '#/components/schemas/TimelineViewFieldOptions'
description: An object containing the field id as key and the properties related to view as value.
row_metadata:
type: object
additionalProperties:
$ref: '#/components/schemas/RowMetadata'
description: An object keyed by row id with a value being an object containing additional metadata about that row. A row might not have metadata and will not be present as a key if so.
count:
type: integer
description: The total amount of results.
next:
type: string
format: uri
nullable: true
description: URL to the next page.
previous:
type: string
format: uri
nullable: true
description: URL to the previous page.
results:
type: array
items:
$ref: '#/components/schemas/ExampleRowResponse'
required:
- count
- next
- previous
- results
TimelineViewFieldOptions:
type: object
properties:
hidden:
type: boolean
description: Whether or not the field should be hidden in the card.
order:
type: integer
maximum: 32767
minimum: -32768
description: The order that the field has in the view. Lower value is first.
FileFieldResponse:
type: object
properties:
url:
type: string
format: uri
readOnly: true
thumbnails:
type: object
additionalProperties: {}
readOnly: true
visible_name:
type: string
name:
type: string
size:
type: integer
mime_type:
type: string
is_image:
type: boolean
image_width:
type: integer
image_height:
type: integer
uploaded_at:
type: string
format: date-time
required:
- image_height
- image_width
- is_image
- mime_type
- name
- size
- thumbnails
- uploaded_at
- url
- visible_name
PublicPaginationSerializerWithTimelineViewFieldOptionsExampleRowResponse:
type: object
properties:
field_options:
type: object
additionalProperties:
$ref: '#/components/schemas/TimelineViewFieldOptions'
description: An object containing the field id as key and the properties related to view as value.
count:
type: integer
description: The total amount of results.
next:
type: string
format: uri
nullable: true
description: URL to the next page.
previous:
type: string
format: uri
nullable: true
description: URL to the previous page.
results:
type: array
items:
$ref: '#/components/schemas/ExampleRowResponse'
required:
- count
- next
- previous
- results
RowCommentsNotificationModeEnum:
enum:
- all
- mentions
type: string
description: '* `all` - all
* `mentions` - mentions'
LinkRowValue:
type: object
properties:
id:
type: integer
readOnly: true
description: The unique identifier of the row in the related table.
value:
type: string
description: The primary field's value as a string of the row in the related table.
order:
type: string
format: decimal
pattern: ^-?\d{0,20}(?:\.\d{0,20})?$
required:
- id
RowMetadata:
type: object
properties:
row_comment_count:
type: integer
minimum: 0
description: How many row comments exist for this row.
row_comments_notification_mode:
$ref: '#/components/schemas/RowCommentsNotificationModeEnum'
Collaborator:
type: object
properties:
id:
type: integer
name:
type: string
readOnly: true
required:
- id
- name
ExampleRowResponse:
type: object
properties:
id:
type: integer
description: The unique identifier of the row in the table.
order:
type: string
format: decimal
pattern: ^-?\d{0,20}(?:\.\d{0,20})?$
description: Indicates the position of the row, lowest first and highest last.
metadata:
allOf:
- $ref: '#/components/schemas/RowMetadata'
description: Additional metadata for the row, if `include=metadata' is provided as query parameter.
field_1:
type: string
nullable: true
description: 'This field represents the `text` field. The number in field_1 is in a normal request or response the id of the field. '
field_2:
type: string
nullable: true
description: 'This field represents the `long_text` field. The number in field_2 is in a normal request or response the id of the field. '
field_3:
type: string
nullable: true
description: 'This field represents the `url` field. The number in field_3 is in a normal request or response the id of the field. '
field_4:
type: string
nullable: true
description: 'This field represents the `email` field. The number in field_4 is in a normal request or response the id of the field. '
maxLength: 254
field_5:
type: string
format: decimal
pattern: ^-?\d{0,50}(?:\.\d{0,0})?$
nullable: true
description: 'This field represents the `number` field. The number in field_5 is in a normal request or response the id of the field. '
field_6:
type: integer
maximum: 5
minimum: 0
default: 0
description: 'This field represents the `rating` field. The number in field_6 is in a normal request or response the id of the field. '
field_7:
type: boolean
default: false
description: 'This field represents the `boolean` field. The number in field_7 is in a normal request or response the id of the field. '
field_8:
# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/baserow/refs/heads/main/openapi/baserow-database-table-timeline-view-api-openapi.yml