This guide is designed to provide you with all the information you need to successfully integrate and work with our API. It includes detailed descriptions of endpoints, request and response formats, error codes, and practical examples to help you get started. Please note that our API is continually evolving to introduce new features and improvements. We regularly update this documentation to reflect these changes, so we encourage you to revisit it frequently to stay informed about the latest updates and enhancements.
If you have questions please email support@startwoven.com
Getting Started
Please create an account and log in. Once authenticated, navigate to the Products page, select the Operations API and create a subscription. Once approved you'll be notified in which you can then proceed with your API development.
Authentication
Authentication and Authorization
To get started use theAuthenticateendpoint, which will authenticate you to Woven. Pass an empty string for theCompanyIDproperty and leavePlatformset to 1 which is the default value indicating the request is being sent via API. Your login options will be returned with the response and from there you can see the Companies you have access to. Find the company you desire to authenticate to and update theCompanyIDin your request body and send it again. Once done correctly you should receive a successful response.
If you have access to only one company, you can pass the CompanyID with the initial request to log directly into that account.POST Authenticate
Request Description
This HTTP POST request is used to retrieve tokens for authentication. The request requires a payload with the following parameters in raw request body type:
POST api/tokens/v2{"Username": "{your_username}","Password": "{your_password}","Platform": 1, // 1 = API (default)"CompanyID": "{your_CompanyID}"}
The "Platform" parameter is an enum with the following options: API = 1, Web = 2, IOS = 3, Android = 4.
Response JSON Schema
{"type": "object","properties": {"RefreshToken": { "type": ["string", "null"] },"RefreshTokenExpirationDate": { "type": ["string", "null"] },
"TwoFactorAuthentication": { "type": ["string", "null"] },"EmployeeID": { "type": "string" },
"AccessToken": { "type": ["string", "null"] },"TokenExpirationDate": { "type": "string" },
"CompanyID": { "type": "string" },"BrandID": { "type": "string" },
"FirstName": { "type": ["string", "null"] },"LastName": { "type": ["string", "null"] },
"ForcePasswordChange": { "type": "boolean" },"ForceEmployeeProfileImageAdd": { "type": "boolean" },
"RequireOnboarding": { "type": "boolean" },"TeamMemberProfileImageEnabled": { "type": "boolean" },
"RequireTermsSigned": { "type": "boolean" },"HasMultipleCompanyAccess": { "type": "boolean" },
"CompanyName": { "type": ["string", "null"] },"CompanyTimeZone": { "type": ["string", "null"] },
"FailedLoginAttempt": { "type": "boolean" },"AccountStatus": { "type": "integer" },
"CompanyLoginOptions": {"type": "array","items": {"type": "object",
"properties": {"CompanyID": { "type": "string" },"CompanyName": { "type": "string" },"BrandFriendlyName": { "type": "string" },"IsBrandCompany": { "type": "boolean" },
"BrandLogoUrl": { "type": "string" },"AccountStatus": { "type": "integer" }}
}},
"UserName": { "type": ["string", "null"] },
"IsBrandUser": { "type": "boolean" },"PositionName": { "type": ["string", "null"] },
"PrimaryLocationID": { "type": "string" },"PrimaryLocationName": { "type": ["string", "null"] },
"BrandName": { "type": ["string", "null"] },"EmployeeProfileImageURL": { "type": ["string", "null"] },
"CreatedOn": { "type": "string" },"EmployeeStatus": { "type": "integer" },"IsBrandCompanyPerson": { "type": "boolean" }}}
Webhooks
If you want to receive data from Woven, the account you'd like to receive data from will have to setup webhooks within Woven. This is not something that can be done externally using our API.
