Download OpenAPI specification:Download
Use the WiseTime Connect API to build connectors to your application.
name | string Tag name to create. If a tag by this name already exists, the tag will be updated. |
description | string Displayed in the GUI and search functions. An empty (or null) description will be ignored, the description will remain with the previous value instead of replacing it. |
excludeTagNameKeyword | boolean The default behaviour when creating a tag is for the tagName to be added as a keyword for the tag. If excludeTagNameKeyword is set to true, the tagName will not be added as a keyword, unless it is explicitly defined in the additionalKeywords list of the request. |
tagCategoryId | string The ID of the category that this tag belongs to. This field is empty if the tag does not belong to a category. |
path | string Deprecated Default is '/'. Can be used to group tags into logical groups. Deprecated. Will be removed in future. |
managedBy | string Identifier of the resource that manages this tag. |
externalId | string Identifier of the tag in the connected system. The external ID will be sent when time is posted with this tag, so that the posted time can be recorded against the relevant record in the connected system. |
defaultActivityTypeCode | string Default activity type code is applied to time entry with this tag when user haven't assigned any activity type explicitly. |
object (TagMetadataSet) You can assign metadata to a tag. You provide this information as a name-value (key-value) pair. The metadata names are case sensitive and will be displayed in reports, it is recommended the names be descriptive to clarify its meaning. In the case of providing any name-value where the name is already assigned as metadata to the tag, the value will be updated with value supplied. To delete/remove a name-value pair stored as metadata on a tag, you must use the | |
additionalKeywords | Array of strings A tag is applied to a time row if one of its keywords matches text in the time row activity description. Keywords provided via this property will be added to the list of existing keywords for the tag. Existing keywords won't be removed. |
url | string If a URL is provided, the tag will be a clickable link in the WiseTime console. Clicking on the tag will open the URL. |
visibility | string Enum: "PUBLIC" "PRIVATE" Defines tag visibility. Default is PUBLIC. Private matters are only accessible by explicitly authorized team members. |
assigneeExternalIds | Array of strings IDs in external system of users associated with the matter. |
{- "name": "string",
- "description": "string",
- "excludeTagNameKeyword": true,
- "tagCategoryId": "string",
- "path": "string",
- "managedBy": "string",
- "externalId": "string",
- "defaultActivityTypeCode": "string",
- "metadata": {
- "Billing Group": "billable"
}, - "additionalKeywords": [
- "string"
], - "url": "string",
- "visibility": "PUBLIC",
- "assigneeExternalIds": [
- "string"
]
}
{ }
Array of objects (UpsertTagRequest) |
{- "tags": [
- {
- "name": "string",
- "description": "string",
- "excludeTagNameKeyword": true,
- "tagCategoryId": "string",
- "path": "string",
- "managedBy": "string",
- "externalId": "string",
- "defaultActivityTypeCode": "string",
- "metadata": {
- "Billing Group": "billable"
}, - "additionalKeywords": [
- "string"
], - "url": "string",
- "visibility": "PUBLIC",
- "assigneeExternalIds": [
- "string"
]
}
]
}
{- "errors": [
- {
- "index": 0,
- "errorDescription": "string"
}
]
}
Provide the metadata names that you want to delete.
tagName required | string The tag from which to delete the tag metadata. |
metadataNames required | Array of strings The name(s) of the tag metadata to delete. |
{- "tagName": "string",
- "metadataNames": [
- "string"
]
}
{ }
tagName | string The tag to which to add the keywords. |
externalId | string The identifier of the tag in the connected system. |
additionalKeywords | Array of strings One or more new keywords for the tag. Keywords provided via this property will be added to the list of existing keywords for the tag. Existing keywords won't be removed. |
{- "tagName": "string",
- "externalId": "string",
- "additionalKeywords": [
- "string"
]
}
{ }
tagName | string The tag from which to delete the keywords. |
keyword | string The keyword to delete. |
{- "tagName": "string",
- "keyword": "string"
}
{ }
Array of objects (TagCategory) An array of tag categories to be created/updated. |
{- "tagCategories": [
- {
- "id": "string",
- "externalId": "string",
- "label": "string",
- "description": "string",
- "keywords": [
- "string"
]
}
]
}
{- "tagCategories": [
- {
- "id": "string",
- "externalId": "string",
- "label": "string",
- "description": "string",
- "keywords": [
- "string"
]
}
]
}
externalId | string The ID of the tag category in the connected system, for the tag category to delete |
{- "externalId": "string"
}
{ }
Initiates a sync session and responds with syncSessionId that can be used for further activity types uploads within the session. While activity types can be sent to WiseTime in batches without a sync session, starting a sync session for the batch uploads means that WiseTime will be able to detect activity types that are no longer in the connected system, and delete these when the sync session is completed by the connector.
{- "syncSessionId": "string"
}
Completes a sync session so its syncSessionId can not be used anymore. All the activity types that were lastly created/updated before the session start will be deleted.
syncSessionId | string Sync session identifier that can be used for the patch uploads or session completion/cancellation. |
{- "syncSessionId": "string"
}
Cancels a sync session so its syncSessionId can not be used anymore. This API call has no impact on activity types.
syncSessionId | string Sync session identifier that can be used for the patch uploads or session completion/cancellation. |
{- "syncSessionId": "string"
}
Array of objects (ActivityType) An array of activity types to be created/updated. | |
syncSessionId | string Optional. Identifier of the sync session. |
{- "activityTypes": [
- {
- "code": "string",
- "label": "string",
- "description": "string",
- "enableIfNew": true,
- "reenableIfArchived": true
}
], - "syncSessionId": "string"
}
{- "errors": [
- {
- "index": 0,
- "errorDescription": "string"
}
]
}
Use this endpoint to fetch posted time for processing. This is a long polling call (an alternative to using the webhook mechanism). The connection will be held open for a maximum of 60 seconds or until there is a new posted time event. When calling this method without first calling the /postedtime/registerfetchclient endpoint, recording posted time for fetching will implicitly be turned on.
limit | integer Maximum amount of posted time entries to retrieve. If not set, the API will return up to a maximum of 25 entries for each request. |
[- {
- "callerKey": "string",
- "groupId": "string",
- "description": "string",
- "formattedNarrative": "string",
- "totalDurationSecs": 0,
- "totalDurationHours": 0.1,
- "tzOffsetMins": 0,
- "localDate": "2019-08-24",
- "timestamp": 0,
- "groupName": "string",
- "narrativeType": "NARRATIVE_AND_TIME_ROW_ACTIVITY_DESCRIPTIONS",
- "status": "PENDING",
- "submissionTime": 0,
- "tags": [
- {
- "name": "string",
- "path": "string",
- "description": "string",
- "externalId": "string"
}
], - "timeRows": [
- {
- "activity": "string",
- "description": "string",
- "activityHour": 0,
- "firstObservedInHour": 0,
- "durationSecs": 0,
- "submittedDate": 0,
- "modifier": "string",
- "activityTypeCode": "string",
- "source": "WT_DESKTOP",
- "timezone_name": "string",
- "timezone_offset_min": 0
}
], - "activityType": {
- "code": "string",
- "label": "string"
}, - "user": {
- "userId": "string",
- "name": "string",
- "email": "string",
- "externalId": "string",
- "businessRole": "string",
- "experienceWeightingPercent": 0
}, - "originatingUser": {
- "userId": "string",
- "name": "string",
- "email": "string",
- "externalId": "string",
- "businessRole": "string",
- "experienceWeightingPercent": 0
}, - "durationSplitStrategy": "DIVIDE_BETWEEN_TAGS"
}
]
Returns all time groups for team in descending order of submission time starting from now. This is not a long polling endpoint.
limit | integer Maximum number of items to return. Should be between 1 and 500. Default is 100. |
submittedBefore | integer Filter response to return only time groups submitted before requested timestamp. If empty - returns latest time groups. Note that the submisisonTime may be the same for multiple time groups as users may submit more than 1 time group as a single operation. Measured in milliseconds since the Epoch. |
[- {
- "callerKey": "string",
- "groupId": "string",
- "description": "string",
- "formattedNarrative": "string",
- "totalDurationSecs": 0,
- "totalDurationHours": 0.1,
- "tzOffsetMins": 0,
- "localDate": "2019-08-24",
- "timestamp": 0,
- "groupName": "string",
- "narrativeType": "NARRATIVE_AND_TIME_ROW_ACTIVITY_DESCRIPTIONS",
- "status": "PENDING",
- "submissionTime": 0,
- "tags": [
- {
- "name": "string",
- "path": "string",
- "description": "string",
- "externalId": "string"
}
], - "timeRows": [
- {
- "activity": "string",
- "description": "string",
- "activityHour": 0,
- "firstObservedInHour": 0,
- "durationSecs": 0,
- "submittedDate": 0,
- "modifier": "string",
- "activityTypeCode": "string",
- "source": "WT_DESKTOP",
- "timezone_name": "string",
- "timezone_offset_min": 0
}
], - "activityType": {
- "code": "string",
- "label": "string"
}, - "user": {
- "userId": "string",
- "name": "string",
- "email": "string",
- "externalId": "string",
- "businessRole": "string",
- "experienceWeightingPercent": 0
}, - "originatingUser": {
- "userId": "string",
- "name": "string",
- "email": "string",
- "externalId": "string",
- "businessRole": "string",
- "experienceWeightingPercent": 0
}, - "durationSplitStrategy": "DIVIDE_BETWEEN_TAGS"
}
]
WiseTime will start recording posted time events that can be fetched via the /postedtime endpoint.
{ }
{ }
WiseTime will stop recording posted time events for fetch when users post time to your team.
{ }
{ }
This is intended for use with the fetch mechanism only. Not to be used with webhooks. If this endpoint isn't called for a time group within a certain amount of time after fetching it the time group will be made available again for fetching.
timeGroupId | string ID of the time group to be updated. |
status | string Enum: "SUCCESS" "FAILURE" "RETRIABLE_FAILURE" This field describes the status of the posted time group. On SUCCESS the time group will be marked as successfully posted. On FAILURE the time group will be marked as failed and the attached message will displayed to the user. On RETRIABLE_FAILURE the time group will be marked as temporary failed and scheduled for retry. The attached message might be displayed to the user. |
message | string Reason for the failure, will be displayed to the user. |
externalId | string An identifier in the connected system that relates to the posted time group. |
{- "timeGroupId": "string",
- "status": "SUCCESS",
- "message": "string",
- "externalId": "string"
}
WiseTime will call your webhook with a payload of the posted time information. See the posted time webhook documentation for details. Each team is limited to one webhook callback.
callbackUrl required | string The webhook URL that WiseTime will call to notify you of user posted time. |
callerKey | string WiseTime will send this key back to you when it calls your webhook. That way you can authenticate that the request comes from WiseTime. |
{- "callbackUrl": "string",
- "callerKey": "string"
}
{ }
{- "callerKey": "string",
- "groupId": "string",
- "description": "string",
- "formattedNarrative": "string",
- "totalDurationSecs": 0,
- "totalDurationHours": 0.1,
- "tzOffsetMins": 0,
- "localDate": "2019-08-24",
- "timestamp": 0,
- "groupName": "string",
- "narrativeType": "NARRATIVE_AND_TIME_ROW_ACTIVITY_DESCRIPTIONS",
- "status": "PENDING",
- "submissionTime": 0,
- "tags": [
- {
- "name": "string",
- "path": "string",
- "description": "string",
- "externalId": "string"
}
], - "timeRows": [
- {
- "activity": "string",
- "description": "string",
- "activityHour": 0,
- "firstObservedInHour": 0,
- "durationSecs": 0,
- "submittedDate": 0,
- "modifier": "string",
- "activityTypeCode": "string",
- "source": "WT_DESKTOP",
- "timezone_name": "string",
- "timezone_offset_min": 0
}
], - "activityType": {
- "code": "string",
- "label": "string"
}, - "user": {
- "userId": "string",
- "name": "string",
- "email": "string",
- "externalId": "string",
- "businessRole": "string",
- "experienceWeightingPercent": 0
}, - "originatingUser": {
- "userId": "string",
- "name": "string",
- "email": "string",
- "externalId": "string",
- "businessRole": "string",
- "experienceWeightingPercent": 0
}, - "durationSplitStrategy": "DIVIDE_BETWEEN_TAGS"
}
WiseTime will stop calling your webhook when users post time to your team.
{ }
{ }
object A dictionary of client runtime environment properties. | |
connectorType | string The paired system type that the connector supplies activity data to. |
connectorVersion | string The connector version. |
connectorLibraryVersion | string The WiseTime connector library version that the connector is using. |
clientTimestamp | integer <int64> The current system timestamp from epoch of the client environment. |
clientTimeZoneOffset | string The local time offset of the environment that the client is running within. |
{- "environment": {
- "javaVmSpecificationVersion": 1.8,
- "javaVmVersion": 2.8,
- "javaVmName": "IBM J9 VM",
- "clientOs": "linux"
}, - "connectorType": "string",
- "connectorVersion": "string",
- "connectorLibraryVersion": "string",
- "clientTimestamp": 0,
- "clientTimeZoneOffset": "string"
}
{- "serviceId": "string",
- "serviceKey": "string",
- "serviceIdExpiry": "2019-08-24T14:15:22Z",
- "serviceSessionToken": "string",
- "groupName": "string",
- "regionName": "string",
- "connectorConfiguration": {
- "ADD_SUMMARY_TO_NARRATIVE": true
}
}
errorType | string Enum: "UNKNOWN" "TARGET_UNREACHABLE" "TARGET_AUTH_FAILURE" "TARGET_PERMISSIONS_FAILURE" "TARGET_SUBSCRIPTION_FAILURE" Type of non-transient health check failure that occurred. |
userErrorMessage | string Error message shown to team members when trying to post time (until the failure is rescinded / cleared). Optional, will overwrite the default error message of the provided errorType. |
{- "errorType": "UNKNOWN",
- "userErrorMessage": "string"
}