|39188|The API Guide|

|44802|Ask AI| (experimental)

|39189|API Overview|

|39190|The Workamajig API was developed around| |39191|REST|.|39192| The API is designed to have resource-oriented URLs and to use HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which can be understood by off-the-shelf HTTP clients. Currently the Workamajig API only supports GET, POST, PUT and DELETE.|

|39193|We support ||39194|cross-origin resource sharing||39195| to allow you to interact securely from a client-side web application.|

|39196|JSON will be returned from all responses from the API, including errors.|

|39197|NOTE:||39198| Please contact |api@workamajig.com|39199| if you need further assistance.|


|39200|Requirements / Support|

|39201|Currently, the Workamajig API will only run on IIS 7 or higher. |

|39202|Why don't why we support IIS 6 ?|

|39203|IIS 6 is not supported because the POST verb cannot be configured to interact with Adobe's AMF needed to interact with the flash.|

|39204|Workamajig Minimum Version: 10.5.8.7|

|39205|REST vs Others|

|39191|REST|

  1. |39206|Stateless|
  2. |39207|transport is browser neutral|
  3. |39208|AJAX friendly|
  4. |39209|URL's a definitive and can be expansive|
  5. |39210|return structure is any format|
  6. |39211|Adheres to an industry standard|

|39212|SOAP|

  1. |39213|statefull|
  2. |39214|XML is the protocol|
  3. |39215|Single Page|
  4. |39216|Will only support GET or POST|
  5. |39217|Only allows for one url|
  6. |39210|return structure is any format|

|39218|Stateful vs Stateless|

|39219|API's should be stateless because a GET on a given URI should always return the same result.|

|39220|Authentication|

|39221|All API clients will need to generate an api access token and user token. See the keys section below for instructions on how to obtain your tokens.|

|39222|Workamajig is a user centric application. In order to maintain continuity you will need to either use an existing user's api user token or to create a brand new user and generate a user token. All rights assigned to this user will be maintained when using an API call. If the user does not have the proper security rights you will receive a 401 (unauthorized) error response. See the tokens section below for instructions how to obtain your token(s).|

|39223|Workamajig Classic|

|39224|API Access Token|

|39225|To obtain an api access token you'll need an admin to log into your Workamajig instance and generate a token under the API Settings. To get to the API Settings:|

  1. |39226|Log into Workamajig|
  2. |39227|Click on the Main Menu|
  3. |39228|Click on Admin|
  4. |39229|Choose System Setup|
  5. |39230|Choose Transaction Preferences|
  6. |39231|Click Generate New Token|
  7. |39226|Log into Workamajig|

|39232|User Token|

|39233|Tokens can be obtained via the my settings screen. Look under Login Information to generate an API user token.|

|39234|Workamajig Platinum|

|39224|API Access Token|

|39235|To obtain an api access token you'll need an admin to log into your Workamajig Platinum instance and generate a token. To get to the API Settings:|

  1. |39226|Log into Workamajig|
  2. |39227|Click on the Main Menu|
  3. |39236|Click on Admin/Manager|
  4. |39237|Click on System Setup|
  5. |39238|Click on Connections|
  6. |39239|Click on API|
  7. |39240|Click Generate New Company Token|

|39241|Optional: If you know you want to generate system wide User Tokens, there's a button in this section that'll allow you to do that. Please note that when you generate system wide user tokens, previous generated tokens will be overwritten. We recommend to individually create user tokens as you add new employees instead.|

|39232|User Token|

|39242|Tokens can be found in two places, clicking on your name on the top right or using the employee screen.|

|39243|Employee Screen (You can only view user tokens here not generate them)|

  1. |39244|Sign into Workamajig|
  2. |39227|Click on the Main Menu|
  3. |39236|Click on Admin/Manager|
  4. |39245|Click on Employees|
  5. |39246|Choose an employee|
  6. |39247|Choose Security Controls|
  7. |39248|On the right you'll see API User Token. Please note it's not the Auth Token.|

|39249|Clicking on your name (starting with version 10.6.2.2)|

  1. |39244|Sign into Workamajig|
  2. |39250|Click on your name on the top right|
  3. |39251|You'll find the API User Token on towards the bottom. Here you'll be able to generate and retrieve your user token.|

|39253|How to get the API access token|

|39255|How to get a user token|

|39256|API Endpoint|

|39257|The api end point is your server url slash api followed by the version and lastly by the module you wish to connect to. See the versioning and modules sections for more information.|

|39258|Example URL|
https://subdomain.workamajig.com/api/version/module/

|39259|Versioning|

|39260|Versioning is controlled using the 3rd position in the url. The current version of the API is beta1. You'll be notified a few months in advance before any versions are deprecated.|

|39261|Example|
https://subdomain.workamajig.com/api/beta1/
|39262|Note: current version is beta1|

|39263|Request Header|

|39264|Add the generated tokens to the request headers "APIAccessToken" and "UserToken"|

|39265|Example Tokens|
APIAccessToken: zjhVgRIvcZItU8sCNjLn+0V56bJR8UOKOTDYeLTa43eQX9eynX90QntWtINDjLaRjAyOPgrWdrGK12xPaOdDZQ== UserToken: 5sb8Wf94B0g3n4RGOqkBdPfX+wr2pmBTegIK73S3h7uL8EzU6cjsnJ0+B6vt5iqn0q+jkZgN+gMRU4Y5+2AaXw==

|39266|Samples|


|39267|Get a list of projects with "test" in the project name| |39268|Get all the fields data for a specific project| |39269|Update the project status| |39270|Add a task to a project|

|39271|Rate Limits|

|39272|Starting With Release 18.1.0.0|

|39273|NB: Reports already have their own rate limits.|

|39274|All calls GET calls will have a per minute restriction. See the each module below for more detailed information on it's rate limits.|

|39275|Module| |39276|Calls Per Minute|
|39277|All modules without a dataset| 50
|39278|All modules with a custom report dataset| 20

|39279|Verbs|

@verb @description

|39281|Status Codes|

@code @description

|39284|Batch|

|39197|NOTE:||39285| The initial intent of batch processing is to allow mutiple updates or adds within one request. Although we don't prevent the same entity (project, vendor, contact, etc) from being updated two or more times within a given batch we do not guarantee the order in which items in a batch get processed.|

|39286|For POST, PUT and DELETE verbs you can batch your request by create an array of objects in json. Currently, you're restricted to 100 items in the each request.|

|39287|Sample:|
                        
                        
                        

|39288|Webhooks|

|39289|What are webhooks?|

|39290|Webhooks (also called a web callback) is a way for us to provide other applications with close to real time updates. Our webhooks run on a two minute lag before your system will be notified. are triggers that send data to your URL. When certain events happen in the system we'll send data associated with these events to your URL.|

|39197|NOTE:||43633| Webhooks require a user and access token.|

|39291|How do I get started?|

|39293| to get started.|

|39294|What does the data look like that you send me?|

|39295|Please see the GET sample for the module you're interested in.|

|43046|Can hooks be disabled?|

|43047|Use the active checkbox to enable and disable hooks|

|39296|What triggers are available?|

|39297|When the following events get triggered data is sent to the assigned URL|

@event @description

|39299|Reports|

|39300|About|

|39301|What is API Reports? API reports is a JSON data feed that you can setup using custom reports within Platinum. Each report will contain a unique key that will allow you to request and then receive data from your reports. The columns you've chosen within the report will be returned via the report feed. Please note the feed will be flat and not grouped.|

|39302|Restrictions|

|39303|5 active reports every 15 minutes. There will be a maximum of 10,000 records returned per report.|

|39304|Getting Started|
  1. |39305|Sign into Platinum|
  2. |39306|Clicking on the "Everyone" menu option|
  3. |39307|Then choose "Report Center"|
  4. |39308|Click on "Other Reports"|
  5. |39309|If you don't have a custom report click "new custom report". Make sure you add columns before you save your report. If you already have on then choose the report you wnat.|
  6. |39310|Click the "Edit" button|
  7. |39311|Click the "Settings"|
  8. |39312|Toward the bottom you should see the API Access Key|

{{:dp@moduleName}}

|39300|About|

|39301|What is API Reports? API reports is a JSON data feed that you can setup using custom reports within Platinum. Each report will contain a unique key that will allow you to request and then receive data from your reports. The columns you've chosen within the report will be returned via the report feed. Please note the feed will be flat and not grouped.|

|39302|Restrictions|

|39303|5 active reports every 15 minutes. There will be a maximum of 10,000 records returned per report.|

|39304|Getting Started|
  1. |39305|Sign into Platinum|
  2. |39306|Clicking on the "Everyone" menu option|
  3. |39307|Then choose "Report Center"|
  4. |39308|Click on "Other Reports"|
  5. |39313|If you don't have a custom report click "new custom report". Make sure you add columns before you save your report. If you already have on then choose the report you want.|
  6. |39310|Click the "Edit" button|
  7. |39311|Click the "Settings"|
  8. |39312|Toward the bottom you should see the API Access Key|

{{:dp@description}}

|39314|Parameter Fields||39315|(GET ONLY)|

@ParameterName @Description @parameterValue

|39317|Available Fields||39318|(PUT & POST ONLY)|

|39319|Available Standard Reports|

|39321|You can now access some standard reports through the api. Each standard report will have it's own set of fields.|

|39322|Trial Balance||39320|(POST ONLY)|

|39323|Below are the fields for trial balance. Use the reportId of TB. |

@field @required @description
|43538|Client Profit and Loss (Detail)||39315|(GET ONLY)|

|43539|Below are the fields for the Client Profit and Loss (Detail). Use the reportId of clientpld. The first row in the return data will be a description of the data in that column along with the name of the column. |

@field @required @description
|43581|Project Profit and Loss (Detail)||39315|(GET ONLY)|

|43582|Below are the fields for the Project Profit and Loss (Detail). Use the reportId of projectpld. The first row in the return data will be a description of the data in that column along with the name of the column. |

@field @required @description
@apiValue {{if:item.required === 1}}
|27778|yes|
{{if:}} {{if:item.required ===2}}
|27779|conditional|
{{if:}}
@description

|39326|Additional Functions|

|39327|We do allow for voiding a payment through the API. In order to void a payment, you can call the PUT with the /void at the end. For example:|
http://someserver.workamajig.com/platinum/api/beta1/clientpayments/void
|39328|and pass in an array of check Keys |
[
{
|39329|checkKey|": "R0VhTUlYN0FMRnNpdHF0cGpwUngzZz090"
}
]
  1. {{if:item.Type == 'GET'}}

    {{:currentItem@getEndPoint}}

    |39332|Sample Query string:|
    {{:item.prettyRequest}}
    {{else:}} {{if:item.Type == 'PUT'}}

    {{:currentItem@putEndPoint}}

    {{if:}} {{if:item.Type == 'POST'}}

    {{:currentItem@postEndPoint}}

    {{if:}}
    |39333|Sample Request:|
    {{:format(item.prettyRequest, 'json')}}
    {{if:}}
    |39334|Sample Response:|
    {{:format(item.prettyResponse,'json')}}

1)|39335| Under the parmater fields, enter in a value|

2)|39336| Click the ||39337| to create the URL|

3)|39338| Click the submit button to get the response from the workamajig api|

{{:dp@url}}
{{:dp@myResponse}}