Set some of a section's metadata
/v1/websites/{websiteId}/sections/{sectionId}/metaSets some of a section's metadata values and returns all of them, as
Get a section's metadata
does. Section 0 is the whole website. Send only the values you want to
change; the rest keep theirs.
Setting metadata needs "Can admin this website", like the website's other settings. Reading it needs only "Can see section".
Each value is checked against its property before anything is saved:
- An
inttakes a whole number, and afloatany number. Either may be sent as a number or as a string such as"2023".minandmaxare the smallest and largest allowed. - A
booltakestrueorfalse, or"true","false",1or0. - A
urltakes anhttporhttpsaddress. - A
stringtakes text, at leastminand at mostmaxcharacters long. - When a property has
choicesandallowOtherisfalse, the value must be one of them. - No value may be longer than 1,024 characters.
Send null or "" to empty a value, unless the property isRequired. An
emptied int reads back as 0, and an emptied bool as false.
A value equal to the one already stored is always accepted, even if it no longer fits its property, so you can send every value back unchanged.
If any value is refused, nothing is saved. The answer is 400
InvalidRequest; its message says what is wrong and properties.field
names the property:
{
"error": {
"type": "InvalidRequest",
"message": "Year created must be at least 1995.",
"properties": { "field": "year" }
}
}curl -X POST "https://api.eu.silktide.com/v1/websites/3/sections/2/meta" \
-H "Authorization: silktide token=$SILKTIDE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"values": {
"region": "US",
"author": "Jane Doe",
"year": 2023
}
}'{
"values": {
"region": "US",
"author": "Jane Doe",
"year": 2023
},
"properties": [
{
"name": "region",
"label": "Region",
"propertyType": "string",
"isRequired": true,
"min": null,
"max": null,
"choices": [
"UK",
"US",
"Europe",
"AU"
],
"allowOther": false
},
{
"name": "author",
"label": "Author",
"propertyType": "string",
"isRequired": false,
"min": null,
"max": null,
"choices": [
"John Smith",
"Jane Doe",
"Joe Bloggs"
],
"allowOther": true
},
{
"name": "year",
"label": "Year created",
"propertyType": "int",
"isRequired": false,
"min": 1995,
"max": 3000,
"choices": null,
"allowOther": false
}
]
}Request
Path parameters
websiteIdintegerrequiredat least 1The website.
sectionIdintegerrequiredThe section.
0is the whole website.
Body
JSON, sent with Content-Type: application/json.
valuesmap of strings or numbers or booleansThe values to set, by property name. Properties left out keep their value, and
nullor""empties one. Each value is checked against its property. Left out, nothing changes.
Response
200JSON.
valuesmap of strings or numbers or booleans or empty listrequiredThe section's values, by property name. Only properties that have been given a value are here. An empty array (
[]), not an object, when none have.propertieslist of objectsrequiredEvery metadata property the account defines for sections, in the account's order.
Show 8 fieldsHide fields
namestringrequiredThe property's name: the key of its value in
values.labelstringrequiredIts name as people see it.
propertyTypestringrequiredThe type of value it holds.
One of
stringintfloatboolurlisRequiredbooleanrequiredWhether every section is meant to have a value for it.
minintegerrequiredcan be nullThe smallest value (
int,float) or shortest length (string,url) it is meant to take. Null for no limit.maxintegerrequiredcan be nullThe largest value or longest length it is meant to take. Null for no limit.
choiceslist of stringsrequiredcan be nullThe values to pick from. Null when it has no list.
allowOtherbooleanrequiredWith
choices, whether a value not in the list is meant to be allowed.
Errors
| Status | Type | When |
|---|---|---|
| 404 | ModelNotFound | No website or section with those ids exists in the account, or the API key's user cannot see it. |
| 403 | AccessDenied | The API key's user cannot admin this website. |
| 400 | InvalidRequest | A value does not fit its property, names no property the account has, or values is not an object. properties.field names the property, and nothing is saved. |
| 401 | NotLoggedIn | No API key was sent, or it is not a key for this region.(any operation) |
| 429 | TooManyRequests | Too many requests to this path in five seconds. Retry after the number of seconds in the Retry-After header, which properties.retryAfter repeats.(any operation) |
| 503 | - | Silktide is busy. Retry after the number of seconds in the Retry-After header.(any operation) |
Every error has the same body. See Errors.
Access
- Permission
- Can admin this website
- Plan feature
- None
- Edition
- Silktide 4 and Silktide 5
- Cost
- Free
- Available since
- v1.0.0
Try it
Sends a real request to your account from this browser. Your key stays in this tab and goes only to the Silktide API.