Overwrite a saved filter view
Replaces a saved filter view's name, default flag and complete set of filter values.
Full replacement of the view whose FilterViewId is in the body: the name and default flag are overwritten, every stored value is deleted and the sent values are inserted (an empty list clears the view). The view's owner and page never change — the route's pageIdentifier is only used to clear the default flag on the caller's other views of that page. Values hidden by GET (filters hidden on the page) are not sent back by a GET-then-PUT client and are therefore deleted.
Use it to:
- Rename a saved view, make it the default, or save the current selections over it
Not for:
- Changing one value — there is no partial update; send the complete set
- Moving a view to another page — the stored page is not updated
Behaviour:
- Idempotent.
- Same body twice gives the same stored state.
- Safe to retry.
- Duplicates: n/a
- Side effect: Overwrites Name and IsDefault; sets LastModified / LastModifiedBy to now / the caller's EmployeeID.
- Side effect: Deletes every stored value of the view and inserts the sent ones.
- Side effect: IsDefault = true: clears IsDefault on the caller's other views of the ROUTE's page.
- On failure: Not transactional: the row update and the value delete run before the value insert. If the insert fails (e.g. a Value longer than 255 characters, or an unknown FilterViewId), the view keeps its new name but has LOST its values.
- Changes are visible to the next read immediately.
Call first: GET /v2/filter-view/{pageIdentifier}
Next: GET /v2/filter-view/{pageIdentifier}
See also: POST /v2/filter-view/{pageIdentifier}, DELETE /v2/filter-view/{id}
Not yet documented: behaviour → side effects on failure; examples.
curl -X PUT "https://app3.timelog.com/your-account/api/v2/filter-view/Home" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"FilterViewId": 123,
"Name": "John Doe",
"IsDefault": true,
"FilterValues": [
{
"Name": "John Doe",
"Value": "example_string",
"IsInclusive": true,
"FilterType": "SingleSelect"
}
]
}'
import requests
import json
url = "https://app3.timelog.com/your-account/api/v2/filter-view/Home"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"FilterViewId": 123,
"Name": "John Doe",
"IsDefault": true,
"FilterValues": [
{
"Name": "John Doe",
"Value": "example_string",
"IsInclusive": true,
"FilterType": "SingleSelect"
}
]
}
response = requests.put(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://app3.timelog.com/your-account/api/v2/filter-view/Home", {
method: "PUT",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"FilterViewId": 123,
"Name": "John Doe",
"IsDefault": true,
"FilterValues": [
{
"Name": "John Doe",
"Value": "example_string",
"IsInclusive": true,
"FilterType": "SingleSelect"
}
]
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"FilterViewId": 123,
"Name": "John Doe",
"IsDefault": true,
"FilterValues": [
{
"Name": "John Doe",
"Value": "example_string",
"IsInclusive": true,
"FilterType": "SingleSelect"
}
]
}`)
req, err := http.NewRequest("PUT", "https://app3.timelog.com/your-account/api/v2/filter-view/Home", 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/filter-view/Home')
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 = '{
"FilterViewId": 123,
"Name": "John Doe",
"IsDefault": true,
"FilterValues": [
{
"Name": "John Doe",
"Value": "example_string",
"IsInclusive": true,
"FilterType": "SingleSelect"
}
]
}'
response = http.request(request)
puts response.body
{}
{
"Code": 200,
"Details": [
"The value 'test' is not valid for PageIdentifier.",
"'Filter View Id' must not be empty.",
"'Name' must not be empty."
],
"Message": "Invalid model state error.",
"Parameters": "model: {"FilterViewId":0,"Name":null,"IsDefault":false,"FilterValues":null}",
"Url": "https://app{server-number}.timelog.com/{account}/api/v2/filter-view/test"
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
{
"error": "Internal Server Error",
"message": "An unexpected error occurred on the server",
"code": 500,
"requestId": "req_1234567890"
}
/v2/filter-view/{pageIdentifier}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.A PageIdentifier member name or integer. NOT checked against the view's stored page; used only for the default-flag reset.
Allowed values: see PageIdentifier.
The media type of the request body
The view to overwrite (FilterViewRead.FilterViewId). Identifier of this object, unique per TimeLog site. - No view has this ID — The UPDATE matches no row; with an empty FilterValues list the call still answers 204.
New display name.
New default flag. Omitted = false (the view stops being the default). - IsDefault = true — Clears IsDefault on the CALLER's other views of the ROUTE's page — not on the view owner's / the view's own page when those differ.
The complete new value set. Every stored value of the view is deleted first, then these are inserted; an empty list clears the view. - FilterValues omitted or null — No validator rule; the adapter iterates it and fails with HTTP 500 Code 100. - Values were read with GET and sent back — GET hides values of filters hidden on the page; a GET-then-PUT round trip therefore deletes those stored values. > Not yet documented: multiple.
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
A PageIdentifier member name or integer. NOT checked against the view's stored page; used only for the default-flag reset.
Allowed values: see PageIdentifier.
HomeDetailedTimesheetWeeklyTimesheetProjectExpenseTravelExpensesRegistrationEventsImportEmployeeExpensesCRMCustomerCRMContactCRMEventCRMOpportunityCRMRelationCRMCustomerNewCRMContactNewSearchProjectNewProjectNewQuickProjectImportFromMSProjectDebtorListInvoicesDebtorListVouchersSearchInvoiceTransferInvoicesInvoiceNewVoucherNewEmployeesResourcePlannerBookedVsRegisteredApproveTimeReportsApproveExpensesNewEmployeeCVOverviewNewCVSkillMatrixReportsCRMHomeStartCRMPipelineCRMReportCRMJournalCRMLeadInboxProjectSettingProjectTaskPlanViewProjectTaskBudgetViewProjectResourceViewProjectGanttViewProjectResourceGroupProjectPaymentPlanProjectBudgetOverviewProjectDeprecationStatusAmountProjectDeprecationStatusHourProjectInvoiceOverviewProjectDocumentsProjectStatusReportTableViewReportBoxViewExpenseReportSubmitPrintKeyPerformanceIndexProjectPlansProjectAssignmentsWorkloadCustomerSignOffAbsenceSpecificationAbsenceProductivityAbsenceReportFlexBalanceAllEmployeesAbsenceSpecificationAllEmployeesEmployeeOverviewWorkCustomersWorkSingleCustomerEmployeeOverview2HeadCountAccountingProjectsWorkInProgressPaymentPlansOverviewCRMEventNewCRMOpportunityNewBudgetCompanyBudgetEmployeesContributionMarginAccountingMonthlyAccountingCustomersAccountingProjectsRegistrationTypesBalanceProjectBudgetsProjectOverviewAllocatedActualWorkTimeRegistrationsTimeRegistrationsNewActiveProjectTasksBudgetFollowUpMilestonesGanttChartProjectFactorWorkProjectsWorkProjectTypesWorkProjectCategoriesWorkTaskTypesProjectPortfolioProjectCategoriesAnalysisChangeHourlyRatesOnAllocationsAdjustBillableNonBillableRedistributionOfTimeMoveAllocationsDepartmentProjectsEmployeesWorkDepartmentsReportApproveTimeReportsStatusForTimeReportsReportApproveExpensesReportBalanceExpensesTimeRegistrationsDetailedTimeRegistrationsSummarisedTimelogCRMWorkIndustriesPivotReportTimeRegistrationsPerProjectEmployeeContributionAnalysisInvoicingPercentageEmployeeEfficiencyInternalExternalAnalysisEmployeeKeyFiguresEmployeeTimeCustomersAndProjectsEmployeeTimeProjectTypesAndTaskTypesEmployeeTimeHourlyRatesLastTimeRegistrationAccuracyInTimeTrackingDataExtractionProjectsDataExtractionTasksDataExtractionAllocationsDataExtractionInstallmentsDataExtractionProjectBaselineDataExtractionCustomersDataExtractionInvoicesDataExtractionInvoiceLinesDataExtractionExpensesDataExtractionTravelExpensesDataExtractionMileageDataExtractionAbsenceAndSalaryCodesExportProjectsReportImportOfExpensesInvoiceLinesExportExportToKontekPAXmlExportToVismaLonSuperTimesheetEmployeeOverviewTableViewEmployeeOverviewBoxViewSalaryExtractionForLessorLonTimeLogTrackerInstallEditEmployeeCVEventsCustomersAdvanceETCReportSubmitEmployeeCVIntegrationLogWorkEmployeeTypesStatusReportsSystemAdministrationRegistrationTimeRegistrationSettingSystemAdministrationRegistrationExpenseSettingSystemAdministrationEmployeeSettingSystemAdministrationRegistrationAllowanceTypesSystemAdministrationRegistrationPaymentMethodSystemAdministrationRegistrationMileageRatesSystemAdministrationRegistrationExpenseTypesSystemAdministrationApprovalSettingSystemAdministrationCRMSettingSystemAdministrationCRMStandardValuesSystemAdministrationCRMNotificationsSystemAdministrationCRMExtranetSystemAdministrationCRMIndustryCodesSystemAdministrationCRMGroupsSystemAdministrationCRMStatusesSystemAdministrationCRMEventTypesSystemAdministrationCRMRelationsSystemAdministrationCRMBarriersSystemAdministrationCRMOpportunityStatusSystemAdministrationCRMOpportunityTypesSystemAdministrationPMProjectSettingSystemAdministrationPMStandardValuesSystemAdministrationPMProjectInvoicingSystemAdministrationPMNotificationsSystemAdministrationPMProjectTypesSystemAdministrationPMProjectCategoriesSystemAdministrationPMTaskTypesSystemAdministrationPMProjectStagesSystemAdministrationPMProjectTemplatesSystemAdministrationPMETCSettingSystemAdministrationInvoiceSettingSystemAdministrationInvoiceStandardValuesSystemAdministrationInvoiceTemplatesSystemAdministrationInvoiceHourlyRatesSystemAdministrationInvoiceCostPricesSystemAdministrationInvoicePaymentTermsSystemAdministrationInvoiceAccountingPeriodSystemAdministrationInvoiceProductNumberSystemAdministrationInvoiceCurrencySettingSystemAdministrationInvoiceInvoiceLineExportSettingSystemAdministrationInvoiceConfigurationModelOfCalculationSystemAdministrationEmployeePermissionSystemAdministrationEmployeeTypesSystemAdministrationEmployeeNormHoursSystemAdministrationEmployeeHolidayCalendarSystemAdministrationEmployeeSkillSettingSystemAdministrationEmployeeCompetenciesSystemAdministrationReportActivationSystemAdministrationReportAdvancedSettingSystemAdministrationReportKPISettingSystemAdministrationIntegrationAPISettingSystemAdministrationIntegrationSystemIntegrationSystemAdministrationIntegrationStandardFileExportSystemAdministrationIntegrationImportOfStandardFieldSystemAdministrationGeneralSettingDepartmentsSystemAdministrationGeneralSettingNumberSeriesSystemAdministrationGeneralSettingSecurityAccessEditEmployeeEmployeeOverviewBaseShowMyCustomersCRMHomeCompanyCRMHomeEmployeeSystemAdministrationGeneralSettingRootPageSystemAdministrationGeneralSettingLicenseSettingSystemAdministrationEmployeeNotificationPrintJournalChronologicallyEditCustomerSystemAdministrationGeneralSettingFrontPageProjectPlanProgressCRMEditEventExternalTransactionLogSystemAdministrationEmployeeSalaryCodesCRMRelationNewCRMRelationEditCRMOpportunityEditCRMContactEditFrontPageInvoiceEditInvoiceBookedVoucherEditVoucherBookedCreditNoteNewCreditNoteEditCreditNoteBookedReminderNewReminderEditReminderBookedCRMReportLastUpdatedCustomerCRMReportSalesPipelineCRMReportEventOverviewPersonalProfilePersonalPreferenceChangePasswordProjectAddResourceToTasksProjectAddMultipleResourcesToTaskProjectAddOneResourceProjectUpdateProjectStartAndEndDatesTimeRegistrationDrillDownNewHourlyRateProjectAddMultipleInstallmentsErrorListContractOverviewAccessDeniedProjectFactorDetailsExportSDLonSalaryExtractionForHogiaProjectPendingBookingActionTimeReportUserDefinedSystemAdministrationReportProjectFactorSettingProjectOverviewOldProcessSidePanelCustomLinkSidePanelCustomHelpSidePanelSystemAdministrationEmployeeRolesMatrixesEditProjectExpenseEditTravelExpenseCRMSupplierNewSystemAdministrationIntegrationReportingAPISettingSystemAdministrationIntegrationReportingAPILogTestPageReportMVCTestPageReportNetWebFormTestPageReportClassicASPSystemAdministrationGeneralSettingNotificationSettingsNewInvoiceWithProjectNewInvoiceWithCustomerNewInvoiceWithCustomerAndProjectNewVoucherWithProjectNewVoucherWithCustomerNewCreditNoteWithInvoiceNewReminderWithInvoiceReportProjectSumFiguresSalaryExtractionForAccobatInvoiceLinesExportForAccobatReportWorkInProgressUnitsReportAtkiCopyProjectConsultantHoursReportEmployeeHoursReportHempelInvoiceSpecificationReportImportExpensesDevelcoEmployeeOverviewExportEUProjectsReportEmployeeProductivityReportVoucherSystemStatementReportEdlundInvoiceSpecificationReportGlobeteamExportRegisteredTimeReportGlobeteamExportTasksReportAddProjectTemplateIntoExisitingProjectExportNonInvoicedHoursEmployeeOverviewReportAdjustAllocationWithStandardHourlyRatesOneClickInvoicingLogProjectProfitabilityDataImporterInvoiceAccountingPeriodProjectTaskPlanHourDataExtractionProjectContractBaselineInvoice_InvoiceLogInvoiceArchiveSystemAdministrationProductListErrorExpensesBatchAdjustProjectPaymentsSystemAdministrationInvoiceUnitTypeDataExtractionProjectSubContractSystemAdministrationEmployeeCVStatusBasicoDataExtractionForNavTimeTrackingBaseSystemAdministrationPMMilestoneTypesInvoiceLineExportReportExportInvoiceDataReportAnalysisPivotReportEU_ProjectsReportEnhancedSystemAdministrationPlatformPaymentFormPlatformSignupStepsSystemAdministrationPlatformLicenceOverviewSystemAdministrationPlatformInvoiceOverviewSystemAdministrationPlatformActionLogSalarySpecificationReportSystemAdministrationPlatformAccountSpecificationsSystemAdministrationPlatformAccountSettingsSystemAdministrationPlatformInvoiceInformationCashFlowReportFortnoxExportToCronaLonProjectTemplateSyncChangesToLinkedProjectsReportPlatformSignupSalaryManagementOverviewSalaryManagementNewAdjustmentSystemAdministrationEmployeeSalaryGroupSalaryAccountSpecificationSystemAdministrationEmployeeSalaryAccountTypeSystemAdministrationEmployeeAbsenceCodesSystemAdministrationEmployeeAbsenceCodeTypeSystemAdministrationInvoiceProductNumberDimensionMappingSystemAdministrationEmployeeSalaryAccountApproveProjectTimeReportsTransferSalaryFileDownloadTransferEmployeeSalarySalaryPeriodsSystemAdministrationEmployeeSalaryPeriodsSalaryTransferCheckSystemAdministrationPlatformCustomerSystemOwnerGDPRDataSearchReportProjectPlanAmountAddSalesShareDetailedMileageReimbursementReportExtranetLoginExtranetMainExtranetProjectOverviewExtranetTimeRegistrationsExtranetInvoicesExtranetStatusReportsModalWeeklyTimesheetAddProjectTasksModalWeeklyTimesheetNewSubTaskModalDetailedTimesheetNewSubTaskModalDebtorListDrillDownModalCrmImportCustomersModalCrmSendEmailModalCrmCreateInstallmentsModalProjectSaveAsTemplateModalProjectSendEmailModalProjectNewBaselineModalProjectCalculatorModalProjectDrillDownModalProjectAddResourceToTaskModalProjectAddResourcesToTaskModalProjectAddOneResourceModalProjectAdjustTimePlanModalProjectMoveTaskModalProjectUpdateProjectDatesModalProjectMoveAllocationModalProjectNewHourlyRateModalProjectAddMultipleInstallmentsModalResourcePlannerAddToTaskModalResourcePlannerSetWorkloadModalResourcePlannerRemoveBookingsModalCvAddLanguageModalCvAddCompetencesModalCvAddEducationModalCvAddCourseModalCvAddProjectModalCvActivityModalReportWorkloadAddTasksModalReportRedistributionOfTimeModalHourlyRateNewPriceListModalHourlyRateNewCustomerPriceListModalHourlyRateAdjustPriceGroupsModalAccountingPeriodAddNewModalSalaryCopyGroupModalRedistributionOfTimeSplitterModalCrmImportCustomersStepTwoModalCrmImportCustomersStepThreeModalCrmImportCustomersStepFourModalCrmImportCustomersStepFiveProjectInvoiceSettingsModalCreateContractModelModalProjectAddResourceToMultipleMilestonesModalProjectCopyTasksAndMilestonesInvoiceExportFileListSystemAdministrationGeneralSettingLegalEntitySystemAdministrationBasicPlusFeatureSettingAdvancedResourcePlannerProjectManagerOverviewSalesBudgetGenericBudgetValuesSalesReportContributionRatioReportEmployeeCapacityResourceManagementReportAbsenceCalendarCorporateHolidayCalendarMilestonesReportNewDebtorListInvoiceNewDebtorListVoucherSalaryAccountBalanceSectionSalaryFlexAccountSpecificationSystemAdministrationGeneralSettingPersonalDataProtectionSalaryAccountSpecificationAllModalDeleteProjectNavBarExportReportNitroSAPExportEmployeeExpenseEditEmployeeExpenseEmployeeExpenseChangeCurrencyModalExpenseVisualizePicturesModalModalDeleteExpenseProjectExpenseChangeCurrencyModalAgentOverviewReportTransferEmployeeExpenseProjectAllExpensesImportProjectExpensesAbsenceAnalysisReportSystemAdministrationGeneralSettingSystemStartDateAbsenceAnalysisReportDrillDownExpenseOverviewReportModalMilestoneChangeOwnerIntercompanyInvoiceIntercompanyProjectProfitabilityReportCreateProjectFromTemplateMileageRegistrationEditMileageRegistrationModalDeleteMileageRegistrationProjectRecurringProductSaleIndexationRecurringContractsAndProductsMilestoneInlineEditSystemAdministrationRegistrationCarsIndexationOfHourlyRateBaseIndexationOfHourlyRateByPercentageIndexationOfPriceListsImportDataFileQualityAssuranceReportSystemAdministrationEmployeeSalaryRuleNewResourcePlannerSystemAdministrationResourceManagementSettingModalImportPublicHolidayHistoricalIndexedHourlyRatesDataExtractionAbsenceExpenseDownloadAttachmentsSystemAdministrationOneClickInvoicingInvoiceTemplateIntegrationFortnoxAddNewProcessingSystemAdministrationPMContractTypesAssignCustomersToMCPContractModalLinkCustomerWithIntegrationModalLinkContactWithIntegrationDesignSevenFrontPageDesignSevenReportsSystemAdministrationIntegrationSharePointCallbackSystemAdministrationIntegrationSharePointConnectRedirectPiccaNavRevenueExportDesignSevenSearchProjectDesignSevenEditEmployeeCompetenceDesignSevenMoveHoursRevenueForecastingReportProjectPortfolioOverviewWidgetOverdueInvoicesWidgetPlannedAbsenceWidgetInvoicedPerMonthWidgetBudgetRemainingWidgetProjectEconomyHealthWidgetAverageHourlyRateWidgetTimeTrackingDelayWidgetVacationCalculationWidgetHourKPIWidgetHourKPIWithBARWidgetHourKPIHoursOnlyWidgetBillablePercentageWidgetExternalPercentageWidgetPersonalPlanSystemAdministrationAccountingPeriodPhoenixSystemAdministrationIntercompanyExchangeRateSettingMercuriExportOfMonthlyProjectFiguresReportMercuriExportOfEmployeeFiguresReportPhoenixProjectManagementPhoenixDashboardsOverviewPhoenixDashboardsViewNotSpecifiedBody
The view to overwrite (FilterViewRead.FilterViewId).
Identifier of this object, unique per TimeLog site.
- No view has this ID — The UPDATE matches no row; with an empty FilterValues list the call still answers 204.
New display name.
New default flag. Omitted = false (the view stops being the default).
- IsDefault = true — Clears IsDefault on the CALLER's other views of the ROUTE's page — not on the view owner's / the view's own page when those differ.
The complete new value set. Every stored value of the view is deleted first, then these are inserted; an empty list clears the view.
-
FilterValues omitted or null — No validator rule; the adapter iterates it and fails with HTTP 500 Code 100.
-
Values were read with GET and sent back — GET hides values of filters hidden on the page; a GET-then-PUT round trip therefore deletes those stored values.
Not yet documented: multiple.