Change a account setting
Sets the value of one account setting — any setting, for users with the front-page privilege.
ACCOUNT-WIDE CONFIGURATION WRITE. 200 with a JSON null body.
Use it to:
- Front-page editor saving the administrator's notice (FrontPageInternalMessage)
Not for:
- Feature flags (on/off) →
PUT /v2/features - Embedding images → upload with
POST /v2/settings/frontpage-imageand reference the URL
Behaviour:
- Duplicates: Not deduplicated: the same value is written again and the events re-raised.
Call first: GET /v2/settings/frontpage-internal-message, POST /v2/settings/frontpage-image
Next: GET /v2/settings/frontpage-internal-message
See also: PUT /v1/setting, PUT /v2/features
Not yet documented: behaviour → idempotent; behaviour → safe to retry; examples (success); request → body.
curl -X PUT "https://app3.timelog.com/your-account/api/v2/settings/ExternalProjectDefaultOrderStatus" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"Value": "null"
}'
import requests
import json
url = "https://app3.timelog.com/your-account/api/v2/settings/ExternalProjectDefaultOrderStatus"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"Value": "null"
}
response = requests.put(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://app3.timelog.com/your-account/api/v2/settings/ExternalProjectDefaultOrderStatus", {
method: "PUT",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"Value": "null"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"Value": "null"
}`)
req, err := http.NewRequest("PUT", "https://app3.timelog.com/your-account/api/v2/settings/ExternalProjectDefaultOrderStatus", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://app3.timelog.com/your-account/api/v2/settings/ExternalProjectDefaultOrderStatus')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Put.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"Value": "null"
}'
response = http.request(request)
puts response.body
"null"
{
"Code": 200,
"Details": [
"The value 'test' is not valid for SettingIdentifier."
],
"Message": "Invalid model state error.",
"Parameters": "setting: {"Value":null}",
"Url": "https://app{server-number}.timelog.com/{account}/api/v2/settings/test"
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
{
"error": "Error",
"message": "- Value contains the text "data:image" (an embedded base64 image). — When: Value contains 'data:image' — any setting, checked before the privilege. — Fix: Upload the image with POST /v2/settings/frontpage-image and reference the returned URL instead.",
"code": 413
}
{
"error": "Internal Server Error",
"message": "An unexpected error occurred on the server",
"code": 500,
"requestId": "req_1234567890"
}
/v2/settings/{settingIdentifier}Target server for requests. Edit to use your own host.
OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.
> Not yet documented: how to obtain a token.
> Not yet documented: token lifetime.
Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.
> Not yet documented: how to obtain a token.
> Not yet documented: token lifetime.The setting: SettingIdentifier member name or integer value (e.g. FrontPageInternalMessage). An unknown name → 400 Code 200 (captured); an integer with no member binds and fails later with 500 (captured: 12345).
Allowed values: see SettingIdentifier.
The media type of the request body
The new value, always as a JSON string whatever the setting's type (numbers, dates, booleans, enums are written as text). The server sanitizes it by the setting's data type before storing. For FrontPageInternalMessage it is the HTML of the message, with images as URLs from POST /v2/settings/frontpage-image. > Not yet documented: behaviour.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.
Not yet documented: how to obtain a token.
Not yet documented: token lifetime.
Path Parameters
The setting: SettingIdentifier member name or integer value (e.g. FrontPageInternalMessage). An unknown name → 400 Code 200 (captured); an integer with no member binds and fails later with 500 (captured: 12345).
Allowed values: see SettingIdentifier.
ExternalProjectDefaultOrderStatusExternalProjectDefaultProjectTypeProjectInvoiceHeaderDefaultTextProjectInvoiceMessageDefaultTextTravelExpensesProfitRuleTravelExpensesProfitPercentageEnhancedTimesheetApprovalsProjectManagerApprovalDepartmentApprovalPartialRejectionOfTimesheetsOpenRejectedProjectTwoStepApprovalOfExpensesTimetrackingWarningBaseCurrencyAbbDecimalsForReportsHoursDecimalsForReportsCurrencyResourceManDayPersonalSecurityRoleForResourceBookingPlannerSecurityRoleForResourceBookingExportTypesNotificationEngineNextTriggerDateTimeDailySalaryAccountEmployeePostingAggregationNextTriggerTimeYearlyAutomaticAccountingPeriodGenerationNextTriggerTimeNotificationEngineNextHardBookingToTimeRegistrationTriggerDateTimeNotificationEngineNextUpdateUserDateTimeNotificationEngineGenerateDailyPostingsFromTimeRegistrationsDateFiscalDayFlexTruncationDateAccountingPeriodAutomaticCreationNotificationEngineNextAutoExpensesTriggerDateTimeInternalProjectDefaultAssignMilestoneExternalProjectDefaultAssignMilestoneSetMilestoneNameFromTypeUpgradeNotificationDateCustomerDefaultCountryGoogleMapStartAddressStylesheetVariationTimeAndMaterialInvoicingModelTimeAndMaterialDefaultSelectedInvoicingModelInvoiceDefaultValue_InvoiceDateTypeInvoiceDefaultValue_CreditNoteDateTypeInvoiceDefaultValue_InternalReferenceInvoiceDefaultValue_InternalReferenceFormatExchangeRateAPINumberOfTriesExchangeRateAPITimeoutMSDebtorListInvoiceShowWorkNotReadyForInvoicingDefaultValueNotificationEngineNextUpdateInvoicingStatusTriggerDateTimeNotificationEngineNextGenerateFutureDatePaymentsTriggerDateTimeNotificationEngineRecalculateTimeSheetStatusAggregationNeededRSSFeedUrl_DKRSSFeedUrl_ENRSSFeedUrl_SERSSFeedUrl_DERSSFeedUrl_NLDemoExpirationDateInvoiceSetting_NumberOfDecimalsTcamApiUrlInvoiceSetting_RoundTotalsTLPePayMerchantNrProductionStatusOTTVersionExtranetLogoURLNextUpdateInvoiceStatusTriggerDateTimeNextRecalculateProjectForecastDateTimeUpdateInvoiceStatusIntervalGDPR_DataProtectionContactGDPR_DeleteEmployeeDataDaysGDPR_AnonymizeEmployeeDataMonthsGDPR_DeleteContactDataMonthsGDPR_DeleteCustomerDataMonthsGDPR_DeleteCustomerStatusGDPR_DataProtectionContact_ValidatedByAdditionalTextFieldValidationAdditionalTextFieldTypeTimeFormatAdditionalTextFieldLabelTimeRegistrationPotentialTypeColumnRequestTimesheetStatusEmailHeaderMigrationDateTo6_1PlatformProductTypePlatformPlanLicenseModelPlatformPlanTypePlatformUserLicenseModelNotSpecifiedPlatformDisableUnlicensesUsersAtNotificationEngineNextUserLicenseValidatorTriggerDateTimePlatformPurchasedLimitedUserLicensesPlatformActiveBasicPlusFeaturePlatformPurchasedStandardUserLicensesPlatformPurchasedExternalStandardUserLicensesPlatformPurchasedStandardUserLicensesProjectPlatformPurchasedExternalStandardUserLicensesProjectPlatformPurchasedTimeExpenseTrackingUserLicensesPlatformPurchasedTimeExpenseTrackingUserLicensesProjectPlatformPurchasedCRMUserLicensesPlatformPurchasedJiraUserLicensesPlatformPurchasedOutlookUserLicensesPlatformPurchasedOutlookAddInUserLicensesPlatformPurchasedLegalEntityLicensesPlatformPurchasedNavIntegrationLicensesPlatformPurchasedVismaIntegrationLicensesPlatformPurchasedBusinessCentralIntegrationLicensesPlatformPurchasedResourcePlannerLicensesExternalProjectDefaultProjectCategoryExternalProjectDefaultTimeTrackingExternalProjectDefaultTimeRegistrationExternalProjectDefaultProjectStageInternalProjectDefaultProjectStageExternalProjectDefaultHourlyRateExternalProjectsDefaultContractModelExternalProjectDefaultTaskStatusInternalProjectDefaultOrderStatusInternalProjectDefaultProjectTypeInternalProjectDefaultProjectCategoryInternalProjectDefaultTimeTrackingInternalProjectDefaultTimeRegistrationInternalProjectDefaultHourlyRateInternalProjectsDefaultContractModelInternalProjectDefaultTaskStatusExternalProjectDefaultTaskPlanCustomTaskNameExternalProjectDefaultTaskPlanProjectTemplateInternalProjectDefaultTaskPlanCustomTaskNameInternalProjectDefaultTaskPlanProjectTemplateDefaultTaskPlanOnNewExternalProjectDefaultTaskPlanOnNewInternalProjectInvoiceSetting_DateRangeAccountingYearMonthInvoiceSetting_RoundUnitsInvoiceSetting_ExportTypeInvoiceSetting_ExportEmailLimitTextOnInvoiceHeaderNoCharactersLimitTextOnInvoiceMessageNoCharactersLimitTextOnInvoicelineDescriptionNoCharactersVATMinimumLengthOfPasswordMilestonesDaysInInfoboxCalenderDaysInInfoboxNotificationEngineNextFixCorruptedPendingBookingProjectContractsTriggerDateTimeNotificationSmtpServerNotificationSmtpPortNotificationSmtpUsernameNotificationSmtpPasswordNotificationSenderAddressNotificationSenderNameNotificationGeneralReplyAddressNotificationReplyAddressTypeNumberOfCRMEventsInInfoboxNumberOfCalenderEventsInInfoboxReportCustomStartYearGoalPeriodDefaultGoalTypeGoalTitleGoalMinimumValueGoalMaximumValuePrimaryGoalSecondaryGoalProjectFactorCalculationModelProjectFactorColorCodeGreenProjectFactorColorCodeYellowETCSettingNumberOfDayWarnETCDefaultAllowanceLegislationExternalProjectDefaultTaskBillableInternalProjectDefaultTaskBillableExternalProjectConsumesCapacityInternalProjectConsumesCapacityApiUserIDApiPasswordCalculationModel_EstimationValueModelCalculationModel_CompletionRateModelCalculationModel_HourlyRateModelCalculationModel_EstimationPeriodModelContinuousContractRevenueDistributionModelDefaultLanguageIDForNewUsersEstimateEmployeeUtilizationPlatformPurchasedCRMUserLicensesFreeTrialsPlatformPurchasedOutlookUserLicensesFreeTrialsPlatformPurchasedLegalEntityLicensesFreeTrialsDefaultHardBookingFormatNumberOfTasksReturnedInTrackerSearchRoundingOfBillableTimeFormatRoundingFactorOptionOfTimeRegistrationsSalaryPeriodsConfigurationNameSalaryPeriodsConfigurationDateMaxReceivedMessageSizeTrackerRequiredSpaceBeforeIncreaseStorageTrackerIncreaseStorageQuotaDefaultContributionMarginTargetProjectProfitabilityMetricTypeProjectProfitabilityShowBaselineAndProjectedMultiCustomerProjectCustomerIDWebApiIdentityServerHostNameWebApiIdentityServerClientIdWebApiIdentityServerClientSecretWebApiIdentityServerRequestScopesWebApiAuthenticationRequiredScopesLoginPortalSecurityTypeDefaultTimeSheetViewForNewUsersAgentDetailLoggingNotificationEngineNextInvalidateInvoiceStatusByDueDateTriggerDateTimePlatformActivateVismaIntegrationModuleNotificationPlatformActivateNavIntegrationModuleNotificationPlatformActivateBusinessCentralIntegrationModuleNotificationPlatformActivateMleModuleNotificationServerTimeZoneTrialCRMExpirationDateTrialOutlookExpirationDateTrialOutlookAddInExpirationDateTrialMLEExpirationDateTrialNewResourcePlannerExpirationDateCustomDropDownMaxElementsNotificationEngineNextAnonymizeResignedEmployeesTriggerDateTimeNotificationEngineNextDeleteEmployeesContactDataTriggerDateTimeShowSupplierInvoiceNoOnPersonalExpenseGenerateRecurrencePaymentsNoOfMonthsAheadElectronDesktopTrackerDownloadPathOCIRequestUseInvoiceablesCachingShouldRefreshFullProjectPlanThresholdLimitBelowLoadedRatioShouldRefreshFullProjectPlanThresholdLimitAboveRowsToLazyLoadSiteCreatedAtUsePreRoundingQuantityForInvoiceLineAndDetailAmountCalculationMonthlyPeriodDropdownRangePaymentsAndFinancialPostingsOnFixedPriceStandardContractsGenerateRecurringMilestoneInstancesNoOfMonthsAheadGenerateRecurringProjectProductInstanceNoOfMonthsAheadGenerateHardBookingsNoOfMonthsAheadGlobalTimeLogSupportAccessDefaultPayPeriodKPIMainPageViewShowEmployeeKPIEmployeeRolesShowCompanyKPIEmployeeRolesPlatformProductVersionHideNewInvoiceAndVoucherLineButtonCapacityBudgetingTypeSynchronizeAllocationBudgetWithResourcePlanTotalUseDynamicDistributionOfWorkloadCapacityBudgetingBasisTypeGoogleMapsWebRequestApiKeyGoogleMapsLocationBiasRadiusEUReportPrintLogoFileNameEUReportLogoWidthEUReportShowDanishBusinessPromotionBoardLogoDanishBusinessPromotionBoardLogoFileNameIndexationDetailedReportMaximumTableResultRowsShowOwnerOnProjectContractsShowCustomReportAbsenceExtractionPharmakonResourcePlannerUILazyLoadRowCountSalaryIntegrationOfRegisteredTimeTransferTypeIntercompanyExchangeRateSelectedPollTypeIntercompanyExchangeRateSelectedPeriodLengthInMonthIntercompanyExchangeRateSelectedPeriodTypeJiraServerUrlJiraServerConsumerKeyJiraServerAccessTokenJiraServerOAuthTokenSecretDefaultToDesignSevenForNewUserIntercompanyExchangeRateScheduledMessageSequenceNumberSharePointIntegrationAzureApplicationCertificatePasswordSharePointIntegrationAzureApplicationCertificateNameSharePointIntegrationAzureApplicationClientIdSharePointIntegrationCallbackURLSharePointIntegrationAdminConsentURLSalaryAccountEmployeePostingDateNoOfMonthsAheadSalaryAccountEmployeePostingDateNoOfMonthsBackdateCurrencyMatrixExpenseHandlingMigrationDateShowInternalReferencePhoneNumberFrontPageInternalMessageTimeRegistrationTimestampTypeUseInvoiceLineCostCenterExtendedAlgorithmFrontPageMilestonePeriodFrontPageCompanyTargetPhoenixApiUrlMassTransitPrefixFortnoxIntegrationRateLimitDefaultPersonalWidgetSettingsForNewUsersInvoicingFeeLineStandardDescriptionInvoicingFeeDefaultTypeInvoicingFeeDefaultFeePercentageInvoicingFeeDefaultFeeAmountFiscalYearStartDateInvoicingFeeDefaultVATConfigurationTypeGenerateEmployeeProjectionNoOfMonthsAheadInsightsServiceUrlBody
The new value, always as a JSON string whatever the setting's type (numbers, dates, booleans, enums are written as text). The server sanitizes it by the setting's data type before storing. For FrontPageInternalMessage it is the HTML of the message, with images as URLs from POST /v2/settings/frontpage-image.
Not yet documented: behaviour.
Responses
Success without content: HTTP 200 with the literal JSON body null. Literal JSON null (TafSuccessResult).