Download OpenAPI specification:Download
This is your Flotiq User API that allows you to access your data through the Content API that you defined.
There are several methods that you can use to access your data:
Try it out
button available next to each endpoint Each of these methods is described in length in the user documentation.
In order to make use of the provided documentation, example code, SDKs and so on - you will need to pull out your API key. We recommend that you start with the ReadOnly API Key which will allow you to make all the GET
requests but will error-out when you try to modify content. Please remember to replace the key for POST
, PUT
and DELETE
calls.
It's also possible to use scoped API keys - you can create those in the API keys section of the Flotiq user interface. This will allow you to create a key that only authorizes access to a specific content type (or a set of content types, if you choose so). Read more about how to use and create API keys in the API keys documentation.
Once you define a Content Type it will become available in your Content API as a set of endpoints that will allow you to work with objects:
When you build Content Types that have relation to others your objects will optionally support hydration of related entities. The endpoints that support object retrieval accept a hydrate
parameter, which can be used to easily fetch hydrated objects. Since this breaks the standard REST concepts - it's not enabled by default, but it's a very handy feature that allows to reduce the amount of HTTP requests sent over the wire and we strongly recommend to use it.
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
date required | string non-empty ^$|^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d... |
name required | string non-empty |
slug required | string non-empty |
Array of objects (DataSource) >= 0 items | |
price | string |
address required | string non-empty |
excerpt | string |
Array of objects (DataSource) >= 0 items | |
description | string |
{- "id": "event-1",
- "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
{- "id": "event-1",
- "internal": {
- "contentType": "event",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
page | number >= 1 Default: 1 Example: page=1 Listing page number, 1-based |
limit | number >= 1 Default: 20 Example: limit=20 Page limit |
order_by | string Default: "internal.createdAt" Example: order_by=internal.updatedAt Order by field |
order_direction | string Default: "asc" Example: order_direction=asc Order direction |
hydrate | number [ 0 .. 1 ] Default: 0 Example: hydrate=0 Should hydrate relations of object, for now only one level of hydration is possible |
filters | string Default: "{}" Example: filters={"slug":{"type":"contains","filter":"test"},"title":{"type":"contains","filter":"test"}} List filters |
ids[] | Array of strings Ids of objects to return. |
var client = new RestClient("https://api.flotiq.com/api/v1/content/event?page=1&limit=20&order_by=internal.createdAt&order_direction=asc&hydrate=0&filters=%7B%7D&ids%5B%5D=SOME_ARRAY_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "total_count": 1,
- "count": 1,
- "total_pages": 1,
- "current_page": 1,
- "data": [
- {
- "id": "event-1",
- "internal": {
- "contentType": "event",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
]
}
updateExisting | boolean Default: false Overwrite existing objects |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
date required | string non-empty ^$|^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d... |
name required | string non-empty |
slug required | string non-empty |
Array of objects (DataSource) >= 0 items | |
price | string |
address required | string non-empty |
excerpt | string |
Array of objects (DataSource) >= 0 items | |
description | string |
[- {
- "id": "event-1",
- "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}, - {
- "id": "event-2",
- "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
]
{- "batch_total_count": 2,
- "batch_success_count": 2,
- "batch_error_count": 0,
- "errors": [ ]
}
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
date required | string non-empty ^$|^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d... |
name required | string non-empty |
slug required | string non-empty |
Array of objects (DataSource) >= 0 items | |
price | string |
address required | string non-empty |
excerpt | string |
Array of objects (DataSource) >= 0 items | |
description | string |
[- {
- "id": "event-1",
- "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}, - {
- "id": "event-2",
- "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
]
{- "batch_total_count": 2,
- "batch_success_count": 2,
- "batch_error_count": 0,
- "errors": [ ]
}
deletedAfter | string Example: deletedAfter=2020-01-01 12:00:00 Date from which ids of removed objects should be returned |
var client = new RestClient("https://api.flotiq.com/api/v1/content/event/removed?deletedAfter=SOME_STRING_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
[- "event-1"
]
[- "event-1",
- "event-2"
]
{- "deletedCount": 2
}
id required | string Example: event-1 ContentObject identifier |
versionId required | string Example: version-1 ContentObject version identifier |
var client = new RestClient("https://api.flotiq.com/api/v1/content/event/event-1/version/version-1"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "id": "event-1",
- "internal": {
- "contentType": "event",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
id required | string Example: event-1 ContentObject identifier |
page | number >= 1 Default: 1 Example: page=1 Listing page number, 1-based |
limit | number >= 1 Default: 20 Example: limit=20 Page limit |
order_by | string Default: "internal.createdAt" Example: order_by=internal.updatedAt Order by field |
order_direction | string Default: "asc" Example: order_direction=asc Order direction |
var client = new RestClient("https://api.flotiq.com/api/v1/content/event/event-1/version?page=1&limit=20&order_by=internal.createdAt&order_direction=asc"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "total_count": 1,
- "count": 1,
- "total_pages": 1,
- "current_page": 1,
- "data": [
- {
- "internal": {
- "contentType": "post",
- "createdAt": "2021-10-07T13:20:17+00:00",
- "updatedAt": "2021-10-07T13:20:17+00:00",
- "deletedAt": ""
}, - "owner": {
- "username": "John",
- "email": "john@example.com",
- "firstName": "John",
- "lastName": "Smith",
- "roles": [
- "ROLE_HEADLESS_ADMIN"
], - "language": "en",
- "enabled": true,
- "resetPasswordAt": "2021-10-06T10:02:28.000000+0000",
- "subscribed": true,
- "deletedAt": null,
- "createdAt": "2021-10-06T10:02:27.000000+0000",
- "updatedAt": "2021-10-07T11:02:33.000000+0000"
}, - "editor": {
- "username": "John",
- "email": "john@example.com",
- "firstName": "John",
- "lastName": "Smith",
- "roles": [
- "ROLE_HEADLESS_ADMIN"
], - "language": "en",
- "enabled": true,
- "resetPasswordAt": "2021-10-06T10:02:28.000000+0000",
- "subscribed": true,
- "deletedAt": null,
- "createdAt": "2021-10-06T10:02:27.000000+0000",
- "updatedAt": "2021-10-07T11:02:33.000000+0000"
}
}
]
}
id required | string Example: event-1 ContentObject identifier |
hydrate | number [ 0 .. 1 ] Default: 0 Should hydrate relations of object, for now only one level of hydration is possible |
var client = new RestClient("https://api.flotiq.com/api/v1/content/event/event-1?hydrate=SOME_NUMBER_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "id": "event-1",
- "internal": {
- "contentType": "event",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
id required | string Example: event-1 ContentObject identifier |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
date required | string non-empty ^$|^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d... |
name required | string non-empty |
slug required | string non-empty |
Array of objects (DataSource) >= 0 items | |
price | string |
address required | string non-empty |
excerpt | string |
Array of objects (DataSource) >= 0 items | |
description | string |
{- "id": "event-1",
- "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
{- "id": "event-1",
- "internal": {
- "contentType": "event",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
id required | string Example: event-1 ContentObject identifier |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
object Immutable object containing system information, it will be automatically generated on object creation and regenerated on updates. | |
date | string non-empty ^$|^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d... |
name | string non-empty |
slug | string non-empty |
Array of objects (DataSource) >= 0 items | |
price | string |
address | string non-empty |
excerpt | string |
Array of objects (DataSource) >= 0 items | |
description | string |
{- "id": "event-1",
- "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
{- "id": "event-1",
- "internal": {
- "contentType": "event",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "date": "date",
- "name": "name",
- "slug": "slug",
- "image": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "price": "price",
- "address": "address",
- "excerpt": "excerpt",
- "gallery": [
- {
- "dataUrl": "/api/v1/content/_media/_media-1",
- "type": "internal"
}
], - "description": "description"
}
id required | string Example: event-1 ContentObject identifier |
var client = new RestClient("https://api.flotiq.com/api/v1/content/event/event-1"); var request = new RestRequest(Method.DELETE); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "errors": [
- "This content object is used in another content object."
]
}
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
url required | string non-empty |
size required | number non-empty |
Array of objects (DataSource) >= 0 items | |
type required | string non-empty |
width | number |
height | number |
source required | string non-empty |
fileName required | string non-empty |
mimeType required | string non-empty |
extension required | string non-empty |
externalId | string |
{- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925
}
{- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925,
- "internal": {
- "contentType": "_media",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "example_image.png",
- "latestVersion": 1
}
}
page | number >= 1 Default: 1 Example: page=1 Listing page number, 1-based |
limit | number >= 1 Default: 20 Example: limit=20 Page limit |
order_by | string Default: "internal.createdAt" Example: order_by=internal.updatedAt Order by field |
order_direction | string Default: "asc" Example: order_direction=asc Order direction |
hydrate | number [ 0 .. 1 ] Default: 0 Example: hydrate=0 Should hydrate relations of object, for now only one level of hydration is possible |
filters | string Default: "{}" Example: filters={"slug":{"type":"contains","filter":"test"},"title":{"type":"contains","filter":"test"}} List filters |
ids[] | Array of strings Ids of objects to return. |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_media?page=1&limit=20&order_by=internal.createdAt&order_direction=asc&hydrate=0&filters=%7B%7D&ids%5B%5D=SOME_ARRAY_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "total_count": 1,
- "count": 1,
- "total_pages": 1,
- "current_page": 1,
- "data": [
- {
- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925,
- "internal": {
- "contentType": "_media",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "example_image.png",
- "latestVersion": 1
}
}
]
}
updateExisting | boolean Default: false Overwrite existing objects |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
url required | string non-empty |
size required | number non-empty |
Array of objects (DataSource) >= 0 items | |
type required | string non-empty |
width | number |
height | number |
source required | string non-empty |
fileName required | string non-empty |
mimeType required | string non-empty |
extension required | string non-empty |
externalId | string |
[- {
- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925
}, - {
- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925
}
]
{- "batch_total_count": 2,
- "batch_success_count": 2,
- "batch_error_count": 0,
- "errors": [ ]
}
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
url required | string non-empty |
size required | number non-empty |
Array of objects (DataSource) >= 0 items | |
type required | string non-empty |
width | number |
height | number |
source required | string non-empty |
fileName required | string non-empty |
mimeType required | string non-empty |
extension required | string non-empty |
externalId | string |
[- {
- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925
}, - {
- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925
}
]
{- "batch_total_count": 2,
- "batch_success_count": 2,
- "batch_error_count": 0,
- "errors": [ ]
}
deletedAfter | string Example: deletedAfter=2020-01-01 12:00:00 Date from which ids of removed objects should be returned |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_media/removed?deletedAfter=SOME_STRING_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
[- "_media-1"
]
[- "_media-1",
- "_media-2"
]
{- "deletedCount": 2
}
id required | string Example: _media-1 ContentObject identifier |
versionId required | string Example: version-1 ContentObject version identifier |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_media/_media-1/version/version-1"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925,
- "internal": {
- "contentType": "_media",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "example_image.png",
- "latestVersion": 1
}
}
id required | string Example: _media-1 ContentObject identifier |
page | number >= 1 Default: 1 Example: page=1 Listing page number, 1-based |
limit | number >= 1 Default: 20 Example: limit=20 Page limit |
order_by | string Default: "internal.createdAt" Example: order_by=internal.updatedAt Order by field |
order_direction | string Default: "asc" Example: order_direction=asc Order direction |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_media/_media-1/version?page=1&limit=20&order_by=internal.createdAt&order_direction=asc"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "total_count": 1,
- "count": 1,
- "total_pages": 1,
- "current_page": 1,
- "data": [
- {
- "internal": {
- "contentType": "post",
- "createdAt": "2021-10-07T13:20:17+00:00",
- "updatedAt": "2021-10-07T13:20:17+00:00",
- "deletedAt": ""
}, - "owner": {
- "username": "John",
- "email": "john@example.com",
- "firstName": "John",
- "lastName": "Smith",
- "roles": [
- "ROLE_HEADLESS_ADMIN"
], - "language": "en",
- "enabled": true,
- "resetPasswordAt": "2021-10-06T10:02:28.000000+0000",
- "subscribed": true,
- "deletedAt": null,
- "createdAt": "2021-10-06T10:02:27.000000+0000",
- "updatedAt": "2021-10-07T11:02:33.000000+0000"
}, - "editor": {
- "username": "John",
- "email": "john@example.com",
- "firstName": "John",
- "lastName": "Smith",
- "roles": [
- "ROLE_HEADLESS_ADMIN"
], - "language": "en",
- "enabled": true,
- "resetPasswordAt": "2021-10-06T10:02:28.000000+0000",
- "subscribed": true,
- "deletedAt": null,
- "createdAt": "2021-10-06T10:02:27.000000+0000",
- "updatedAt": "2021-10-07T11:02:33.000000+0000"
}
}
]
}
id required | string Example: _media-1 ContentObject identifier |
hydrate | number [ 0 .. 1 ] Default: 0 Should hydrate relations of object, for now only one level of hydration is possible |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_media/_media-1?hydrate=SOME_NUMBER_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925,
- "internal": {
- "contentType": "_media",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "example_image.png",
- "latestVersion": 1
}
}
id required | string Example: _media-1 ContentObject identifier |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
url required | string non-empty |
size required | number non-empty |
Array of objects (DataSource) >= 0 items | |
type required | string non-empty |
width | number |
height | number |
source required | string non-empty |
fileName required | string non-empty |
mimeType required | string non-empty |
extension required | string non-empty |
externalId | string |
{- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925
}
{- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925,
- "internal": {
- "contentType": "_media",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "example_image.png",
- "latestVersion": 1
}
}
id required | string Example: _media-1 ContentObject identifier |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
object Immutable object containing system information, it will be automatically generated on object creation and regenerated on updates. | |
url | string non-empty |
size | number non-empty |
Array of objects (DataSource) >= 0 items | |
type | string non-empty |
width | number |
height | number |
source | string non-empty |
fileName | string non-empty |
mimeType | string non-empty |
extension | string non-empty |
externalId | string |
{- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925
}
{- "id": "_media-698d20aa-193a-47b3-be4d-550c1aab47e7",
- "extension": "png",
- "fileName": "example_image.png",
- "mimeType": "image/png",
- "size": 87258,
- "type": "image",
- "source": "disk",
- "tags": [
- {
- "dataUrl": "/api/v1/content/_tag/_tag-641775",
- "type": "internal"
}
], - "externalId": "",
- "url": "/image/0x0/_media-698d20aa-193a-47b3-be4d-550c1aab47e7.png",
- "height": 517,
- "width": 925,
- "internal": {
- "contentType": "_media",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "example_image.png",
- "latestVersion": 1
}
}
id required | string Example: _media-1 ContentObject identifier |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_media/_media-1"); var request = new RestRequest(Method.DELETE); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "errors": [
- "This content object is used in another content object."
]
}
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
name required | string non-empty |
{- "id": "_tag-1",
- "name": "name"
}
{- "id": "_tag-1",
- "internal": {
- "contentType": "_tag",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "name": "name"
}
page | number >= 1 Default: 1 Example: page=1 Listing page number, 1-based |
limit | number >= 1 Default: 20 Example: limit=20 Page limit |
order_by | string Default: "internal.createdAt" Example: order_by=internal.updatedAt Order by field |
order_direction | string Default: "asc" Example: order_direction=asc Order direction |
hydrate | number [ 0 .. 1 ] Default: 0 Example: hydrate=0 Should hydrate relations of object, for now only one level of hydration is possible |
filters | string Default: "{}" Example: filters={"slug":{"type":"contains","filter":"test"},"title":{"type":"contains","filter":"test"}} List filters |
ids[] | Array of strings Ids of objects to return. |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_tag?page=1&limit=20&order_by=internal.createdAt&order_direction=asc&hydrate=0&filters=%7B%7D&ids%5B%5D=SOME_ARRAY_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "total_count": 1,
- "count": 1,
- "total_pages": 1,
- "current_page": 1,
- "data": [
- {
- "id": "_tag-1",
- "internal": {
- "contentType": "_tag",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "name": "name"
}
]
}
updateExisting | boolean Default: false Overwrite existing objects |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
name required | string non-empty |
[- {
- "id": "_tag-1",
- "name": "name"
}, - {
- "id": "_tag-2",
- "name": "name"
}
]
{- "batch_total_count": 2,
- "batch_success_count": 2,
- "batch_error_count": 0,
- "errors": [ ]
}
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
name required | string non-empty |
[- {
- "id": "_tag-1",
- "name": "name"
}, - {
- "id": "_tag-2",
- "name": "name"
}
]
{- "batch_total_count": 2,
- "batch_success_count": 2,
- "batch_error_count": 0,
- "errors": [ ]
}
deletedAfter | string Example: deletedAfter=2020-01-01 12:00:00 Date from which ids of removed objects should be returned |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_tag/removed?deletedAfter=SOME_STRING_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
[- "_tag-1"
]
[- "_tag-1",
- "_tag-2"
]
{- "deletedCount": 2
}
id required | string Example: _tag-1 ContentObject identifier |
versionId required | string Example: version-1 ContentObject version identifier |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_tag/_tag-1/version/version-1"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "id": "_tag-1",
- "internal": {
- "contentType": "_tag",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "name": "name"
}
id required | string Example: _tag-1 ContentObject identifier |
page | number >= 1 Default: 1 Example: page=1 Listing page number, 1-based |
limit | number >= 1 Default: 20 Example: limit=20 Page limit |
order_by | string Default: "internal.createdAt" Example: order_by=internal.updatedAt Order by field |
order_direction | string Default: "asc" Example: order_direction=asc Order direction |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_tag/_tag-1/version?page=1&limit=20&order_by=internal.createdAt&order_direction=asc"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "total_count": 1,
- "count": 1,
- "total_pages": 1,
- "current_page": 1,
- "data": [
- {
- "internal": {
- "contentType": "post",
- "createdAt": "2021-10-07T13:20:17+00:00",
- "updatedAt": "2021-10-07T13:20:17+00:00",
- "deletedAt": ""
}, - "owner": {
- "username": "John",
- "email": "john@example.com",
- "firstName": "John",
- "lastName": "Smith",
- "roles": [
- "ROLE_HEADLESS_ADMIN"
], - "language": "en",
- "enabled": true,
- "resetPasswordAt": "2021-10-06T10:02:28.000000+0000",
- "subscribed": true,
- "deletedAt": null,
- "createdAt": "2021-10-06T10:02:27.000000+0000",
- "updatedAt": "2021-10-07T11:02:33.000000+0000"
}, - "editor": {
- "username": "John",
- "email": "john@example.com",
- "firstName": "John",
- "lastName": "Smith",
- "roles": [
- "ROLE_HEADLESS_ADMIN"
], - "language": "en",
- "enabled": true,
- "resetPasswordAt": "2021-10-06T10:02:28.000000+0000",
- "subscribed": true,
- "deletedAt": null,
- "createdAt": "2021-10-06T10:02:27.000000+0000",
- "updatedAt": "2021-10-07T11:02:33.000000+0000"
}
}
]
}
id required | string Example: _tag-1 ContentObject identifier |
hydrate | number [ 0 .. 1 ] Default: 0 Should hydrate relations of object, for now only one level of hydration is possible |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_tag/_tag-1?hydrate=SOME_NUMBER_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "id": "_tag-1",
- "internal": {
- "contentType": "_tag",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "name": "name"
}
id required | string Example: _tag-1 ContentObject identifier |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
name required | string non-empty |
{- "id": "_tag-1",
- "name": "name"
}
{- "id": "_tag-1",
- "internal": {
- "contentType": "_tag",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "name": "name"
}
id required | string Example: _tag-1 ContentObject identifier |
id required | string^[a-zA-Z0-9-_.,:=!?#$%&(\`\’\{\}" ]*$ Unique ID of the object |
object Immutable object containing system information, it will be automatically generated on object creation and regenerated on updates. | |
name | string non-empty |
{- "id": "_tag-1",
- "name": "name"
}
{- "id": "_tag-1",
- "internal": {
- "contentType": "_tag",
- "createdAt": "2024-03-06T00:44:01+00:00",
- "updatedAt": "2024-03-06T00:44:01+00:00",
- "deletedAt": "",
- "workflowState": "saved",
- "objectTitle": "",
- "latestVersion": 1
}, - "name": "name"
}
id required | string Example: _tag-1 ContentObject identifier |
var client = new RestClient("https://api.flotiq.com/api/v1/content/_tag/_tag-1"); var request = new RestRequest(Method.DELETE); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "errors": [
- "This content object is used in another content object."
]
}
The Flotiq API provides a powerful search engine, which is a wrapper for ElasticSearch queries. We tried to balance between resembling the ES API (for those, who already know it) and keeping it simple and cohesive with Flotiq API. This endpoint provides means for querying content objects that match a set of criteria, with options for:
limiting search to specific Content Types,
limit search to specific fields,
weighting fields to modify results scoring,
aggregating results by fields.
You can find more information about the Search API in the Search API docs.
q | string Default: "" Query |
fields[] | Array of strings Search only in selected fields. |
page | string Default: "1" Listing page number, 1-based |
limit | string Default: "20" Page limit |
order_by | string Default: "" Order by field |
order_direction | string Default: "asc" Order direction |
content_type[] | Array of strings Restrict search to content types set |
aggregate_by[] | Array of strings Field to aggregate results direction (string fields only) |
aggregate_by_numeric[] | Array of strings Field to aggregate results direction with numeric type |
filters | object Example: filters[public]=true Filter by object properties. Expected format: filters[property1]=value1&filters[property2]=value2 |
post_filters | object Example: post_filters[public]=true Filter by object properties. Use it when you want aggregated counts without filters applied. Expected format: post_filters[property1]=value1&post_filters[property2]=value2 |
geo_filters | object Example: geo_filters[location]=geo_distance,1.50km,40.1,-19.2 Filter by object geolocation properties. Example value: geo_filters[location]=geo_distance,1.50km,40.1,-19.2 (filter name, distance, latitude, longitude). For more information see ElasticSearch docs. Only geo_distance query is supported. |
var client = new RestClient("https://api.flotiq.com/api/v1/search?q=SOME_STRING_VALUE&fields%5B%5D=SOME_ARRAY_VALUE&page=SOME_STRING_VALUE&limit=SOME_STRING_VALUE&order_by=SOME_STRING_VALUE&order_direction=SOME_STRING_VALUE&content_type%5B%5D=SOME_ARRAY_VALUE&aggregate_by%5B%5D=SOME_ARRAY_VALUE&aggregate_by_numeric%5B%5D=SOME_ARRAY_VALUE&filters=SOME_OBJECT_VALUE&post_filters=SOME_OBJECT_VALUE&geo_filters=SOME_OBJECT_VALUE"); var request = new RestRequest(Method.GET); request.AddHeader("X-AUTH-TOKEN", "f42a50abdedb94da5ff573d08cbaee97"); IRestResponse response = client.Execute(request);
{- "total_count": 1,
- "count": 1,
- "total_pages": 1,
- "current_page": 1,
- "data": [
- {
- "score": 0,
- "item": { }
}
], - "summary": {
- "aggregations": { }
}
}