Update a website
/v1/websites/{websiteId}Uses allowanceChanges a website. Send only what you want to change; the response is the whole website, as Get a website returns it.
Two parts replace rather than merge:
schedulereplaces the whole schedule. A key you leave out takes its default (no interval, a period of1, starting now, active), so send every key you care about.tagIdsreplaces the website's tags. Send[]to remove them all; leave it out to keep them. Each id you add must be one of the account'ssectiontags, so create a tag first; any other id is refused with400and the request changes nothing.
options merges: a setting you leave out keeps its value.
A larger maxPages or maxDocuments must be within what
Get a website's balance says the
website can be given. Lowering them, or changing anything else, always works,
even on an account that is over its balance.
If you leave out governanceAiOptimizer and the website can no longer use AI
after the update (for example website.aiEnabled: false), it gives back its
Governance AI optimizer.
curl -X PUT "https://api.eu.silktide.com/v1/websites/2" \
-H "Authorization: silktide token=$SILKTIDE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"website": {
"name": "Example (main site)"
},
"schedule": {
"scheduleInterval": "month",
"schedulePeriod": 1
},
"tagIds": [
"competitor"
]
}'{
"website": {
"websiteId": 2,
"name": "Example (main site)",
"homeUrl": "https://example.com/",
"status": "live",
"maxPages": 1000,
"maxDocuments": 500,
"created": 1790216529,
"lastTested": 1790302929,
"propertyId": 0
},
"permissions": {
"components": [],
"componentValues": {},
"fixedValues": {}
},
"schedule": {
"scheduleInterval": "month",
"schedulePeriod": 1,
"scheduleFromDate": 1793736900,
"schedulePreset": "",
"isActive": true
},
"options": {
"website.languages": [
"en-US"
],
"website.passwordSet": false,
"website.proxyPasswordSet": false
},
"tagIds": [
"competitor"
],
"governanceAiOptimizer": false,
"governanceAiOptimizerAvailable": true,
"reportLanguage": "en-US"
}Request
Path parameters
websiteIdintegerrequiredat least 1The website.
Body
JSON, sent with Content-Type: application/json.
websiteobjectDetails to change. Ones left out keep their value.
Show 4 fieldsHide fields
namestring1 to 200 charactersIts name. Plain text: no markup or control characters.
homeUrlstringIts home page, as a full URL.
maxPagesintegerat least 1The most pages to test. An increase must fit in the account's balance.
maxDocumentsintegerThe most documents (PDFs) to test. An increase must fit in the account's balance.
scheduleobjectWhen to retest it. Replaces the whole schedule: any key left out takes its default.
Show 5 fieldsHide fields
scheduleIntervalstringThe unit to retest in. Defaults to empty, which is no schedule.
One of
secondminutehourdayweekmonthyearschedulePeriodintegerat least 1How many intervals apart tests are. Defaults to
1.scheduleFromDateintegerWhen the schedule counts from. Defaults to now.
schedulePresetstringA named schedule, used instead of the interval and period:
five-daily,weekly,monthly, ornonefor no schedule.One of
nonefive-dailyweeklymonthlyisActivebooleanWhether scheduled tests run. Defaults to
true.
optionsobjectSettings to change. Ones left out keep their value.
Show 38 fieldsHide fields
website.allowFragmentPathsbooleanExperimental. Crawl paths with fragments, such as hashbangs.
website.allowedHttpCodeslist of integersHTTP codes to accept besides 2xx and 3xx, which are always accepted.
website.authTypestringHow Silktide signs in to pages that need it.
website.benchmarkIdstringThe Silktide Benchmark to grade against. Empty for none.
website.benchmarkPercentileintegerThe percentile to read from the benchmark.
website.brokenLinkMaxRedirectsintegerHow many redirects a link may take before it counts as broken.
website.brokenLinkPropulsionFallbackbooleanConfirm broken links in a real browser. Slower but more reliable.
website.brokenLinkTimeoutintegerSeconds to wait before a link counts as broken.
website.clickSelectorstringA CSS selector Silktide clicks on each page before testing it.
website.disableAnalyticsbooleanBlock the website's analytics scripts while testing, so tests do not count as visits.
website.disableFirstTimeVisitbooleanSkip the built-in first-visit user flow, which tests pages before cookie banners are dismissed.
website.disableLinkDiscoverybooleanTest only the URLs you give, and follow no links.
website.disableScrollDownbooleanDo not scroll each page to the bottom and back while testing.
website.disableStealthbooleanLet websites detect that Silktide's browser is automated.
website.enableAnimationbooleanLet pages animate. Silktide stops animation by default.
website.exclude3rdPartyPluginIssuesbooleanIgnore issues inside common third-party plugins, such as embedded maps.
website.excludeQueryParamslist of stringsQuery parameters to remove from URLs, so pages that differ only by them count once.
website.ignoreAutomaticSitemapsbooleanDo not use the sitemaps Silktide finds on its own.
website.inspectorCssstringCSS added to pages when they are shown in the Inspector.
website.languageslist of stringsLanguage codes, such as
en-US, that every page is in. Always present.website.maxConnectionsintegerHow many pages Silktide may load at once.
website.normalizeUrlPathbooleanLowercase URL paths, for websites that mix case.
website.optionalLanguageslist of stringsLanguage codes a page might be in. Silktide detects them per page, which slows testing.
website.pageWaitnumberSeconds to wait after a page loads before testing it.
website.proxyHoststringA proxy server to test through.
website.proxyPortintegerThe proxy server's port.
website.proxyPresetstringOne of Silktide's proxies:
eu-dublin,us-ohioorau-sydney. Empty for the region's own location.website.proxyUsernamestringThe proxy server's username.
website.readabilityFormulastringThe readability formula, such as
smog.website.readabilityThresholdnumberThe readability score pages should stay within.
website.reportLanguagestringThe language AI reports about the website are written in. Empty for the account's language.
website.timeoutintegerSeconds to wait for a page to load before giving up.
website.trustPageDeclaredLanguagebooleanBelieve the language a page declares rather than detecting it.
website.userAgentSuffixstringText added to the end of Silktide's browser user agent.
website.usernamestringThe username Silktide signs in to pages with.
website.aiEnabledbooleanWhether Silktide's AI may work on this website.
website.passwordstringThe password Silktide signs in to pages with. Write-only: reads say only whether one is set. Leave it out to keep the saved one; an empty string removes it.
website.proxyPasswordstringThe proxy server's password. Write-only, like
website.password.
tagIdslist of stringsThe tags for the whole website (section
0). Replaces its tags;[]removes them all.governanceAiOptimizerbooleantrueto give the website one of the account's Governance AI optimizers,falseto give its back.
Response
200JSON.
websiteobjectrequiredThe website.
Show 9 fieldsHide fields
websiteIdintegerrequiredat least 1The website.
namestringrequiredIts name.
homeUrlstringrequiredIts home page.
statusstringrequiredinstallingwhile Silktide creates it,setupbefore it goes live,liveonce it is tested.One of
installingsetuplivemaxPagesintegerrequiredThe most pages Silktide will test.
maxDocumentsintegerrequiredThe most documents (PDFs) Silktide will test.
createdintegerrequiredWhen it was created.
lastTestedintegerrequiredWhen its last test finished.
0if it has never been tested.propertyIdintegerrequiredThe Analytics property linked to the website.
0when it has none.
permissionsobjectrequiredWho may do what with the website.
Show 3 fieldsHide fields
componentslist of objectsrequiredThe permissions a website has.
Show 6 fieldsHide fields
permissionIdstringrequiredThe permission, such as
Website-WebsiteRead.componentTypestringrequiredWhat can be given it.
assigneesfor users and roles.labelstringrequiredIts name.
descriptionstringrequiredcan be nullWhat it allows. Null for some permissions.
inheritedPermissionIdslist of stringsrequiredPermissions that include this one: anyone with those has this too.
modelslist of any JSONrequiredReserved. Empty for website permissions.
componentValuesmap of list of stringsrequiredWho was given each permission on this website directly, as assignee ids (
u:users,g:roles).fixedValuesmap of list of stringsrequiredWho has each permission from elsewhere, such as account-wide roles. Changed elsewhere, not here.
scheduleobjectrequiredWhen it is retested.
Show 5 fieldsHide fields
scheduleIntervalstringrequiredThe unit it is retested in. Empty when it is not retested on a schedule.
One of
secondminutehourdayweekmonthyearschedulePeriodintegerrequiredHow many
scheduleIntervals apart tests are.scheduleFromDateintegerrequiredWhen the schedule counts from.
schedulePresetstringrequiredA named schedule (
none,five-daily,weeklyormonthly), or empty when the interval and period were set directly.isActivebooleanrequiredWhether scheduled tests run.
optionsobjectrequiredIts settings, by name.
Show 38 fieldsHide fields
website.allowFragmentPathsbooleanExperimental. Crawl paths with fragments, such as hashbangs.
website.allowedHttpCodeslist of integersHTTP codes to accept besides 2xx and 3xx, which are always accepted.
website.authTypestringHow Silktide signs in to pages that need it.
website.benchmarkIdstringThe Silktide Benchmark to grade against. Empty for none.
website.benchmarkPercentileintegerThe percentile to read from the benchmark.
website.brokenLinkMaxRedirectsintegerHow many redirects a link may take before it counts as broken.
website.brokenLinkPropulsionFallbackbooleanConfirm broken links in a real browser. Slower but more reliable.
website.brokenLinkTimeoutintegerSeconds to wait before a link counts as broken.
website.clickSelectorstringA CSS selector Silktide clicks on each page before testing it.
website.disableAnalyticsbooleanBlock the website's analytics scripts while testing, so tests do not count as visits.
website.disableFirstTimeVisitbooleanSkip the built-in first-visit user flow, which tests pages before cookie banners are dismissed.
website.disableLinkDiscoverybooleanTest only the URLs you give, and follow no links.
website.disableScrollDownbooleanDo not scroll each page to the bottom and back while testing.
website.disableStealthbooleanLet websites detect that Silktide's browser is automated.
website.enableAnimationbooleanLet pages animate. Silktide stops animation by default.
website.exclude3rdPartyPluginIssuesbooleanIgnore issues inside common third-party plugins, such as embedded maps.
website.excludeQueryParamslist of stringsQuery parameters to remove from URLs, so pages that differ only by them count once.
website.ignoreAutomaticSitemapsbooleanDo not use the sitemaps Silktide finds on its own.
website.inspectorCssstringCSS added to pages when they are shown in the Inspector.
website.languageslist of stringsrequiredLanguage codes, such as
en-US, that every page is in. Always present.website.maxConnectionsintegerHow many pages Silktide may load at once.
website.normalizeUrlPathbooleanLowercase URL paths, for websites that mix case.
website.optionalLanguageslist of stringsLanguage codes a page might be in. Silktide detects them per page, which slows testing.
website.pageWaitnumberSeconds to wait after a page loads before testing it.
website.proxyHoststringA proxy server to test through.
website.proxyPortintegerThe proxy server's port.
website.proxyPresetstringOne of Silktide's proxies:
eu-dublin,us-ohioorau-sydney. Empty for the region's own location.website.proxyUsernamestringThe proxy server's username.
website.readabilityFormulastringThe readability formula, such as
smog.website.readabilityThresholdnumberThe readability score pages should stay within.
website.reportLanguagestringThe language AI reports about the website are written in. Empty for the account's language.
website.timeoutintegerSeconds to wait for a page to load before giving up.
website.trustPageDeclaredLanguagebooleanBelieve the language a page declares rather than detecting it.
website.userAgentSuffixstringText added to the end of Silktide's browser user agent.
website.usernamestringThe username Silktide signs in to pages with.
website.aiEnabledbooleanWhether Silktide's AI may work on this website.
website.passwordSetbooleanrequiredWhether a sign-in password is saved. Always present. Read-only: sending it changes nothing.
website.proxyPasswordSetbooleanrequiredWhether a proxy password is saved. Always present. Read-only, like
website.passwordSet.
tagIdslist of stringsrequiredThe ids of the tags on the whole website (section
0).governanceAiOptimizerbooleanrequiredWhether the website holds one of the account's Governance AI optimizers.
governanceAiOptimizerAvailablebooleanrequiredWhether it could be given one now, counting one its own recent reports still hold.
reportLanguagestringrequiredThe language its AI reports are written in: its own setting, or the account's when unset.
Errors
| Status | Type | When |
|---|---|---|
| 404 | ModelNotFound | Nothing with that id exists in the account, or the API key's user cannot see it. |
| 403 | AccessDenied | The API key's user cannot admin this website. |
| 403 | InsufficientBalance | A larger maxPages or maxDocuments is more than the website can be given. properties.featureId names the balance. |
| 400 | InvalidRequest | The name contains markup or control characters, website.reportLanguage is not a language Silktide writes reports in, or tagIds adds an id that is not one of the account's section tags. properties.field names it. |
| 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
- Uses the account's allowance
- 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.