Introduction
Welcome to the Manuscript API! You can use our API to read and write data in your Manuscript instance. The Manuscript API makes it possible to do programmatically almost anything you could do in the interface. The API can be used alone or in conjunction with Manuscript webhooks and third party services such as Slack, Salesforce, or TestRail (among many others) to build powerful integrations to improve your workflow and make the connection between Manuscript and your other systems seamless.
Find links to our full documentation in the sidebar to the left. You can view code examples in the code viewer on the right. Replace the apisandbox URL with your own Manuscript URL to get started.
Have questions? Our support engineers are here to help.
API Error Codes
0 – FB_NOT_INITIALIZED
1 – FB_NOT_PROPER_PASSWORD
2 – FB_MULTIPLE_MATCHES
3 – FB_NOT_LOGGED_ON
4 – FB_API_ARGUMENT_REQUIRED
5 – FB_NO_BUG_NUM
6 – FB_API_ACTION_NOT_PERMITTED
7 – FB_TIME_TRACKING_PROBLEM
8 – FB_NO_PERMISSION_TO_CREATE_CASE
9 – FB_CASE_HAS_CHANGED
10 – FB_SEARCH_PROBLEM
11 – SKIPPED_11
12 – FB_WIKI_CREATION_PROBLEM
13 – FB_API_INSUFFICIENT_PERMISSIONS
14 – FB_WIKI_LOAD_ERROR
15 – FB_TEMPLATE_ERROR
16 – FB_WIKI_COMMIT_ERROR
17 – FB_NO_SUCH_PROJECT
18 – FB_NO_SUCH_USER
19 – FB_AREA_CREATION_PROBLEM
20 – FB_FIX_FOR_CREATION_PROBLEM
21 – FB_PROJECT_CREATION_PROBLEM
22 – FB_USER_CREATION_PROBLEM
23 – FB_PROJECT_PERCENT_TIME_PROBLEM
24 – FB_API_NO_SUCH_FIX_FOR
25 – FB_VIOLATES_FIX_FOR_EXECUTION_ORDER
26 – FB_UNKNOWN_ERROR_DURING_COMMIT
27 – FB_API_NO_SUCH_COMMAND
28 – FB_ACCOUNT_IN_MAINTENANCE_MODE
29 – FB_TWO_FACTOR_ENABLED
30 – FB_API_SEARCH_MAX
31 – FB_API_NO_SUCH_HOLIDAY
32 – FB_UNABLE_TO_PARSE_DATE
33 – FB_API_PERMISSION_GROUP_NAME_EXISTS
34 – FB_API_UNRECOGNIZED_ACL_SECTION
35 – FB_API_UNRECOGNIZED_PERMISSION
36 – FB_API_UNRECOGNIZED_PERMISSION_GROUP
37 – FB_API_ERROR_WITH_RETROEDIT
API Version
Check API Version
Returns the version of the API.
The minversion
field is used to warn you if the current version of the API is not backwards compatible. For example, if this version is 5, and it is backwards compatible with clients written for version 2 but not backwards compatible with version 1, you’ll see:
<version>5</version>
<minversion>2</minversion>
We recommend that before you begin, you use the API to get the API version. Hard code the API version in your script. Have your script check the current version against your hard-coded version every time it runs, and throw an error if the current API version or minversion is higher than the version you’ve got hard coded. This will mean that there are breaking changes that you’ll want to look into.
API clients must check minversion
and make sure it’s less than or equal to the version that was current when they were written.
Query Parameters
Parameter | Default | Description |
---|---|---|
none |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api.json" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{}'
POST https://apisandbox.manuscript.com/api.json
{
}
Returns
The current and minimum-supported version of the API.
{
"data": {
"version": 8,
"minversion": 1
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "nqi9dvugilleed680nanjc0o3rc3iz",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The current and minimum-supported version of the API.
Logging On and Off
In order to use the Manuscript API you’ll need to include an API token with each call. You can either generate an API token through the Manuscript user interface or through the Manuscript API. Users with two factor authentication enabled cannot generate an API token through the API - they must generate a token through the Manuscript user interface.
Logging on Through the API
You can generate an API token by providing an email address or full name (just like the Manuscript sign-in page) and password to the logon endpoint.
Query Parameters
Parameter | default | Description |
---|---|---|
(required) | User’s email address or full name (url escaped) | |
password | (required) | User’s password |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/logon" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"email": "joel@fogcreek.com",
"password": "correcthorsebatterystaple"
}'
POST https://apisandbox.manuscript.com/api/logon
{
"email": "joel@fogcreek.com",
"password": "correcthorsebatterystaple"
}
Returns
Successful Logon
Successful Login Response
{
"data": {
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
},
"errors":[],
"warnings":[],
"meta":{
"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
We encourage you to reuse your tokens rather than issue repeated logon requests (see below). Your tokens do not expire - they’ll be good for the life of your Manuscript account.
Failed Logon
Failed Login Response
{
"data": {},
"errors":[
{
"message":"Error 1: Incorrect password or username",
"detail":null,
"code":"1"
}
],
"warnings":[],
"meta":{
"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":400,
"maxCacheAge":null
}
Ambiguous Logon
Ambiguous Logon Response
{
"data": {
"people":["Joel","Taco"]
},
"errors":[
{
"message":"Error 2: There were multiple matches for that email address. Please choose the specific user you would like to log in as.",
"detail":null,
"code":"2"
}
],
"warnings":[],
"meta":{
"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
There is more than one Manuscript user with that email address. Manuscript will provide you with a list of full names; you must execute the request again using the appropriate full name.
Validating an Existing API Token
To test the validity of an existing token, send the token to the logon endpoint.
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | A Manuscript token from a previous logon request (or from the user interface) |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/logon" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/logon
{
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
Valid Token
Valid Token Response
{
"data": {
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
},
"errors":[],
"warnings":[],
"meta":{
"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
Invalid Token
Invalid Token Response
{
"data": {},
"errors":[
{
"message":"Error 3: Not logged in",
"detail":null,
"code":"3"
}
],
"warnings":[],
"meta":{
"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":400,
"maxCacheAge":null
}
Logging Off
Logging off is not necessary and we encourage you to reuse tokens. If you’d like to expire a token you can do so by calling the logoff endpoint.
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | A Manuscript token from a previous logon request (or from the user interface) |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/logoff" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/logoff
{
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
Empty Response
{
"data": {},
"errors":[],
"warnings":[],
"meta":{
"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
Empty reponse
BugzScout
BugzScout cases can be created through both the API and the dedicated BugzScout API. The BugzScout API requires more information about the incoming case workflow, and is a good fit for automated crash reporting in programs. The API requires a valid Normal (or Administrator) login, and is a good fit for automating internal workflows. Both have very similar features.
BugzScout cases can be created and manipulated through the Manuscript API by passing sScoutDescription, sScoutMessage,and fScoutStopReporting to case activity commands such as cmd=new, cmd=edit, cmd=assign, cmd=reactivate and cmd=reopen. Read more about that under editing cases.
Create a New Scout Case
This is identical to the API command to create a new case, but requries the sScoutDescription
parameter.
Query Parameters
Parameter | Default | Description |
---|---|---|
sScoutDescription | (required) | Manuscript will continue appending to this case unless fScoutStopReporting is true for that case (in which case it will do nothing). |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/new" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixProject": 2,
"ixArea": 5,
"ixCategory": 1,
"sTitle": "Scout Case Title",
"sEvent": "This is the original text a BugzScout case created by the API.",
"sScoutDescription": "Scout Case Description"
}'
POST https://apisandbox.manuscript.com/api/new
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixProject": 2,
"ixArea": 5,
"ixCategory": 1,
"sTitle": "Scout Case Title",
"sEvent": "This is the original text a BugzScout case created by the API.",
"sScoutDescription": "Scout Case Description"
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5526,
"operations": [
"edit",
"assign",
"resolve",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
Find a Scout Case
Searches for a Scout Case based on its sScoutDescription
.
Query Parameters
Parameter | Default | Description |
---|---|---|
sScoutDescription | (required) | Manuscript will continue appending to this case unless fScoutStopReporting is true for that case (in which case it will do nothing). |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listScoutCase" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"sScoutDescription": "Scout Case Description"
}'
POST https://apisandbox.manuscript.com/api/new
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"sScoutDescription": "Scout Case Description"
}
Returns
A BugzScout case.
{
"data": {
"case": {
"ixBug": 5526,
"operations": [
"edit",
"assign",
"resolve",
"email"
],
"sScoutMessage": "",
"fScoutStopReporting": false,
"sScoutDescription": "Scout Case Description",
"dtLastOccurrence": "2017-10-27T18:21:56Z"
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A BugzScout case.
Cases
Push Content
The pushContent endpoint is the simplest way to get content into Manuscript.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixBug | (optional) | The case you wish to edit. If you don’t pass ixBug, a new case will be created. |
sTitle | (optional) | The title of the case. |
sText | (optional) | Text you’d like to appear in the body of the case. |
sHtml | (optional) | HTML you’d like to appear as the body of the case. |
Requires either sText or sHtml, but not both.
HTTP Request
curl -X "POST" "https://apisandbox.fogbugz.com/api/pushContent" \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"token": "3glpahm7p456aaq3k5458j8p2mp7o2",
"sTitle": "New Case Created With Push Content",
"sText": "\\"Hello!\\""
}'
POST https://apisandbox.manuscript.com/api/pushContent
{
"token": "3glpahm7p456aaq3k5458j8p2mp7o2",
"sTitle": "New Case Created With Push Content",
"sText": "Hello!",
}
Returns
A success response.
{
"data": {
"ixBug": 5527,
"ixBugEvent": 530
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "7CJL8aTK8kmpQdpNf4dEng2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
View a Case
A limited view of a FogBugz case, intended for use by Bot Users
Query Parameters
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The case you wish to view. |
token | (required) | A Manuscript API token. |
HTTP Request
curl -X "POST" "https://apisandbox.fogbugz.com/api/viewCase" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "96ejp6kgdv80kbf97njbfkb2s1r1au",
"ixBug": "5527"
}'
POST https://apisandbox.manuscript.com/api/viewCase
{
"ixBug": "5527",
"token": "3glpahm7p456aaq3k5458j8p2mp7o2",
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5527,
"operations": [
"edit",
"assign",
"resolve",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "7CJL8aTK8kmpQdpNf4dEng2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
List Cases
Fetches a list of Manuscript cases.
Query Parameters
Parameter | Default | Description |
---|---|---|
sFilter | (optional) | Set this to the ixFilter of an existing filter to show only cases returned by that filter |
cols | (optional) | The columns you want returned |
max | (optional) | The maximum number of cases to be returned. Defaults to 50,000 if left off or set to 0. The maximum returned results is 100,000; any higher than this will return error code 30. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listCases" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"sFilter":"42",
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"cols": ["ixBug", "sTitle", "sPersonAssignedTo"],
"max": 2
}'
POST https://apisandbox.manuscript.com/api/listCases
{
"sFilter": "42",
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"cols": ["ixBug", "sTitle", "sPersonAssignedTo"],
"max": 2
}
Returns
A list of Manuscript cases.
{
"data": {
"description": "All open cases",
"count": 2,
"totalHits": 244,
"cases": [
{
"operations": [
"edit",
"assign",
"resolve",
"email"
],
"ixBug": 1,
"sTitle": "\"Welcome to Manuscript\" Sample Case",
"sPersonAssignedTo": "Andrew"
},
{
"operations": [
"edit",
"assign",
"resolve",
"email"
],
"ixBug": 2,
"sTitle": "Intro Case for Andrew",
"sPersonAssignedTo": "Andrew"
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A list of Manuscript cases.
Search Cases
The API differs from the web interface in that, rather than listing cases in one action and viewing specific cases in another, you can return both a list of cases and the exact information you want about them all at the same time using the cols
parameter.
Query Parameters
Parameter | Default | Description |
---|---|---|
q | (optional) | - The query term you are searching for. Can be a string, a case number, a comma separated list of case numbers without spaces (e.g. 12,25,556). This search acts exactly the same way the search box in Manuscript operates, so you can use that to debug. - To search for the number 123 and not the case 123, enclose your search in quotes. - If q is not present, returns the cases in your current filter. If the current filter matches a saved or built-in filter, the sFilter is also returned. |
cols | (optional) | - The information you would like returned with each case in the list. The parameter should be a comma-separated list of column names (e.g., cols=sTitle,sStatus ).- For Custom Fields and other plugin fields, see this article. - ix columns can be empty or 0 if they are not set. All valid ix columns (ixPersonClosedBy for example) will be > 0 if there is a valid person who closed this case.- See below for a full list of column titles. |
max | (optional) | The maximum number of cases to be returned. Defaults to 50,000 if left off or set to 0. The highest this can be set to is 100,000. Anything higher will produce error code 30. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/search" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"q": "project:inbox assignedTo:Kevin,"
"cols": ["ixProject", "ixPersonAssignedTo", "sTitle"],
"max": 2
}'
POST https://apisandbox.manuscript.com/api/search
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"q": "project:inbox assignedTo:Kevin",
"cols": ["ixProject", "ixPersonAssignedTo", "sTitle"],
"max": 2
}
Returns
No cases
No cases match your query.
{
"data": {
"count": 0,
"totalHits": 0,
"cases": []
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "wC2bRelgckS-wHx4BFLXfg2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
No cases match your query.
Your email or password doesn’t match, 2FA is turned on, etc. — this is the equivalent of a failed attempt to log in through the interface.
Successful response
A list of Manuscript cases matching your search query.
{
"data": {
"count": 2,
"totalHits": 2,
"cases": [
{
"ixBug": 5523,
"operations": [
"edit",
"assign",
"resolve",
"email"
],
"ixProject": 2,
"ixPersonAssignedTo": 13,
"sTitle": "There are too many bugs in these replicants"
},
{
"ixBug": 5522,
"operations": [
"edit",
"assign",
"resolve",
"email"
],
"ixProject": 2,
"ixPersonAssignedTo": 13,
"sTitle": "Where have all the cowboys gone"
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "jGJtarJnF0q2oJ7Y8ylT2Q2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A list of Manuscript cases matching your search query.
Column titles
Title | Comments |
---|---|
ixBug | Case number |
ixBugParent | Parent case number |
ixBugChildren | Subcase numbers |
tags | |
fOpen | True if the case is open; false if it is closed |
sTitle | |
sOriginalTitle | Original title for a case opened by an incoming email or a public case submission |
sLatestTextSummary | Short string with the case’s latest comment. Truncated after a limited number of characters |
ixBugEventLatestText | ixBugEvent for latest event with actual text comment |
ixProject or sProject | Project ID/name |
ixArea or sArea | |
ixPersonAssignedTo | Person ID of the person assigned to the case |
sPersonAssignedTo | Name of the person assigned to the case |
sEmailAssignedTo | Email address of the person assigned to the case |
ixPersonOpenedBy | |
ixPersonClosedBy | |
ixPersonResolvedBy | |
ixPersonLastEditedBy | |
ixStatus or sStatus | |
ixBugDuplicates | Cases that are closed as duplicates of this one |
ixBugOriginal | The case that this case was a duplicate of |
ixPriority or sPriority | |
ixFixFor | ID of the milestone this case is assigned to |
sFixFor | Name of the milestone this case is assigned to |
dtFixFor | End date of the milestone this case is assigned to |
sVersion | Version field (custom field #1) |
sComputer | Computer field (custom field #2) |
hrsOrigEst | Hours of original estimate (0 if no estimate) |
hrsCurrEst | Hours of current estimate |
hrsElapsedExtra | Additional non-timesheet time on a case |
hrsElapsed | Total elapsed hours — includes all the time from time intervals PLUS hrsElapsedExtra time |
c | Number of occurrences (minus 1) of this bug (increased via BugzScout). To display the actual number ofoccurrences, add 1 to this number. |
sCustomerEmail | If there is a customer correspondent for this case, this is their email |
ixMailbox | If this case came in via dispatch, the mailbox to which it was delivered |
ixCategory or sCategory | |
dtOpened | |
dtResolved | |
dtClosed | |
ixBugEventLatest | The latest bug event |
dtLastUpdated | |
fReplied | Has this case been replied to |
fForwarded | Has this case been forwarded |
sTicket | ID for customer to view bug (bug number + 8 letters e.g. 4003_XFLFFCS ) |
ixDiscussTopic | ID of the discussion topic if case is related |
dtDue | |
sReleaseNotes | |
ixBugEventLastView | The ixBugEventLatest when you last viewed the case |
dtLastView | The date when you last viewed the case |
ixRelatedBugs | Comma-separated list of related case numbers |
sScoutDescription | If this case is a BugzScout case, this ID is the unique identifier |
sScoutMessage | This is the message displayed to users when they submit a case that matches thissScoutDescription . |
fScoutStopReporting | Whether we are still recording instances of this crash or not |
dtLastOccurrence | Most recent occurrence of this crash, if this is a BugzScout case |
fSubscribed | True if you are subscribed to this case, false otherwise |
dblStoryPts | Story points set for this case |
nFixForOrder | The position of this case in the Iteration Planner backlog order for the containing milestone |
events | All of the events for a case |
minievents | All of the events for a case, with a subset of the columns included (note: see the example responsefor the included columns. If you want the complete event records with all columns, use events instead.) |
ixKanbanColumn | The Kanban column ID for a case (note: This is aliased as ixKanbanColumn2 for compatibility with previous version of the API). |
sKanbanColumn | The name of the Kanban column that the case is currently assigned to. See listKanbanColumns . |
Set the Next New Case Number
Sets the next newly created case to start with this case number. For example, if the current highest case number is 35, and you want the next case number to start at 5000, then you can run this command with the value of 5000. Note that you can only use this command to raise the next value, not lower it. This cannot be undone.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The desired value of the next new-case number |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/adminSetCaseNumber" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}'
POST https://apisandbox.manuscript.com/api/adminSetCaseNumber
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}
Returns
An empty response.
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
An empty response.
Mark a Case as Viewed
Sets a case as viewed.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The case number to be marked as viewed |
ixBugEvent | (optional) | The case event to be marked as viewed |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/view" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5523
}'
POST https://apisandbox.manuscript.com/api/view
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5523
}
Returns
An empty response.
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
An empty response.
Create a New Case
Creates a new case.
Query Parameters
In addition to the parameters listed below, this command accepts ixPersonEditedBy
and dt
parameters from Site Admininistrators to enable accurate imports with the API. Note that setting ixPersonEditedBy
when using the command new
sets who opened the case. For Custom Fields and other plugin fields, see this article.
File uploads require special handling. They must be sent with enctype=multipart/form-data
, with one form-field per file, and one additional request
form-field that contains the remaining JSON payload, e.g.:
curl -i -X POST \
https://apisandbox.manuscript.com/api/new \
-H "Content-Type: multipart/form-data;" \
-F "File1=@/path/to/file.txt" \
-F "request={\"sTitle\":\"API file uploads\",\"sEvent\":\"This is how you upload a file via the API.\",\"token\":\"3glpahm7bca6aaq3k5911j8p2mp7o2\"}"
Parameter | Default | Description |
---|---|---|
ixBug | (optional) | If supplied, the new case is assigned this number. This functionality is provided for importing cases from another system. You must import them in order from lowest to highest case number. |
ixBugParent | (optional) | Make this case a subcase of another case. |
tags | (optional) | When searching for the tags column via the API, returns a <tags> element with a <tag> for each tag in the case. |
sTags | (optional) | When editing or creating a case, use the sTags column and submit an array of the tags associated with the case. Existing tags omitted from this list will be removed. |
sTitle | (optional) | The case title. |
ixProject or sProject | (optional) | If the user associated with the API Token making the call does not have Modify permissions on the project specified, the case will be opened in the first project on which the user does have Modify permission. If the user does not have Modify on any projects, the return will be Error Code 13: Insufficient Permissions . |
ixArea / sArea | (optional) | The project area for the case. |
ixFixFor / sFixFor | (optional) | The API parameter for milestone; searches at the project level first, then global. |
ixCategory / sCategory | (optional) | The category for the case. |
ixPersonAssignedTo / sPersonAssignedTo | (optional) | The person to whom the case is assigned. |
ixPriority / sPriority | (optional) | The priority at which the case is set. |
ixStatus / sStatus | (optional) | The status to which the case is set. |
dtDue | (optional) | The due date (in ISO8601 format) for the case. |
hrsCurrEst | (optional) | Sets the current estimated time for the case. The first instance of time logged against the case set the most recent current estimate as the original estimate. Future edits with hrsCurrEst will change the current estimate, and the original estimate will remain the same. |
hrsElapsedExtra | (optional) | This sets additional non-timesheet time on a case. (i.e. if there was an hour long time interval for the case and you set hrsElapsedExtra to 2, then the total hrsElapsed would be 3) |
dblStoryPts | (optional) | Sets the Story Points for a case. |
sVersion | (optional) | |
sComputer | (optional) | |
sCustomerEmail | (optional) | The case correspondent field. |
ixMailbox | (optional) | If you set sCustomerEmail , you’ll want to set this too, or you won’t be able to reply to this case. |
ixKanbanColumn | (optional) | The ID of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the selected Kanban column does not belong to the same project as the case. |
sKanbanColumn | (optional) | The name of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the case’s project does not have a matching Kanban column. |
sScoutDescription | (optional) | If you set this, and Manuscript finds a case with this sScoutDescription , it will append to that case unless fScoutStopReporting is true for that case (in which case it will do nothing). |
sScoutMessage | (optional) | The message you are supposed to display to users for this case |
fScoutStopReporting | (optional) | Set this to 1 if you don’t want Manuscript to record any more of these types of cases |
sEvent | (optional) | Text description of the bug event; or HTML if fRichText is 1 |
fRichText | (optional) | If set to 1, then sEvent is interpreted as HTML. |
sTicket | (optional) | The ticket for a case, which can be turned into a public ticket URL (e.g., https://<Manuscript site>.manuscript.com/default.asp?<sTicket> ). |
File1, File2, File3, etc | (optional) | Upload files to the case. There is no limit to the number of files that can be appended; this is constrained only by the max upload limit on the web server. Use the enctype=”multipart/form-data” form type. |
nFileCount | (optional) | Required with File1 , File2 , etc.; The number of file parameters included in the request. If this is absent, only File1 will upload. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/new" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525,
"ixPersonEditedBy": 21,
"ixProject": 3,
"sTitle": "New case created via API",
"sEvent": "This is the original text of the case created by the API."
}'
POST https://apisandbox.manuscript.com/api/new
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525,
"ixPersonEditedBy": 21,
"ixProject": 3,
"sTitle": "New case created via API",
"sEvent": "This is the original text of the case created by the API."
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5525,
"operations": [
"edit",
"assign",
"resolve",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
Edit an Existing Case
Edits the specified case.
Query Parameters
In addition to the parameters listed below, this command accepts ixPersonEditedBy
and dt
parameters from Site Admininistrators to enable accurate imports with the API. Note that setting ixPersonEditedBy
when using the command new
sets who opened the case. For Custom Fields and other plugin fields, see this article.
File uploads require special handling. They must be sent with enctype=multipart/form-data
, with one form-field per file, and one additional request
form-field that contains the remaining JSON payload, e.g.:
curl -i -X POST \
https://apisandbox.manuscript.com/api/edit \
-H "Content-Type: multipart/form-data;" \
-F "File1=@/path/to/file.txt" \
-F "request={\"ixBug\":\"5525\",\"sEvent\":\"This is how you upload a file via the API.\",\"token\":\"3glpahm7bca6aaq3k5911j8p2mp7o2\"}"
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The case you wish to edit. |
ixBugParent | (optional) | Make this case a subcase of another case. |
ixBugChildren | (optional) | Comma-separated list of cases to be set as the children/subcases of this case. Example: 123,456,789 will set cases 123, 456, and 789 as children. |
ixBugEvent | (optional) | If supplied, and this is not equal to the latest bug event for the case, you will receive error code 9 back to show that you were working with a “stale” view of the case. |
tags | (optional) | When searching for the tags column via the API, returns a <tags> element with a <tag> for each tag in the case. |
sTags | (optional) | When editing or creating a case, use the sTags column and submit an array of the tags associated with the case. Existing tags omitted from this list will be removed. To completely clear the tags for a case, submit this field as “ “ (a string with a single blank space). |
sTitle | (optional) | The case title. |
ixProject or sProject | (optional) | If the user associated with the API Token making the call does not have Modify permissions on the project specified, the case will be opened in the first project on which the user does have Modify permission. If the user does not have Modify on any projects, the return will be Error Code 13: Insufficient Permissions . |
ixArea / sArea | (optional) | The project area for the case. |
ixFixFor / sFixFor | (optional) | The API parameter for milestone; searches at the project level first, then global. |
ixCategory / sCategory | (optional) | The category for the case. |
ixPersonAssignedTo / sPersonAssignedTo | (optional) | The person to whom the case is assigned. |
ixPriority / sPriority | (optional) | The priority at which the case is set. |
ixStatus / sStatus | (optional) | The status to which the case is set. |
dtDue | (optional) | The due date (in ISO8601 format) for the case. |
hrsCurrEst | (optional) | Sets the current estimated time for the case. The first instance of time logged against the case set the most recent current estimate as the original estimate. Future edits with hrsCurrEst will change the current estimate, and the original estimate will remain the same. |
hrsElapsedExtra | (optional) | This sets additional non-timesheet time on a case. (i.e. if there was an hour long time interval for the case and you set hrsElapsedExtra to 2, then the total hrsElapsed would be 3) |
dblStoryPts | (optional) | Sets the Story Points for a case. |
sVersion | (optional) | |
sComputer | (optional) | |
sCustomerEmail | (optional) | The case correspondent field. |
ixMailbox | (optional) | If you set sCustomerEmail , you’ll want to set this too, or you won’t be able to reply to this case. |
ixKanbanColumn | (optional) | The ID of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the selected Kanban column does not belong to the same project as the case. |
sKanbanColumn | (optional) | The name of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the case’s project does not have a matching Kanban column. |
sScoutMessage | (optional) | The message you are supposed to display to users for this case |
fScoutStopReporting | (optional) | Set this to 1 if you don’t want Manuscript to record any more of these types of cases |
sEvent | (optional) | Text description of the bug event; or HTML if fRichText is 1 |
fRichText | (optional) | If set to 1, then sEvent is interpreted as HTML. |
sTicket | (optional) | The ticket for a case, which can be turned into a public ticket URL (e.g., https://<Manuscript site>.manuscript.com/default.asp?<sTicket> ). |
File1, File2, File3, etc | (optional) | Upload files to the case. There is no limit to the number of files that can be appended; this is constrained only by the max upload limit on the web server. Use the enctype=”multipart/form-data” form type. |
nFileCount | (optional) | Required with File1 , File2 , etc.; The number of file parameters included in the request. If this is absent, only File1 will upload. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/edit" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525,
"ixPersonEditedBy": 12,
"ixPersonAssignedTo": 21,
"sEvent": "This is the first edit of the case created by the API."
}'
POST https://apisandbox.manuscript.com/api/edit
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525,
"ixPersonEditedBy": 12,
"ixPersonAssignedTo": 21,
"sEvent": "This is the first edit of the case created by the API."
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5525,
"operations": [
"edit",
"assign",
"resolve",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
Reassign an Existing Case
Assigns the case.
Query Parameters
In addition to the parameters listed below, this command accepts ixPersonEditedBy
and dt
parameters from Site Admininistrators to enable accurate imports with the API. Note that setting ixPersonEditedBy
when using the command new
sets who opened the case. For Custom Fields and other plugin fields, see this article.
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The case you wish to act on. |
ixBugParent | (optional) | Make this case a subcase of another case. |
ixBugEvent | (optional) | If supplied, and this is not equal to the latest bug event for the case, you will receive error code 9 back to show that you were working with a “stale” view of the case. |
tags | (optional) | When searching for the tags column via the API, returns a <tags> element with a <tag> for each tag in the case. |
sTags | (optional) | When editing or creating a case, use the sTags column and submit an array of the tags associated with the case. Existing tags omitted from this list will be removed. |
sTitle | (optional) | The case title. |
ixProject or sProject | (optional) | If the user associated with the API Token making the call does not have Modify permissions on the project specified, the case will be opened in the first project on which the user does have Modify permission. If the user does not have Modify on any projects, the return will be Error Code 13: Insufficient Permissions . |
ixArea / sArea | (optional) | The project area for the case. |
ixFixFor / sFixFor | (optional) | The API parameter for milestone; searches at the project level first, then global. |
ixCategory / sCategory | (optional) | The category for the case. |
ixPersonAssignedTo / sPersonAssignedTo | (required) | The person to whom the case is assigned. |
ixPriority / sPriority | (optional) | The priority at which the case is set. |
ixStatus / sStatus | (optional) | The status to which the case is set. |
dtDue | (optional) | The due date (in ISO8601 format) for the case. |
hrsCurrEst | (optional) | Sets the current estimated time for the case. The first instance of time logged against the case set the most recent current estimate as the original estimate. Future edits with hrsCurrEst will change the current estimate, and the original estimate will remain the same. |
hrsElapsedExtra | (optional) | This sets additional non-timesheet time on a case. (i.e. if there was an hour long time interval for the case and you set hrsElapsedExtra to 2, then the total hrsElapsed would be 3) |
dblStoryPts | (optional) | Sets the Story Points for a case. |
sVersion | (optional) | |
sComputer | (optional) | |
sCustomerEmail | (optional) | The case correspondent field. |
ixMailbox | (optional) | If you set sCustomerEmail , you’ll want to set this too, or you won’t be able to reply to this case. |
ixKanbanColumn | (optional) | The ID of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the selected Kanban column does not belong to the same project as the case. |
sKanbanColumn | (optional) | The name of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the case’s project does not have a matching Kanban column. |
sScoutMessage | (optional) | The message you are supposed to display to users for this case |
fScoutStopReporting | (optional) | Set this to 1 if you don’t want Manuscript to record any more of these types of cases |
sEvent | (optional) | Text description of the bug event; or HTML if fRichText is 1 |
fRichText | (optional) | If set to 1, then sEvent is interpreted as HTML. |
sTicket | (optional) | The ticket for a case, which can be turned into a public ticket URL (e.g., https://<Manuscript site>.manuscript.com/default.asp?<sTicket> ). |
File1, File2, File3, etc | (optional) | Upload files to the case. There is no limit to the number of files that can be appended; this is constrained only by the max upload limit on the web server. Use the enctype=”multipart/form-data” form type. |
nFileCount | (optional) | Required with File1 , File2 , etc.; The number of file parameters included in the request. If this is absent, only File1 will upload. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/assign" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525,
"ixPersonAssignedTo": 5,
"sEvent": "Marlene, could you take a look at this?"
}'
POST https://apisandbox.manuscript.com/api/assign
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525,
"ixPersonAssignedTo": 5,
"sEvent": "Marlene, could you take a look at this?"
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5525,
"operations": [
"edit",
"assign",
"resolve",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
Resolve an Active Case
Sets the case status to resolved.
Query Parameters
In addition to the parameters listed below, this command accepts ixPersonEditedBy
and dt
parameters from Site Admininistrators to enable accurate imports with the API. Note that setting ixPersonEditedBy
when using the command new
sets who opened the case. For Custom Fields and other plugin fields, see this article.
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The case you wish to act on. |
ixBugParent | (optional) | Make this case a subcase of another case. |
ixBugEvent | (optional) | If supplied, and this is not equal to the latest bug event for the case, you will receive error code 9 back to show that you were working with a “stale” view of the case. |
tags | (optional) | When searching for the tags column via the API, returns a <tags> element with a <tag> for each tag in the case. |
sTags | (optional) | When editing or creating a case, use the sTags column and submit an array of the tags associated with the case. Existing tags omitted from this list will be removed. |
sTitle | (optional) | The case title. |
ixProject or sProject | (optional) | If the user associated with the API Token making the call does not have Modify permissions on the project specified, the case will be opened in the first project on which the user does have Modify permission. If the user does not have Modify on any projects, the return will be Error Code 13: Insufficient Permissions . |
ixArea / sArea | (optional) | The project area for the case. |
ixFixFor / sFixFor | (optional) | The API parameter for milestone; searches at the project level first, then global. |
ixCategory / sCategory | (optional) | The category for the case. |
ixPersonAssignedTo / sPersonAssignedTo | (optional) | The person to whom the case is assigned. |
ixPriority / sPriority | (optional) | The priority at which the case is set. |
ixStatus / sStatus | (optional) | The status to which the case is set. |
dtDue | (optional) | The due date (in ISO8601 format) for the case. |
hrsCurrEst | (optional) | Sets the current estimated time for the case. The first instance of time logged against the case set the most recent current estimate as the original estimate. Future edits with hrsCurrEst will change the current estimate, and the original estimate will remain the same. |
hrsElapsedExtra | (optional) | This sets additional non-timesheet time on a case. (i.e. if there was an hour long time interval for the case and you set hrsElapsedExtra to 2, then the total hrsElapsed would be 3) |
dblStoryPts | (optional) | Sets the Story Points for a case. |
sVersion | (optional) | |
sComputer | (optional) | |
sCustomerEmail | (optional) | The case correspondent field. |
ixMailbox | (optional) | If you set sCustomerEmail , you’ll want to set this too, or you won’t be able to reply to this case. |
ixKanbanColumn | (optional) | The ID of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the selected Kanban column does not belong to the same project as the case. |
sKanbanColumn | (optional) | The name of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the case’s project does not have a matching Kanban column. |
sScoutMessage | (optional) | The message you are supposed to display to users for this case |
fScoutStopReporting | (optional) | Set this to 1 if you don’t want Manuscript to record any more of these types of cases |
sEvent | (optional) | Text description of the bug event; or HTML if fRichText is 1 |
fRichText | (optional) | If set to 1, then sEvent is interpreted as HTML. |
sTicket | (optional) | The ticket for a case, which can be turned into a public ticket URL (e.g., https://<Manuscript site>.manuscript.com/default.asp?<sTicket> ). |
File1, File2, File3, etc | (optional) | Upload files to the case. There is no limit to the number of files that can be appended; this is constrained only by the max upload limit on the web server. Use the enctype=”multipart/form-data” form type. |
nFileCount | (optional) | Required with File1 , File2 , etc.; The number of file parameters included in the request. If this is absent, only File1 will upload. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/resolve" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}'
POST https://apisandbox.manuscript.com/api/resolve
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5525,
"operations": [
"edit",
"assign",
"resolve",
"reactivate",
"close",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
Reactivate a Resolved Case
Sets the status of a resolved case to active.
Query Parameters
In addition to the parameters listed below, this command accepts ixPersonEditedBy
and dt
parameters from Site Admininistrators to enable accurate imports with the API. Note that setting ixPersonEditedBy
when using the command new
sets who opened the case. For Custom Fields and other plugin fields, see this article.
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The case you wish to act on. |
ixBugParent | (optional) | Make this case a subcase of another case. |
ixBugEvent | (optional) | If supplied, and this is not equal to the latest bug event for the case, you will receive error code 9 back to show that you were working with a “stale” view of the case. |
tags | (optional) | When searching for the tags column via the API, returns a <tags> element with a <tag> for each tag in the case. |
sTags | (optional) | When editing or creating a case, use the sTags column and submit an array of the tags associated with the case. Existing tags omitted from this list will be removed. |
sTitle | (optional) | The case title. |
ixProject or sProject | (optional) | If the user associated with the API Token making the call does not have Modify permissions on the project specified, the case will be opened in the first project on which the user does have Modify permission. If the user does not have Modify on any projects, the return will be Error Code 13: Insufficient Permissions . |
ixArea / sArea | (optional) | The project area for the case. |
ixFixFor / sFixFor | (optional) | The API parameter for milestone; searches at the project level first, then global. |
ixCategory / sCategory | (optional) | The category for the case. |
ixPersonAssignedTo / sPersonAssignedTo | (optional) | The person to whom the case is assigned. |
ixPriority / sPriority | (optional) | The priority at which the case is set. |
ixStatus / sStatus | (optional) | The status to which the case is set. |
dtDue | (optional) | The due date (in ISO8601 format) for the case. |
hrsCurrEst | (optional) | Sets the current estimated time for the case. The first instance of time logged against the case set the most recent current estimate as the original estimate. Future edits with hrsCurrEst will change the current estimate, and the original estimate will remain the same. |
hrsElapsedExtra | (optional) | This sets additional non-timesheet time on a case. (i.e. if there was an hour long time interval for the case and you set hrsElapsedExtra to 2, then the total hrsElapsed would be 3) |
dblStoryPts | (optional) | Sets the Story Points for a case. |
sVersion | (optional) | |
sComputer | (optional) | |
sCustomerEmail | (optional) | The case correspondent field. |
ixMailbox | (optional) | If you set sCustomerEmail , you’ll want to set this too, or you won’t be able to reply to this case. |
ixKanbanColumn | (optional) | The ID of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the selected Kanban column does not belong to the same project as the case. |
sKanbanColumn | (optional) | The name of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the case’s project does not have a matching Kanban column. |
sScoutMessage | (optional) | The message you are supposed to display to users for this case |
fScoutStopReporting | (optional) | Set this to 1 if you don’t want Manuscript to record any more of these types of cases |
sEvent | (optional) | Text description of the bug event; or HTML if fRichText is 1 |
fRichText | (optional) | If set to 1, then sEvent is interpreted as HTML. |
sTicket | (optional) | The ticket for a case, which can be turned into a public ticket URL (e.g., https://<Manuscript site>.manuscript.com/default.asp?<sTicket> ). |
File1, File2, File3, etc | (optional) | Upload files to the case. There is no limit to the number of files that can be appended; this is constrained only by the max upload limit on the web server. Use the enctype=”multipart/form-data” form type. |
nFileCount | (optional) | Required with File1 , File2 , etc.; The number of file parameters included in the request. If this is absent, only File1 will upload. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/reactivate" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}'
POST https://apisandbox.manuscript.com/api/reactivate
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5525,
"operations": [
"edit",
"assign",
"resolve",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
Close a Case
Closes a resolved case.
Query Parameters
In addition to the parameters listed below, this command accepts ixPersonEditedBy
and dt
parameters from Site Admininistrators to enable accurate imports with the API. Note that setting ixPersonEditedBy
when using the command new
sets who opened the case. For Custom Fields and other plugin fields, see this article.
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The case you wish to act on. |
ixBugParent | (optional) | Make this case a subcase of another case. |
ixBugEvent | (optional) | If supplied, and this is not equal to the latest bug event for the case, you will receive error code 9 back to show that you were working with a “stale” view of the case. |
tags | (optional) | When searching for the tags column via the API, returns a <tags> element with a <tag> for each tag in the case. |
sTags | (optional) | When editing or creating a case, use the sTags column and submit an array of the tags associated with the case. Existing tags omitted from this list will be removed. |
sTitle | (optional) | The case title. |
ixProject or sProject | (optional) | If the user associated with the API Token making the call does not have Modify permissions on the project specified, the case will be opened in the first project on which the user does have Modify permission. If the user does not have Modify on any projects, the return will be Error Code 13: Insufficient Permissions . |
ixArea / sArea | (optional) | The project area for the case. |
ixFixFor / sFixFor | (optional) | The API parameter for milestone; searches at the project level first, then global. |
ixCategory / sCategory | (optional) | The category for the case. |
ixPersonAssignedTo / sPersonAssignedTo | (optional) | The person to whom the case is assigned. |
ixPriority / sPriority | (optional) | The priority at which the case is set. |
ixStatus / sStatus | (optional) | The status to which the case is set. |
dtDue | (optional) | The due date (in ISO8601 format) for the case. |
hrsCurrEst | (optional) | Sets the current estimated time for the case. The first instance of time logged against the case set the most recent current estimate as the original estimate. Future edits with hrsCurrEst will change the current estimate, and the original estimate will remain the same. |
hrsElapsedExtra | (optional) | This sets additional non-timesheet time on a case. (i.e. if there was an hour long time interval for the case and you set hrsElapsedExtra to 2, then the total hrsElapsed would be 3) |
dblStoryPts | (optional) | Sets the Story Points for a case. |
sVersion | (optional) | |
sComputer | (optional) | |
sCustomerEmail | (optional) | The case correspondent field. |
ixMailbox | (optional) | If you set sCustomerEmail , you’ll want to set this too, or you won’t be able to reply to this case. |
ixKanbanColumn | (optional) | The ID of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the selected Kanban column does not belong to the same project as the case. |
sKanbanColumn | (optional) | The name of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the case’s project does not have a matching Kanban column. |
sScoutMessage | (optional) | The message you are supposed to display to users for this case |
fScoutStopReporting | (optional) | Set this to 1 if you don’t want Manuscript to record any more of these types of cases |
sEvent | (optional) | Text description of the bug event; or HTML if fRichText is 1 |
fRichText | (optional) | If set to 1, then sEvent is interpreted as HTML. |
sTicket | (optional) | The ticket for a case, which can be turned into a public ticket URL (e.g., https://<Manuscript site>.manuscript.com/default.asp?<sTicket> ). |
File1, File2, File3, etc | (optional) | Upload files to the case. There is no limit to the number of files that can be appended; this is constrained only by the max upload limit on the web server. Use the enctype=”multipart/form-data” form type. |
nFileCount | (optional) | Required with File1 , File2 , etc.; The number of file parameters included in the request. If this is absent, only File1 will upload. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/close" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525,
}'
POST https://apisandbox.manuscript.com/api/cmd
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5525,
"operations": [
"edit",
"reopen",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
Reopen a Closed Case
Reopens a closed case.
Query Parameters
In addition to the parameters listed below, this command accepts ixPersonEditedBy
and dt
parameters from Site Admininistrators to enable accurate imports with the API. Note that setting ixPersonEditedBy
when using the command new
sets who opened the case. For Custom Fields and other plugin fields, see this article.
Parameter | Default | Description |
---|---|---|
ixBug | (required) | The case you wish to act on. |
ixBugParent | (optional) | Make this case a subcase of another case. |
ixBugEvent | (optional) | If supplied, and this is not equal to the latest bug event for the case, you will receive error code 9 back to show that you were working with a “stale” view of the case. |
tags | (optional) | When searching for the tags column via the API, returns a <tags> element with a <tag> for each tag in the case. |
sTags | (optional) | When editing or creating a case, use the sTags column and submit an array of the tags associated with the case. Existing tags omitted from this list will be removed. |
sTitle | (optional) | The case title. |
ixProject or sProject | (optional) | If the user associated with the API Token making the call does not have Modify permissions on the project specified, the case will be opened in the first project on which the user does have Modify permission. If the user does not have Modify on any projects, the return will be Error Code 13: Insufficient Permissions . |
ixArea / sArea | (optional) | The project area for the case. |
ixFixFor / sFixFor | (optional) | The API parameter for milestone; searches at the project level first, then global. |
ixCategory / sCategory | (optional) | The category for the case. |
ixPersonAssignedTo / sPersonAssignedTo | (optional) | The person to whom the case is assigned. |
ixPriority / sPriority | (optional) | The priority at which the case is set. |
ixStatus / sStatus | (optional) | The status to which the case is set. |
dtDue | (optional) | The due date (in ISO8601 format) for the case. |
hrsCurrEst | (optional) | Sets the current estimated time for the case. The first instance of time logged against the case set the most recent current estimate as the original estimate. Future edits with hrsCurrEst will change the current estimate, and the original estimate will remain the same. |
hrsElapsedExtra | (optional) | This sets additional non-timesheet time on a case. (i.e. if there was an hour long time interval for the case and you set hrsElapsedExtra to 2, then the total hrsElapsed would be 3) |
dblStoryPts | (optional) | Sets the Story Points for a case. |
sVersion | (optional) | |
sComputer | (optional) | |
sCustomerEmail | (optional) | The case correspondent field. |
ixMailbox | (optional) | If you set sCustomerEmail , you’ll want to set this too, or you won’t be able to reply to this case. |
ixKanbanColumn | (optional) | The ID of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the selected Kanban column does not belong to the same project as the case. |
sKanbanColumn | (optional) | The name of the Kanban column you’d like to set for a case. See listKanbanColumns . Will be rejected if the case’s project does not have a matching Kanban column. |
sScoutMessage | (optional) | The message you are supposed to display to users for this case |
fScoutStopReporting | (optional) | Set this to 1 if you don’t want Manuscript to record any more of these types of cases |
sEvent | (optional) | Text description of the bug event; or HTML if fRichText is 1 |
fRichText | (optional) | If set to 1, then sEvent is interpreted as HTML. |
sTicket | (optional) | The ticket for a case, which can be turned into a public ticket URL (e.g., https://<Manuscript site>.manuscript.com/default.asp?<sTicket> ). |
File1, File2, File3, etc | (optional) | Upload files to the case. There is no limit to the number of files that can be appended; this is constrained only by the max upload limit on the web server. Use the enctype=”multipart/form-data” form type. |
nFileCount | (optional) | Required with File1 , File2 , etc.; The number of file parameters included in the request. If this is absent, only File1 will upload. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/reopen" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}'
POST https://apisandbox.manuscript.com/api/reopen
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixBug": 5525
}
Returns
A success response.
{
"data": {
"case": {
"ixBug": 5525,
"operations": [
"edit",
"assign",
"resolve",
"email"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A success response.
Detailed Case Responses
Full Case Details
Query Parameters
Parameter | Default | Description |
---|---|---|
q | (required) | The query term you are searching for. For case details, this should be a case number, or a comma separated list of case numbers without spaces (e.g. 12,25,556). |
cols | (required) | Set this to events . |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/search" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"q": 5300,
"cols": ["events"]
}'
POST https://apisandbox.manuscript.com/api/search
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"q": 5300,
"cols": ["events"]
}
Returns
Returns a list of all events in the case. The sample output here shows only a single case for space considerations.
"data": {
"count": 1, # Count is included in the cases attribute
"totalHits": 1,
"cases": [
{
"ixBug": 5300, # Case number
"operations": [
"edit",
"assign",
"resolve",
"reactivate",
"close",
"reopen",
"reply",
"forward",
"email",
"move",
"spam"
],
"ixBugParent": 234 # Parent case number
"ixBugChildren": [ # Subcase numbers
456,
876
],
"tags": [
"first",
"second",
"third"
],
"fOpen": true, # True if open, false if closed
"sTitle": "Duck, Duck... but No Goose!", # Title
"sOriginalTitle": "Problem finding the goose...", # Original title for a case opened by an incoming email or a public case submission
"sLatestTextSummary": "I searched the docs, but no goose!", # Short string with case's latest comment
"ixBugEventLatestText": 1151, # ixBugEvent for the latest event with a text comment
"ixProject": 22, # Project ID
"sProject": "The Farm", # Project name
"ixArea": 35, # Area ID
"sArea": "Pond", # Area name
"ixPersonAssignedTo": 1, # The ID of person the case is assigned to
"sPersonAssignedTo": "Old MacDonald", # The name of the person the case is assigned to
"sEmailAssignedTo": "grandpa@oldmacdonald.com", # The email of person the case is assigned to
"ixPersonOpenedBy": 2, # The ID of the person the case was opened by
"ixPersonResolvedBy": 2, # The ID of the person the case was resolved by
"ixPersonClosedBy": , # The ID of the person the case was closed by
"ixPersonLastEditedBy": 0, # The ID of the person the case was last edited by
"ixStatus": 2, # Status ID
"ixBugDuplicates": 321, # Cases that are closed as duplicates of this one ID
"ixBugOriginal": 654, # The case which this one was a duplicate of ID
"sStatus": "Geschlossen (Fixed)", # Status name
"ixPriority": 3, # Priority ID
"sPriority": "Must Fix", # Priority name
"ixFixFor": 3, # Milestone ID
"sFixFor": "Test", # Milestone name
"dtFixFor": "2017-06-05T22:47:59Z", # Date of milestone
"sVersion": , # The version field (custom field #1)
"sComputer": , # The computer field (custom field #2)
"hrsOrigEst": 0, # Hours of original estimate (0 if no estimate)
"hrsCurrEst": 0, # Hours of current estimate
"hrsElapsed": 0, # Total elapsed hours -- includes all time from time intervals PLUS hrsElapsedExtra time
"c": 0, # Number of occurrences (minus 1) of this bug (increased via bugzscout); to display the actual number of occurrences, add 1 to this number
"sCustomerEmail": , # If there is a customer contact for this case, this is their email
"ixMailbox": 0, # If this case came in via dispatcho, the mailbox it came in on
"ixCategory": 1, # Category ID
"sCategory": "Feature", # Category name
"dtOpened": "2017-06-05T22:47:59Z", # The date the case was opened
"dtResolved": "2017-06-05T22:47:59Z", # The date the case was resolved
"dtClosed": "2017-06-05T22:47:59Z", # The date the case was closed
"ixBugEventLatest": 1151, # Latest bugevent
"dtLastUpdated": "2017-06-05T22:47:59Z", # The date when this case was last updated
"fReplied": false, # Has this case been replied to?
"fForwarded": false, # Has this case been forwarded?
"sTicket": , # ID for customer to view bug (bug number + 8 letters e.g. 4003_XFLFFFCS)
"ixDiscussTopic": 0, # ID of discussion topic if case is related
"dtDue": , # The date this case is due (empty if no due date)
"sReleaseNotes": , # Release notes
"ixBugEventLastView": 1151, # The ixBugEventLatest when you last viewed this case
"dtLastView": "2017-06-05T22:47:59Z", # The date when you last viewed this case
"ixRelatedBugs": [ # A comma separated list of other related case numbers
345,
267,
2920
],
"sScoutDescription": "Main.cpp:165", # If this case is a Scout case, this ID is the unique identifier
"sScoutMessage": "Please contact us or visit our knowledge base to resolve.", # This is the message displayed to users when they submit a case that matches this sScoutDescription
"fScoutStopReporting": false, # Whether we are still recording occurrences of this crash or not
"dtLastOccurrence": "2017-06-05T22:47:59Z", # Most recent occurrence of this crash, if this is a BugzScout case
"fSubscribed": true, # True if you are subscribed to this case, otherwise false
"dblStoryPts": 2, # Story Points set for this case
"nFixForOrder": 10, # The position of this case in the Iteration Planner backlog order for the containing milestone
}
]
}
Returns a list of all events in the case. The sample output here shows only a single case for space considerations.
Bug Event Response
"events": [
{
"ixBug": 5300,
"ixBugEvent": 55,
"evt": 4, # Number for type of event, see event codes
"sVerb": "Assigned to Captain Caveman", # Description of event in English always
"ixPerson": 3, # Identity field of the person who made this event happen
"sPerson": "Mikey", # Person's full name
"ixPersonAssignedTo": 4, # Identity field of the person this case is assigned to
"dt": "2017-06-05T22:47:59Z", # Date event happened (in RFC822 UTC format)
"s": "Up up and away!", # The text of the event (if this is an email or was created in HTML mode via Rich Case Events, this is a plain-text version of the event)
"sHTML": "<p><strong>Up up and away!</strong></p>\n", # If this is an event created in HTML mode via Rich Case Events, this contains the raw HTML version of the event
"fEmail": false, # True if it is an email event
"bEmail": false, # Deprecated: use fEmail
"fExternal": false, # True if this case was created via an incoming email, discussion topic, or BugzScout
"bExternal": false, # Deprecated: use fExternal
"fHTML": true, # True if the event is an email and the html version has been cached. You should not need to look at this field. Instead use fEmail to determine if the event is an email and sFormat to determine if an edit is html-formatted
"sFormat": html, # 'html' if the event was created in HTML mode via Rich Case Events
"sChanges": "Project changed from 'Inbox' to 'Cave'.", # Description of changes to the case during this event
"evtDescription": "Captain Caveman von Mikey zugewiesen", # Description of event in YOUR language (in this case German)
"rgAttachments": [
{
"sFileName": "Test Word.doc", # The name of the attached file
"sURL": "default.asp?pg=pgDownload&pgType=pgAttachment&ixBugEvent=55&sPart=2&sTicket=&sFileName=Test%20Word.doc" # URL to hit to get the contents of the attached file (add on token=<yourtoken>)
}
],
### If the event is an email (fEmail == true) then there are additional fields ###
"sFrom": "\"JJ Walker\" <jj@dynomite.org>", # The from header from the message
"sTo": "good@times.org" # The to header from the message
"sCC": , # The cc header from the message
"sBCC": , # The bcc header from the message (if readable)
"sReplyTo": , # The replyto header from the message
"sSubject": , # The subject header from the message
"sDate": "5 Jun 17 21:07:54 GMT", # The date header from the message (exactly as it appears usually rfc822 date)
"sBodyText": , # The body plaintext from the message
"sBodyHTML": # The message formatted in html
}
]
Mini Events Response
"minievents": [
{
"ixBug": 5300,
"ixBugEvent": 55,
"evt": 4, # Number for type of event, see event codes
"sVerb": "Assigned to Captain Caveman", # Description of event in English always
"ixPerson": 3, # Identity field of the person who made this event happen
"sPerson": "Mikey", # Person's full name
"ixPersonAssignedTo": 4, # Identity field of the person this case is assigned to
"dt": "2017-06-05T22:47:59Z", # Date event happened (in RFC822 UTC format)
"fEmail": false, # True if it is an email event
"fHTML": true, # True if the event is an email and the html version has been cached. You should not need to look at this field. Instead use fEmail to determine if the event is an email and sFormat to determine if an edit is html-formatted
"sFormat": html, # 'html' if the event was created in HTML mode via Rich Case Events
"fExternal": false, # True if this case was created via an incoming email, discussion topic, or BugzScout
"sChanges": "Project changed from 'Inbox' to 'Cave'.", # Description of changes to the case during this event
"evtDescription": "Captain Caveman von Mikey zugewiesen", # Description of event in YOUR language (in this case German)
"rgAttachments": [
{
"sFileName": "Test Word.doc", # The name of the attached file
"sURL": "default.asp?pg=pgDownload&pgType=pgAttachment&ixBugEvent=55&sPart=2&sTicket=&sFileName=Test%20Word.doc" # URL to hit to get the contents of the attached file (add on token=<yourtoken>)
}
],
### If the event is an email (fEmail == true) then there are additional fields ###
"sFrom": "\"JJ Walker\" <jj@dynomite.org>", # The from header from the message
"sTo": "good@times.org", # The to header from the message
"sCC": , # The cc header from the message
"sBCC": , # The bcc header from the message (if readable)
"sReplyTo": , # The replyto header from the message
"sSubject": , # The subject header from the message
"sDate": "5 Jun 17 21:07:54 GMT" # The date header from the message (exactly as it appears usually rfc822 date)
}
]
Categories
List Categories
Returns all Manuscript categories.
Query Parameters
Parameter | Default | Description |
---|---|---|
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listCategories" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2"
}'
POST https://apisandbox.manuscript.com/api/listCases
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
A list of Manuscript categories.
{
"data": {
"categories": [
{
"ixCategory": 1,
"sCategory": "Bug",
"sPlural": "Bugs",
"ixStatusDefault": 2,
"fIsScheduleItem": false,
"fDeleted": false,
"iOrder": 0,
"nIconType": 1,
"ixAttachmentIcon": 0,
"ixStatusDefaultActive": 1
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A list of Manuscript cases.
For the sake of space, the sample includes only one category. This command will return the details for all categories between the <response>
tags.
View a Single Category
Returns a single Manuscript category.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixCategory | (required) | The category ID |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewCategory" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixCategory": 1
}'
POST https://apisandbox.manuscript.com/api/listCases
{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixCategory": 1
}
Returns
Successful Response
Details of a single Manuscript category.
{
"data": {
"categories": [
{
"ixCategory": 1,
"sCategory": "Bug",
"sPlural": "Bugs",
"ixStatusDefault": 2,
"fIsScheduleItem": false,
"fDeleted": false,
"iOrder": 0,
"nIconType": 1,
"ixAttachmentIcon": 0,
"ixStatusDefaultActive": 1
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Details of a single Manuscript category.
No such category
Empty response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Empty response
Send Email
Send an email to a Manuscript case.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixBug | (required) | Case number |
sFrom | (required) | The sender’s email address |
sTo | (required) | The recipient’s email address |
sEvent | (blank) | Body text of the email |
sSubject | (blank) | The subject header of the email |
sCc | (blank) | Additional cc recipients of the email |
sBcc | (blank) | Additional bcc recipients of the email |
ixBugEventAttachment | (none) | The ixBugEvent if you want to inclue attachments from a previous email |
token | (required) | API token |
Any optional fields not specified will remain blank.
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/email" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"sFullEmail": "example@fogcreek.com"
}'
POST https://apisandbox.manuscript.com/api/email
{
"ixBug": "5514",
"sFrom": "customerservice@apisandbox.com",
"sTo": "customer@example.com",
"sSubject": "Thank you for your feedback!",
"sEvent": "Thanks for the thoughful feedback. We are taking your suggestion into consideration. All the best, Fog Creek",
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
Case number of the affected case.
{
"data": {
"case": {
"ixBug": 5514,
"operations": [
"edit",
"assign",
"resolve",
"email"
]
}
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
Case number of the affected case.
Reply to an Email
Send a reply to an email.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixBug | (required) | Case number |
sFrom | (required) | The sender’s email address |
sTo | (required) | The recipient’s email address |
sEvent | (blank) | Body text of the email |
sSubject | (blank) | The subject header of the email |
sCc | (blank) | Additional cc recipients of the email |
sBcc | (blank) | Additional bcc recipients of the email |
ixBugEventAttachment | (none) | The ixBugEvent if you want to inclue attachments from a previous email |
token | (required) | API token |
Any optional fields not specified will remain blank.
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/reply" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"sEmail": "example@fogcreek.com"
}'
POST https://apisandbox.manuscript.com/api/reply
{
"ixBug": "5521",
"sFrom": "customerservice@apisandbox.com",
"sTo": "customer@example.com",
"sSubject": "Thank you for your email!",
"sEvent": "Thanks for cantacting us. We will get to your request soon. All the best, Fog Creek",
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
Case number of the affected case.
{
"data": {
"case": {
"ixBug": 5521,
"operations": [
"edit",
"spam",
"assign",
"resolve",
"reply",
"forward"
]
}
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
Case number of the affected case.
Forward an Email
Forward an email that has been received.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixBug | (required) | Case number |
sFrom | (required) | The sender’s email address |
sTo | (required) | The recipient’s email address |
sEvent | (blank) | Body text of the email |
sSubject | (blank) | The subject header of the email |
sCc | (blank) | Additional cc recipients of the email |
sBcc | (blank) | Additional bcc recipients of the email |
ixBugEventAttachment | (none) | The ixBugEvent if you want to inclue attachments from a previous email |
token | (required) | API token |
Any optional fields not specified will remain blank.
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/forward" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"sEmail": "example@fogcreek.com"
}'
POST https://apisandbox.manuscript.com/api/forward
{
"ixBug": "5521",
"sFrom": "customerservice@apisandbox.com",
"sTo": "customer@example.com",
"sSubject": "See forwarded email",
"sEvent": "See below for the forwarded email. All the best, Fog Creek",
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
Case number of the affected case.
{
"data": {
"case": {
"ixBug": 5521,
"operations": [
"edit",
"spam",
"assign",
"resolve",
"reply",
"forward"
]
}
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
Case number of the affected case.
Email Correspondents
Add a Correspondent
Add an email address to the correspondents list.
Query Parameters
Parameter | default | Description |
---|---|---|
sFullEmail | (required) | Full email address |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/addEmailAddress" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"sFullEmail": "example@fogcreek.com"
}'
POST https://apisandbox.manuscript.com/api/addEmailAddress
{
sFullEmail: example@fogcreek.com,
token: 3glpahm7bca6aaq3k5911j8p2mp7o2
}
Returns
Empty Response
{"data": {},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
An empty response.
Delete a Correspondent
Delete an email address from the correspondents list (admin only)
Query Parameters
Parameter | default | Description |
---|---|---|
sEmail | (required) | Email address to remove |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/deleteEmailAddress" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"sEmail": "example@fogcreek.com"
}'
POST https://apisandbox.manuscript.com/api/deleteEmailAddress
{
sEmail: example@fogcreek.com,
token: 3glpahm7bca6aaq3k5911j8p2mp7o2
}
Returns
{"data":{"rows_affected":"1",
"emails":[]},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null}
Rows affected by deletion.
Event Codes
evtOpened = 1
evtEdited = 2
evtAssigned = 3
evtReactivated= 4
evtReopened = 5
evtClosed = 6
evtMoved = 7 ‘ 2.0 or earlier. From 3.0 on this was recorded as an Edit
evtUnknown = 8 ‘ Not quite sure what happened; display sVerb in the UI
evtReplied = 9
evtForwarded = 10
evtReceived = 11
evtSorted = 12
evtNotSorted = 13
evtResolved = 14
evtEmailed = 15
evtReleaseNoted = 16
evtDeletedAttachment = 17
Evidence Based Scheduling
Deprecated
The evidence based scheduling API endpoints have been deprecated. If you have questions about EBS, please contact us.
Favorites
Add to Favorites (Star)
Add a bug or wiki to favorites.
Query Parameters
Parameter | default | Description |
---|---|---|
sType | (required) | The type of the item you’d like to add to favorites. Must be either “bug” or “wikipage”. |
ixItem | (required) | The ID of the item you’d like to add to favorites. |
ixPerson | logged in user | ID of the person for whom you are starring an item |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/star" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPerson": "13",
"ixItem": "5293",
"sType": "bug",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8"
}'
POST http://apisandbox.manuscript.com/api/star
{
"ixPerson": "13",
"ixItem": 5293,
"sType": "bug"
"token": nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
An empty response.
Remove From Favorites (Unstar)
Remove a bug or wiki from favorites
Query Parameters
Parameter | default | Description |
---|---|---|
sType | (required) | The type of the item you’d like to add to favorites. Must be either “bug” or “wikipage”. |
ixItem | (required) | The ID of the item you’d like to add to favorites. |
ixPerson | logged in user | ID of the person for whom you are starring an item |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/unstar" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPerson": "13",
"ixItem": "5293",
"sType": "bug",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8"
}'
POST http://apisandbox.manuscript.com/api/unstar
{
"ixPerson": "13",
"ixItem": 5293,
"sType": "bug"
"token": nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
An empty response.
List Favorites
List starred items for a user.
Query Parameters
Parameter | default | Description |
---|---|---|
ixPerson | logged in user | ID of the person for whom you are starring an item |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listFavorites" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
"ixPerson": "13"
}'
POST http://apisandbox.manuscript.com/api/star
{
"ixPerson": "13",
"token": nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{
"data": {
"favorites": {
"favorite": [
{
"sType": "Bug",
"ixItem": 5293,
"ixDocList": 1,
"nPos": 1,
"sBugTitle": "2FA enable feature by account",
"ixBugEventLatest": 34,
"ixBugEventLastView": 34,
"sWikiHeadline": "",
"ixRevisionLatest": 0,
"ixWiki": 0,
"ixRevisionLastView": 0,
"sDiscussHeadline": "",
"ixDiscussTopicLastView": 0,
"ixArea": 0,
"ixDiscussGroup": 0,
"sURLName": "",
"ixAreaNonSpam": 0,
"fFavorite": true,
"cReplies": 0,
"ixDiscussTopicLatest": 0,
"dt": ""
},
{
"sType": "WikiPage",
"ixItem": 1,
"ixDocList": 1,
"nPos": 2,
"sBugTitle": "\"Welcome to Manuscript\" Sample Case",
"ixBugEventLatest": 2,
"ixBugEventLastView": 0,
"sWikiHeadline": "Root Article",
"ixRevisionLatest": 4,
"ixWiki": 1,
"ixRevisionLastView": 4,
"sDiscussHeadline": "",
"ixDiscussTopicLastView": 0,
"ixArea": 0,
"ixDiscussGroup": 0,
"sURLName": "",
"ixAreaNonSpam": 0,
"fFavorite": true,
"cReplies": 0,
"ixDiscussTopicLatest": 0,
"dt": ""
}
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A list of favorites and associated details.
Filters
List Filters
Shows a list of Manuscript filters.
Query Parameters
Parameter | Default | Description | |
---|---|---|---|
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listFilters" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
}'
POST https://apisandbox.manuscript.com/api/listFilters
{
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
List of filters.
{
"data": {
"type": "builtin",
"sFilter": "ez",
"filters": [
"My Cases",
{
"type": "builtin",
"sFilter": "inbox",
"text": "Inbox"
}
]
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
A list of filters, including filter name and type (built-in, saved, or shared).
Set Current Filter
Set the current filter in Manuscript.
Query Parameters
Parameter | Default | Description |
---|---|---|
sFilter | (required) | The ID of the filter you’d like to set as current |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/setCurrentFilter" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"sFilter": "ez"
}'
POST https://apisandbox.manuscript.com/api/setCurrentFilter
{
"sFilter": "ez",
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
Empty response.
{
"data": {},
"errors": [],
"warnings": [],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
Empty response.
Holidays
List Site Holidays
List all of the site holidays in Manuscript.
Query Parameters
Parameter | Default | Description |
---|---|---|
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listAllSiteHolidays" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
}'
POST https://apisandbox.manuscript.com/api/listAllSiteHolidays
{
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
Data for all site-wide holidays.
{
"data": {
"holidays": {
"holiday": [
{
"ixHoliday": 1,
"ixPerson": 0,
"sHoliday": "New Year's Day",
"dtHoliday": "2018-01-01T00:00:00Z",
"dtHolidayEnd": "2018-01-01T23:59:00Z"
}
]
}
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
Data for all site-wide holidays.
Get Holiday by ID
Show the holiday with the selected ixHoliday ID.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixHoliday | (required) | The ID of the holiday you’d like to view |
token | (required) | API Token |
If API token does not belong to an administrator, API will return an insufficient permissions error if the holiday doesn’t belong to the logged in user.
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/getHolidayByID" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixHoliday": "3"
}'
POST https://apisandbox.manuscript.com/api/getHolidayByID
{
"ixHoliday": "3",
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
The data for the selected holiday.
{
"data": {
"holiday": {
"sHoliday": "Christmas",
"ixHoliday": 3,
"ixPerson": 0,
"dtHoliday": "2017-12-25T00:00:00Z",
"dtHolidayEnd": "2017-12-25T23:59:00Z"
}
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
The data for the selected holiday.
List Upcoming Holidays
List the upcoming holidays for the selected user.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixPerson | (required) | The ID of the person whose holidays you’d like to retrieve |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listUpcomingHolidays" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixPerson": "25"
}'
POST https://apisandbox.manuscript.com/api/listUpcomingHolidays
{
"ixPerson": "25",
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
The upcoming holidays for the selected user.
{
"data": {
"holidays": {
"holiday": [
{
"ixHoliday": 1,
"ixPerson": 0,
"sHoliday": "New Year's Day",
"dtHoliday": "2018-01-01T00:00:00Z",
"dtHolidayEnd": "2018-01-01T23:59:00Z"
}
]
}
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
The upcoming holidays for the selected user.
Create a New Holiday
Create a new holiday for a Manuscript user.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixPerson | (required) | The ID of the person for whom you’d like to create a new holiday |
sHoliday | (required) | The title for the holiday |
dtHoliday | (required) | Holiday start date (UTC) |
dtHolidayEnd | (required) | Holday end date (UTC) |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newHoliday" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixPerson": "25",
"sHoliday": "Halloween",
"dtHoliday": "2017-10-31T00:00:00Z",
"dtHolidayEnd": "2017-10-31T23:59:00Z",
}'
POST https://apisandbox.manuscript.com/api/newHoliday
{
"ixPerson": "25",
"sHoliday": "Halloween",
"dtHoliday": "2017-10-31T00:00:00Z",
"dtHolidayEnd: "2017-10-31T23:59:00Z",
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
The data for the newly created holiday.
{
data": {
"holiday": {
"sHoliday": "Halloween",
"ixHoliday": 4,
"ixPerson": 25,
"dtHoliday": "2017-10-31T00:00:00Z",
"dtHolidayEnd": "2017-10-31T23:59:00Z"
}
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
The data for the newly created holiday.
Edit an Existing Holiday
Revise an existing holiday in Manuscript.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixHoliday | (required) | The ID of the holiday you’d like to revise |
token | (required) | API Token |
ixPerson | (optional) | The ID of the user for whom you’d like to add this holiday |
sHoliday | (optional) | The title for the holiday |
dtHoliday | (optional) | Holiday start date (UTC) |
dtHolidayEnd | (optional) | Holday end date (UTC) |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/editHoliday" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "3glpahm7bca6aaq3k5911j8p2mp7o2",
"ixHoliday": "4",
"sHoliday": "Halloween Night",
"dtHoliday": "2017-10-31T17:00:00Z"
}'
POST https://apisandbox.manuscript.com/api/editHoliday
{
"ixHoliday": "4",
"sHoliday": "Halloween Night",
"dtHoliday": "2017-10-31T17:00:00Z",
token: "3glpahm7bca6aaq3k5911j8p2mp7o2"
}
Returns
The data for the edited holiday.
{
"data": {
"holiday": {
"sHoliday": "Halloween Night",
"ixHoliday": 4,
"ixPerson": 25,
"dtHoliday": "2017-10-31T17:00:00Z",
"dtHolidayEnd": "2017-10-31T23:59:00Z"
}
},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
The data for the edited holiday.
Kanban Columns
List Kanban Columns
Query Parameters
Parameter | default | Description |
---|---|---|
ixPlanner | (optional) | The ID of the Planner for which you’d like to retrieve the Kanban columns |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listKanbanColumns" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPlanner": "1",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listKanbanColumns
{
"ixPlanner":"1"
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The details for all Kanban Columns, limited to the requested planner, if provided.
{
"data": {
"kanbancolumns": {
"kanbancolumn": [
{
"ixPlanner": 1,
"ixKanbanColumn": 1,
"sKanbanColumn": "Doing"
},
{
"ixPlanner": 1,
"ixKanbanColumn": 2,
"sKanbanColumn": "Done"
}
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "GLGs6Bk03EWsS8rguZk0Yw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The list of Kanban Columns.
Mailboxes
List Mailboxes
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listMailboxes" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listMailboxes
{
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The list of mailboxes
{
"data": {
"mailboxes": [
{
"ixMailbox": 1,
"sEmail": "\"Manuscript On Demand\" <cases@apisandbox.manuscript.com>",
"sEmailUser": "\"taco\" <cases@apisandbox.manuscript.com>",
"sTemplate": "\n\n-- \n{fullname}\n{email}\n---------------------------------------------------------------------------\nPowered by Manuscript from Fog Creek Software. http://www.fogcreek.com/manuscript"
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "GLGs6Bk03EWsS8rguZk0Yw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The details for all mailboxes.
View a single mailbox
Query Parameters
Parameter | default | Description |
---|---|---|
ixMailbox | (required) | ID of the mailbox to query |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewMailbox" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixMailbox": "1",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/viewMailbox
{
"ixMailbox": "1",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The details for the selected mailbox
{
"data": {
"mailbox": {
"ixMailbox": 1,
"sEmail": "\"Manuscript On Demand\" <cases@apisandbox.manuscript.com>",
"sTemplate": "\n\n-- \n{fullname}\n{email}\n---------------------------------------------------------------------------\nPowered by Manuscript from Fog Creek Software. http://www.fogcreek.com/manuscript",
"sEmailUser": "\"taco\" <cases@apisandbox.manuscript.com>"
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "GLGs6Bk03EWsS8rguZk0Yw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The details for the requested mailbox.
Milestones and Dependencies
List Milestones
List all of the milestones in Manuscript, given some parameters.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixProject | (optional) | The ID of the project whose milestones you want to see. |
ixFixFor | (optional) | The ID of a milestone you want to include in the results, even if it is unassignable. |
fIncludeDeleted | 0 | Set to 1 to include unassignable milestones. |
fIncludeReallyDeleted | 0 | Set to 1 to include deleted milestones. |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listFixFors" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixProject": "1"
}'
POST https://apisandbox.manuscript.com/api/listFixFors
{
"ixProject": "1",
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
Information about all milestones that match the search.
{
"data": {
"fixfors": [
{
"ixFixFor": 1,
"sFixFor": "Undecided",
"fDeleted": false,
"dt": "",
"dtStart": "",
"sStartNote": "",
"ixProject": 0,
"sProject": "",
"setixFixForDependency": "",
"fReallyDeleted": false
},
{
"ixFixFor": 8,
"sFixFor": "Cool new milestone",
"fDeleted": false,
"dt": "2018-07-27T04:00:00Z",
"dtStart": "",
"sStartNote": "",
"ixProject": 1,
"sProject": "Sample Project",
"setixFixForDependency": "",
"fReallyDeleted": false
},
{
"ixFixFor": 9,
"sFixFor": "Cool new milestone2",
"fDeleted": false,
"dt": "2018-07-27T08:00:00Z",
"dtStart": "",
"sStartNote": "",
"ixProject": 1,
"sProject": "Sample Project",
"setixFixForDependency": "",
"fReallyDeleted": false
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "HbD2bvhKpEWZIlcnZqBmvw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
View a Milestone
View information about a milestone in Manuscript.
Query Parameters
Two options:
Parameter | Default | Description |
---|---|---|
ixFixFor | (required) | The ID of a milestone you want to view |
token | (required) | API Token |
Or
Parameter | Default | Description |
---|---|---|
sFixFor | (required) | The name of the milestone you want to view |
ixProject | (required) | The ID of the project the milestone is in |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewFixFor" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixFixFor": "1"
}'
POST https://apisandbox.manuscript.com/api/viewFixFor
{
"ixFixFor": "4",
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
The data for the specified milestone. If the returned data specifies an ixProject of -1, the milestone is a global milestone.
{
"data": {
"fixfor": {
"ixFixFor": 1,
"sFixFor": "Undecided",
"fInactive": false,
"dt": "",
"ixProject": -1,
"dtStart": "",
"sStartNote": "",
"setixFixForDependency": ""
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "C1e5fOqpF0i4p0W-3nYSTw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
New Milestone
Create a new milestone.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixProject | (required) | The ID of the project in which to create the milestone (-1 for a global milestone) |
sFixFor | (required) | The title of the new milestone |
dtRelease | (optional) | The date the milestone will end |
dtStart | (optional) | The date the milestone will begin |
fAssignable | 0 | Whether the milestone should be assignable |
sStartNote | (optional) | A note about why the start date was chosen |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newFixFor" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixProject": "1",
"sFixFor": "Cool new milestone",
"fAssignable": "1",
"dtRelease": "2018-07-27T04:00:00Z"
}'
POST https://apisandbox.manuscript.com/api/newFixFor
{
"ixProject": "1",
"sFixFor": "Cool new milestone",
"fAssignable": "1",
"dtRelease": "2018-07-27T04:00:00Z"
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
The data for the specified milestone. If the returned data specifies an ixProject of -1, the milestone is a global milestone.
{
"data": {
"fixfor": {
"ixFixFor": 8,
"sFixFor": "Cool new milestone",
"fInactive": false,
"dt": "2018-07-27T08:00:00Z",
"ixProject": 1,
"dtStart": "",
"sStartNote": "",
"setixFixForDependency": ""
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "odVcWv86KEO0myXfCZVN2A2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Edit a Milestone
Edit an existing milestone.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixFixFor | (required) | The ID of the milestone you want to edit |
sFixFor | (required) | The title of the milestone you are editing |
dtRelease | (optional) | The date the milestone will end |
dtStart | (optional) | The date the milestone will begin |
fAssignable | 0 | Whether the milestone should be assignable |
sStartNote | (optional) | A note about why the start date was chosen |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/editFixFor" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixFixFor": "8",
"sFixFor": "Cool new milestone",
"fAssignable": "1",
"dtRelease": "2019-07-27T04:00:00Z"
}'
POST https://apisandbox.manuscript.com/api/editFixFor
{
"ixFixFor": "8",
"sFixFor": "Cool new milestone",
"fAssignable": "1",
"dtRelease": "2019-07-27T04:00:00Z"
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
The data for the specified milestone. If the returned data specifies an ixProject of -1, the milestone is a global milestone.
NOTE
This API command overwrites the existing milestone with the data provided in the command. If dtRelease
is left blank, the release date for the milestone will be cleared.
{
"data": {
"fixfor": {
"ixFixFor": 8,
"sFixFor": "Cool new milestone",
"fInactive": false,
"dt": "2019-07-27T08:00:00Z",
"ixProject": 1,
"dtStart": "",
"sStartNote": "",
"setixFixForDependency": ""
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "odVcWv86KEO0myXfCZVN2A2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Add a milestone dependency
Create a dependency between two milestones. When Milestone B depends on Milestone A, EBS will assume that all work assigned to all users in Milestone A must be completed before any work in Milestone B can be started.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixFixFor | (required) | The ID of the milestone you want to depend on another milestone |
ixFixForDependsOn | (required) | The ID of the milestone which the first milestone depends on |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/addFixForDependency" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixFixFor": "8",
"ixFixForDependsOn": "9",
}'
POST https://apisandbox.manuscript.com/api/addFixForDependency
{
"ixFixFor": "8",
"ixFixForDependsOn": "9",
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
An empty response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "ZYpBODNcnEWCgD3LvBdrXQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Remove a milestone dependency
Remove a dependency between two milestones. When Milestone B depends on Milestone A, EBS will assume that all work assigned to all users in Milestone A must be completed before any work in Milestone B can be started.
Query Parameters
Parameter | Default | Description |
---|---|---|
ixFixFor | (required) | The ID of the milestone you no longer want to depend on another milestone |
ixFixForDependsOn | (required) | The ID of the milestone which the first milestone currently depends on |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/deleteFixForDependency" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixFixFor": "8",
"ixFixForDependsOn": "9",
}'
POST https://apisandbox.manuscript.com/api/deleteFixForDependency
{
"ixFixFor": "8",
"ixFixForDependsOn": "9",
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
An empty response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "ZYpBODNcnEWCgD3LvBdrXQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Permissions
Set Permissions for a Single User
Query Parameters
Parameter | default | Description |
---|---|---|
sAclSection | (required) | Designates the type of Manuscript entity for which you are granting pemrisisons. One of “project” or “wiki. |
ixPerson | (required) | The ID of the user for whom you are granting permission |
ixSection | (required) | The ID of the Project, Discussion Group, or Wiki to which you are granting permission |
sPermission | (required) | The permissions level you wish to grant. One of “none”, “read”, “write” or “admin” |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/setPermissionsForPerson" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"sAclSection": "project",
"ixPerson": "24",
"ixSection": "4",
"sPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/setPermissionsForPerson
{
"sAclSection": "project",
"ixPerson": "24",
"ixSection": "4",
"sPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
Empty response
{"data": {},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
An empty response.
Set Permissions for a User Group
Query Parameters
Parameter | default | Description |
---|---|---|
sAclSection | (required) | Designates the type of Manuscript entity for which you are granting pemrisisons. One of “project” or “wiki. |
ixPermissionGroup | (required) | The ID of the group for whom you are granting permission |
ixSection | (required) | The ID of the Project, Discussion Group, or Wiki to which you are granting permission |
sPermission | (required) | The permission level you wish to grant. One of “none”, “read”, “write” or “admin” |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/setPermissionsForGroup" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"sAclSection": "project",
"ixPermissionGroup": "24",
"ixSection": "4",
"sPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/setPermissionsForGroup
{
"sAclSection": "project",
"ixPermissionGroup": "24",
"ixSection": "4",
"sPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
Empty response
{"data": {},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
An empty response.
Set Permissions for a Built In User Group
Query Parameters
Parameter | default | Description |
---|---|---|
sAclSection | (required) | Designates the type of Manuscript entity for which you are granting pemrisisons. One of “project” or “wiki. |
sPermissionGroupSpecial | (required) | One of “normal”, “community”, or “public” |
ixSection | (required) | The ID of the Project, Discussion Group, or Wiki |
sPermission | (required) | The permission level to grant. One of “none”, “read”, “write” or “admin” |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/setPermissionsForGroupSpecial" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"sAclSection": "project",
"sPermissionGroupSpecial": "normal",
"ixSection": "4",
"sPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/setPermissionsForGroupSpecial
{
"sAclSection": "project",
"sPermissionGroupSpecial": "normal",
"ixSection": "4",
"sPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
Empty response
{"data": {},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
An empty response.
List Sections for Which a Single User Has Been Granted Permissions
Query Parameters
Parameter | default | Description |
---|---|---|
sAclSection | (required) | Designates the type of Manuscript entity for which you are granting pemrisisons. One of “project” or “wiki. |
ixPerson | (required) | The ID of the user whose permitted sections you’d like to see |
sMinPermission | (required) | Minimum permission level you wish to check. One of “none”, “read”, “write” or “admin” |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/getSectionsForPerson" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"sAclSection": "project",
"ixPerson": "24",
"sMinPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/getSectionsForPerson
{
"sAclSection": "project",
"ixPerson": "24",
"sMinPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The list of sections
{
"data":{
"sections":{
"section":[
{
"ixProject":1,
"sProject":"Sample Project",
"ixPersonOwner":2,
"fDeleted":false,
"fInbox":false,
"ixWorkflow":1,
"sPublicSubmitEmail":"",
"sIPColumns":"",
"ixSection":1,
"iPermission":2
},
...
]
}
},
"errors":[ ],
"warnings":[ ],
"meta":{
"jsdbInvalidator":"9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed":{
"min":5,
"max":5
}
},
"errorCode":null,
"maxCacheAge":null
}
The sections the specified user has at least the specific minimum permission for.
List Sections for Which a User Group Has Been Granted Permissions
Query Parameters
Parameter | default | Description |
---|---|---|
sAclSection | (required) | Designates the type of Manuscript entity for which you’d like to check permisisons. One of “project” or “wiki. |
ixPermissionGroup | (required) | The ID of the group whose permitted sections you’d like to see |
sMinPermission | (required) | Minimum permission level you wish to check. One of “none”, “read”, “write” or “admin” |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/getSectionsForGroupn" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"sAclSection": "project",
"ixPermissionGroup": "1",
"sMinPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/getSectionsForGroupn
{
"sAclSection": "project",
"ixPermissionGroup": "1",
"sMinPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The list of sections
{
"data":{
"sections":{
"section":[
{
"sProject": "Pomegranate",
"ixPersonOwner": 13,
"fDeleted": false,
"fInbox": false,
"ixWorkflow": 1,
"sPublicSubmitEmail": "",
"sIPColumns": "",
"ixACL": 4,
"ixPerson": 0,
"ixPermissionGroup": 1,
"ixDiscussGroup": 0,
"ixWiki": 0,
"ixProject": [
4,
4
],
"iPermission": 1,
"ixAction": 0
},
...
]
}
},
"errors":[ ],
"warnings":[ ],
"meta":{
"jsdbInvalidator":"9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed":{
"min":5,
"max":5
}
},
"errorCode":null,
"maxCacheAge":null
}
The sections the specified user group has at least the specific minimum permission for.
List Sections for Which a Built In User Group Has Been Granted Permissions
Query Parameters
Parameter | default | Description |
---|---|---|
sAclSection | (required) | Designates the type of Manuscript entity for which you’d like to check permisisons. One of “project” or “wiki. |
sPermissionGroupSpecial | (required) | One of “normal”, “community”, or “public” |
sMinPermission | (required) | Minimum permission level you wish to check. One of “none”, “read”, “write” or “admin” |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/getSectionsForGroupSpecial" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"sAclSection": "project",
"sPermissionGroupSpecial": "normal",
"sMinPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/getSectionsForGroupSpecial
{
"sAclSection": "project",
"sPermissionGroupSpecial": "normal",
"sMinPermission": "read",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The list of sections
{
"data":{
"sections":{
"section":[
{
"sProject": "Pomegranate",
"ixPersonOwner": 13,
"fDeleted": false,
"fInbox": false,
"ixWorkflow": 1,
"sPublicSubmitEmail": "",
"sIPColumns": "",
"ixACL": 4,
"ixPerson": 0,
"ixPermissionGroup": 1,
"ixDiscussGroup": 0,
"ixWiki": 0,
"ixProject": [
4,
4
],
"iPermission": 1,
"ixAction": 0
},
...
]
}
},
"errors":[ ],
"warnings":[ ],
"meta":{
"jsdbInvalidator":"9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed":{
"min":5,
"max":5
}
},
"errorCode":null,
"maxCacheAge":null
}
The sections the specified built-in user group has at least the specific minimum permission for.
Create a User Group
Query Parameters
Parameter | default | Description |
---|---|---|
sName | (required) | Name of the new user group. If another group (deleted or not) has the same name, an error is returned. |
sNotes | Notes about your new user group. | |
fCommunity | (optional) | Set to “1” to create a new community user group. |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/createPermissionGroup" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"sName": "Durian",
"sNotes": "A special kind of fruit",
"fCommunity": "1",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/createPermissionGroup
{
"sName": "Durian",
"sNotes": "A special kind of fruit",
"fCommunity": "1",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The ID of the newly-created group
{
"data":{
"text": "2"
},
"errors":[ ],
"warnings":[ ],
"meta":{
"jsdbInvalidator":"9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed":{
"min":5,
"max":5
}
},
"errorCode":null,
"maxCacheAge":null
}
The ID of the newly-created group.
Delete a User Group
Query Parameters
Parameter | default | Description |
---|---|---|
ixPermissionGroup | (required) | The id of the permission group you’d like to delete. |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/deletePermissionGroup" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPermissionGroup": "2",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/deletePermissionGroup
{
"ixPermissionGroup": "2",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
Empty response
{
"data":{ },
"errors":[ ],
"warnings":[ ],
"meta":{
"jsdbInvalidator":"9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed":{
"min":5,
"max":5
}
},
"errorCode":null,
"maxCacheAge":null
}
An empty response
List Permission Groups
Query Parameters
Parameter | default | Description |
---|---|---|
fCommunity | (optional) | Set to 1 to return only community user groups. |
fDeleted | (optional) | Set to 1 to return only deleted user groups. |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listPermissionGroups" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"fCommunity": "",
"fDeleted": "",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listPermissionGroups
{
"fCommunity": "1",
"fDeleted": "1",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The list of groups
{
"data":{
"permissionGroups": {
"permissionGroup": [
{
"ixPermissionGroup": 2,
"sName": "Durian",
"sNotes": "A special kind of fruit",
"fDeleted": true,
"fCommunity": true
},
{
"ixPermissionGroup": 3,
"sName": "Durian2",
"sNotes": "A another special kind of fruit",
"fDeleted": false,
"fCommunity": true
},
...
]
}
},
"errors":[ ],
"warnings":[ ],
"meta":{
"jsdbInvalidator":"9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed":{
"min":5,
"max":5
}
},
"errorCode":null,
"maxCacheAge":null
}
The list of groups matching to supplied criteria.
List Permission Group Members
Query Parameters
Parameter | default | Description |
---|---|---|
ixPermissionGroup | (required) | The ID of the group whose members you’d like to see |
token | (required) | Manuscript administrator API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listPermissionGroupMembers" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPermissionGroup": 2,
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listPermissionGroupMembers
{
"ixPermissionGroup": 2,
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The list of members in the requested user group
{
"data": {
"permissionGroupMembers": {
"permissionGroupMember": {
"ixPerson": 11
},
{
"ixPerson": 13
}
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The list of members in the requested user group.
Add User to Permission Group
Query Parameters
Parameter | default | Description |
---|---|---|
ixPerson | (required) | The ID of the person you’d like to add to a user group |
ixPermissionGroup | (required) | The ID of the user group to which you’re adding a user |
token | (required) | Manuscript administrator API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/addPersonToGroup" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPerson": 4,
"ixPermissionGroup": 2,
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/addPersonToGroup
{
"ixPerson": 4,
"ixPermissionGroup": 2,
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
True, if the user was added to the group
{
"data": {
"text": "True"
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
True, if the user was added to the group.
Remove User from Permission Group
Query Parameters
Parameter | default | Description |
---|---|---|
ixPerson | (required) | The ID of the person you’d like to add to a user group |
ixPermissionGroup | (required) | The ID of the user group to which you’re adding a user |
token | (required) | Manuscript administrator API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/removePersonFromGroup" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPerson": 4,
"ixPermissionGroup": 2,
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/removePersonFromGroup
{
"ixPerson": 4,
"ixPermissionGroup": 2,
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
True, if the user was removed from the group
{
"data": {
"text": "True"
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
True, if the user was removed from the group.
Priorities
List Priorities
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listPriorities" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listPriorities
{
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The list of priorities
{
"data": {
"priorities": [
{
"ixPriority": 1,
"fDefault": false,
"sPriority": "Must Fix"
},
{
"ixPriority": 2,
"fDefault": false,
"sPriority": "Must Fix"
},
{
"ixPriority": 3,
"fDefault": true,
"sPriority": "Must Fix"
},
{
"ixPriority": 4,
"fDefault": false,
"sPriority": "Fix If Time"
},
...
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "GP-LkcxBu0yDvgyocnIezA2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The list of all priorities.
View a single priority
Query Parameters
Parameter | default | Description |
---|---|---|
ixPriority | (required) | ID of the priority to query |
token | (required) | Manuscript API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewPriority" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPriority": "3",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/viewPriority
{
"ixPriority": "3",
"token":"nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
Data for the selected priority
{
"data": {
"priority": {
"ixPriority": 3,
"sPriority": "Must Fix"
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "GP-LkcxBu0yDvgyocnIezA2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The data for the requested priority.
Projects and Areas
List Projects
Get a list of projects in Manuscript
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | An API token |
fWrite | 0 | Set to 1 to include only projects you have “Modify” permissions on. Otherwise, projects on which you have “Read” access will be returned. |
ixProject | (optional) | The ID of a project. If set, the results will include the project even if it is deleted. |
fDeleted | 0 | Set to 1 to include deleted projects in the results. |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listProjects" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du"
}'
POST https://apisandbox.manuscript.com/api/listProjects
{
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
Details about the projects in Manuscript
{
"data": {
"projects": [
{
"ixProject": 3,
"sProject": "Clementine",
"ixPersonOwner": 5,
"sPersonOwner": "Marlene",
"sEmail": "marlene@mistyriversoftware.com",
"sPhone": "",
"fInbox": false,
"ixWorkflow": 1,
"fDeleted": false
},
{
"ixProject": 2,
"sProject": "Inbox",
"ixPersonOwner": 2,
"sPersonOwner": "Nancy Hawa",
"sEmail": "nancy@fogcreek.com",
"sPhone": "9172731481",
"fInbox": true,
"ixWorkflow": 1,
"fDeleted": false
},
{
"ixProject": 4,
"sProject": "Pomegranate",
"ixPersonOwner": 13,
"sPersonOwner": "Kevin",
"sEmail": "kevin@mistyriversoftware.com",
"sPhone": "",
"fInbox": false,
"ixWorkflow": 1,
"fDeleted": false
},
{
"ixProject": 1,
"sProject": "Sample Project",
"ixPersonOwner": 2,
"sPersonOwner": "Nancy Hawa",
"sEmail": "nancy@fogcreek.com",
"sPhone": "9172731481",
"fInbox": false,
"ixWorkflow": 1,
"fDeleted": false
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "hx62somAJkeg-zTt1495yw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
View a Project
View details of a particular project in Manuscript
Query Parameters
Either:
Parameter | default | Description |
---|---|---|
token | (required) | An API token |
ixProject | (required) | The ID of a project |
Or:
Parameter | default | Description |
---|---|---|
token | (required) | An API token |
sProject | (required) | The title of a project |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewProject" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixProject": "4"
}'
POST https://apisandbox.manuscript.com/api/viewProject
{
token: "nt8sccegg8d2jc4nd5evp324jj29du",
ixProject: 4
}
Returns
Details about the selected project
{
"data": {
"project": {
"ixProject": 4,
"sProject": "Pomegranate",
"ixPersonOwner": 13,
"fInbox": false,
"fDeleted": false,
"sPublicSubmitEmail": ""
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "hx62somAJkeg-zTt1495yw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Create a Project
Create a new project in Manuscript
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | An API token |
sProject | (required) | The title of a project |
ixPersonPrimaryContact | (required) | The ID of the person who will be the primary contact for this project. |
fAllowPublicSubmit | 0 | Set to 1 to allow anonymous users to submit cases in this project. |
fInbox | 0 | Set to 1 to make this project an inbox project |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newProject" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"sProject": "Brand New Project",
"ixPersonPrimaryContact": "13"
}'
POST https://apisandbox.manuscript.com/api/newProject
{
token: "nt8sccegg8d2jc4nd5evp324jj29du",
sProject: "Brand New Project",
ixPersonPrimaryContact: "13"
}
Returns
Details about the created project
{
"data": {
"project": {
"ixProject": 5,
"sProject": "Brand New Project",
"ixPersonOwner": 13,
"fInbox": false,
"fDeleted": false,
"sPublicSubmitEmail": ""
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "g1W1utPufEiSrejG_KCNgg2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
List Areas
Get a list of areas in Manuscript
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | An API token |
fWrite | 0 | Set to 1 to include only areas you have “Modify” permissions on. Otherwise, projects on which you have “Read” access will be returned. |
ixProject | (optional) | The ID of a project. If set, the results will only include areas from this project. |
ixArea | (optional) | The ID of an area. If set, the results will include the specified area, even if it is deleted. |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listAreas" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixProject": "3"
}'
POST https://apisandbox.manuscript.com/api/listAreas
{
token: "nt8sccegg8d2jc4nd5evp324jj29du",
ixProject: 3
}
Returns
Details about the areas in Manuscript. If ixPersonOwner
is 0 for a particular area, the primary contact for that area is whoever is the primary contact for the project.
{
"data": {
"areas": [
{
"ixArea": 10,
"sArea": "Development",
"ixProject": 3,
"ixPersonOwner": 0,
"sPersonOwner": "",
"sProject": "Clementine",
"nType": 0,
"cDoc": 0
},
{
"ixArea": 12,
"sArea": "Documentation",
"ixProject": 3,
"ixPersonOwner": 0,
"sPersonOwner": "",
"sProject": "Clementine",
"nType": 0,
"cDoc": 0
},
{
"ixArea": 8,
"sArea": "Misc",
"ixProject": 3,
"ixPersonOwner": 0,
"sPersonOwner": "",
"sProject": "Clementine",
"nType": 0,
"cDoc": 0
},
{
"ixArea": 11,
"sArea": "Testing",
"ixProject": 3,
"ixPersonOwner": 0,
"sPersonOwner": "",
"sProject": "Clementine",
"nType": 0,
"cDoc": 0
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "g1W1utPufEiSrejG_KCNgg2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
View an Area
View details of a particular area in Manuscript
Query Parameters
Either:
Parameter | default | Description |
---|---|---|
token | (required) | An API token |
ixArea | (required) | The ID of an area |
Or:
Parameter | default | Description |
---|---|---|
token | (required) | An API token |
sArea | (required) | The title of an area |
ixProject | (required) | The ID of the project that the area is in. |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewArea" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixArea": "10"
}'
POST https://apisandbox.manuscript.com/api/viewArea
{
token: "nt8sccegg8d2jc4nd5evp324jj29du",
ixArea: 10
}
Returns
Details about the selected area. If ixPersonOwner
is -1, the primary contact for that area is whoever is the primary contact for the project.
{
"data": {
"area": {
"ixArea": 10,
"sArea": "Development",
"ixProject": 3,
"ixPersonOwner": -1,
"nType": 0,
"cDoc": 0,
"fDeleted": false
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "g1W1utPufEiSrejG_KCNgg2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Create an Area
Create a new area in Manuscript
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | An API token |
ixProject | (required) | The ID of a project |
sArea | (required) | The title of the area |
ixPersonPrimaryContact | (required) | The ID of the person who will be the primary contact for this project. Set to -1 to make the area’s primary contact be whoever is the project’s primary contact. |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newArea" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du",
"ixProject": "4",
"sArea": "Brand New Area",
"ixPersonPrimaryContact": "-1"
}'
POST https://apisandbox.manuscript.com/api/newArea
{
token: "nt8sccegg8d2jc4nd5evp324jj29du",
ixProject: 4,
sArea: "Brand New Area",
ixPersonPrimaryContact: "-1"
}
Returns
Details about the created area
{
"data": {
"area": {
"ixArea": 17,
"sArea": "Brand New Area",
"ixProject": 4,
"ixPersonOwner": -1,
"nType": 0,
"cDoc": 0,
"fDeleted": false
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "D5Hz_8O1DUamZeINwyvSkA2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Site and User Settings
View User Settings
View your user settings
Query Parameters
Parameter | Default | Description |
---|---|---|
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewSettings" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du"
}'
POST https://apisandbox.manuscript.com/api/viewSettings
{
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
User settings for the logged-on user
{
"data": {
"settings": {
"sTimeZoneKey": "*",
"nTimeZoneOffset": -14400,
"sServerTime": "2017-11-01T21:36:03Z",
"cols": [
"sCategory",
"ixBug",
"sLatestTextSummary",
"sStatus",
"ixPersonOpenedBy",
"sPriority"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "hx62somAJkeg-zTt1495yw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
View Site Settings
View your site settings
Query Parameters
Parameter | Default | Description |
---|---|---|
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewSiteSettings" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nt8sccegg8d2jc4nd5evp324jj29du"
}'
POST https://apisandbox.manuscript.com/api/viewSiteSettings
{
token: "nt8sccegg8d2jc4nd5evp324jj29du"
}
Returns
Site settings
{
"data": {
"sitesettings": {
"sVersion": "8.20.31",
"sCustom1": "Version",
"sCustom2": "Computer"
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "hx62somAJkeg-zTt1495yw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Snippets
List Snippets
Generate a list of snippets available to logged-in user.
Query Parameters
Parameter | default | Description |
---|---|---|
fGlobalOnly | 0 | Set to 1 to return only global snippets. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listSnippets" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"fGlobalOnly": "0",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8"
}'
POST http://apisandbox.manuscript.com/api/listSnippets
{
"fGlobalOnly": "0",
"token": l4gmhsmfvc4j8bpvvkqi23t2041ab8
}
Returns
Details about existing snippets.
{
"data": {
"ix": 1,
"fGlobal": true,
"name": "Hello",
"comment": "",
"snippets": [
"Hello!"
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "wM9J_KxJCUeaVKWZz072nA2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Source Control
New Checkin
Associate a new Source Control commit with a Manuscript case.
Query Parameters
Parameter | default | Description |
---|---|---|
ixBug | (required) | The case with which to associate the checkin |
sFile | (required) | The name of the file that was checked in |
sPrev | (required) | The revision number of the changeset preceeding the new checkin |
sNew | (required) | The revision number of the changeset being checked in |
token | (required) | API token |
ixRepository | (required) | The repository number. |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newCheckin" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixBug": "5520",
"sFile": "hello.py"
"sPrev": "935c06b75b6c56f31ef8b0880ac4175d145eb336"
"sNew": "1b6d979a2ef4ee5850459767cbaf919c26f1eafa"
"ixRepository": "1"
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8"
}'
POST http://apisandbox.manuscript.com/api/newCheckin
{
"ixBug": 5520,
"sFile": "hello.py",
"sPrev": "935c06b75b6c56f31ef8b0880ac4175d145eb336",
"sNew": "1b6d979a2ef4ee5850459767cbaf919c26f1eafa",
"ixRepository": "1",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8"
}
Returns
Empty Response
List Checkins
Generate a list of commits assoicated with a case.
Query Parameters
Parameter | default | Description |
---|---|---|
ixBug | (required) | Case number of bug to find its checkins. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listCheckins" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixBug": "5520",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8"
}'
POST http://apisandbox.manuscript.com/api/listCheckins
{
"ixBug": 5520,
"token": l4gmhsmfvc4j8bpvvkqi23t2041ab8
}
Returns
Details of Source Control checkins associated with this case.
{
"data": {
"checkins": [
{
"ixCVS": 1,
"ixBug": 5520,
"sFile": "hello.py",
"sPrev": "935c06b75b6c56f31ef8b0880ac4175d145eb336",
"sNew": "935c06b75b6c56f31ef8b0880ac4175d145eb336",
"ixRepository": 4
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "jGJtarJnF0q2oJ7Y8ylT2Q2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Statuses
List Statuses
Generate a list of statuses.
Query Parameters
Parameter | default | Description |
---|---|---|
ixCategory | (returns all) | The ID of category for which you’d like to see statuses. |
fResolved | 0 | Set to 1 to return only resolved statuses. |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listStatuses" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
"ixCategory": "1",
"fResolved": "1"
}'
POST http://apisandbox.manuscript.com/api/listStatuses
{
"ixCategory": "1",
"fResolved": 0,
"token": nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{
"data": {
"statuses": [
{
"ixStatus": 2,
"sStatus": "Resolved (Fixed)",
"ixCategory": 1,
"fWorkDone": true,
"fResolved": true,
"fDuplicate": false,
"fDeleted": false,
"fReactivate": false,
"iOrder": 0
},
{
"ixStatus": 3,
"sStatus": "Resolved (Not Reproducible)",
"ixCategory": 1,
"fWorkDone": false,
"fResolved": true,
"fDuplicate": false,
"fDeleted": false,
"fReactivate": false,
"iOrder": 1
},
{
"ixStatus": 4,
"sStatus": "Resolved (Duplicate)",
"ixCategory": 1,
"fWorkDone": false,
"fResolved": true,
"fDuplicate": true,
"fDeleted": false,
"fReactivate": false,
"iOrder": 2
},
{
"ixStatus": 5,
"sStatus": "Resolved (Postponed)",
"ixCategory": 1,
"fWorkDone": false,
"fResolved": true,
"fDuplicate": false,
"fDeleted": false,
"fReactivate": true,
"iOrder": 3
},
{
"ixStatus": 6,
"sStatus": "Resolved (Won't Fix)",
"ixCategory": 1,
"fWorkDone": false,
"fResolved": true,
"fDuplicate": false,
"fDeleted": false,
"fReactivate": false,
"iOrder": 4
},
{
"ixStatus": 7,
"sStatus": "Resolved (By Design)",
"ixCategory": 1,
"fWorkDone": false,
"fResolved": true,
"fDuplicate": false,
"fDeleted": false,
"fReactivate": false,
"iOrder": 5
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Details for requested statuses.
View Status
View details of a single status
Query Parameters
Takes two possible sets of parameters.
Parameter | default | Description |
---|---|---|
ixStatus | (required) | The ID of the status you’d like to see |
token | (required) | API token |
OR
Parameter | default | Description |
---|---|---|
sStatus | (required) | The name of the status you’d like to see |
ixCategory | (required) | The ID of the category associated with the status |
token | (required) | API token |
HTTP Request
Using Status ID
ixStatus
curl -X "POST" "https://apisandbox.manuscript.com/api/viewStatus" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixStatus": "7",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
}'
Using ixStatus:
POST http://apisandbox.manuscript.com/api/viewStatus
{
"ixStatus": 7,
"token": nqi9dvugilleed680nanjc0o3rc3iz
}
Using Category ID and Status Name
ixCategory and sStatus
curl -X "POST" "https://apisandbox.manuscript.com/api/viewStatus" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixCategory": "1",
"sStatus": "Resolved (By Design)"
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
}'
POST http://apisandbox.manuscript.com/api/viewStatus
{
"ixCategory": 1,
"sStatus": "Resolved (By Design)"
"token": nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Details of the matching status.
{
"data": {
"status": {
"ixStatus": 7,
"sStatus": "Resolved (By Design)",
"ixCategory": 1,
"fWorkDone": false,
"fResolved": true,
"fDuplicate": false,
"fDeleted": false,
"fReactivate": false,
"iOrder": 5
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Details of the matching status.
If no matching status, empty response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Subscriptions
Subscribe
This endpoint allows you to subscribe yourself to a case (send only your token and ixBug) or, if you’ve got an admin token, subscribe another user to a case.
Query Parameters
Parameter | default | Description |
---|---|---|
ixBug or ixWikiPage | (required) | ID of the case or wiki article |
ixPerson | logged in user | ID of the person who’ll be subscribed (only admins can use this parameter) |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/subscribe" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixBug": "5292",
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST http://apisandbox.manuscript.com/api/subscribe
{
ixBug: 5037,
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{"data": {},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
An empty response.
Unsubscribe
This endpoint allows you to unsubscribe yourself from a case (or to unsubscribe another user, if using an Administrator’s API token).
Query Parameters
Parameter | default | Description |
---|---|---|
ixBug or ixWikiPage | (required) | ID of the case or wiki article |
ixPerson | logged in user | ID of the person who’ll be subscribed (only admins can use this parameter) |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/unsubscribe" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixBug": "5292",
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST http://apisandbox.manuscript.com/api/unsubscribe
{
ixBug: 5037,
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{"data": {},
"errors":[],
"warnings":[],
"meta":
{"jsdbInvalidator":"0VWMee3CTEeeiJeOGm5kDw2",
"clientVersionAllowed":{"min":4,"max":4}
},
"errorCode":null,
"maxCacheAge":null
}
An empty response.
Tags
List Tags
Generate a list of tags.
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listTags" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8"
}'
POST http://apisandbox.manuscript.com/api/listTags
{
"token": nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{
"data": {
"tags": [
{
"ixTag": 4,
"sTag": "kittens",
"cTagUses": 2
},
{
"ixTag": 5,
"sTag": "balloons",
"cTagUses": 1
},
{
"ixTag": 3,
"sTag": "rainbows",
"cTagUses": 1
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
ID, name, and number of uses of all tags.
Time Tracking
Start Work
Start work on a specific case as the logged in user. It is only possible to start work on a case that already has an estimate.
Query Parameters
Parameter | default | Description |
---|---|---|
ixBug | (required) | ID of the bug you’ll be tracking time against |
token | (required) | API token. |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/startWork" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
"ixBug": "2"
}'
POST https://apisandbox.manuscript.com/api/startWork
{
ixBug: 2,
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Successful Response
Empty Response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Empty response.
Failed Response
If the case has no estimate
{
"data": {},
"errors": [
{
"message": "Error 7: Case 2 has no estimate",
"detail": null,
"code": "7"
}
],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": 400,
"maxCacheAge": null
}
Returns “Error 7: Case {case ID} has no estimate” for cases without an estimate.
Stop Work
Start any currently active time interval for the logged in user.
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | API token. |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/stopWork" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8"
}'
POST https://apisandbox.manuscript.com/api/stopWork
{
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Empty response.
New Time Interval
Create a new time tracking interval.
Query Parameters
Parameter | default | Description |
---|---|---|
ixBug | (required) | ID of the case against which work is being tracked |
dtStart | (required) | The start date/time (UTC) of the interval |
dtEnd | (required) | The end date/time of the interval |
ixPerson | ID of logged in user | the ID of the person performing the work (available to administrators only) |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newInterval" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPerson": "5",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
"ixBug": "2",
"dtStart": "2017-06-22 08:30:00Z",
"dtEnd": "2017-06-22 09:30:00Z"
}'
POST https://apisandbox.manuscript.com/api/newInterval
{
"ixPerson": "5",
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"ixBug": "2",
"dtStart": "2017-06-22 08:30:00Z",
"dtEnd": "2017-06-22 09:30:00Z",
}
Returns
{
"data": {
"interval": {
"ixInterval": 13,
"ixBug": 2,
"ixPerson": 5,
"dtStart": "2017-06-22T08:30:00Z",
"dtEnd": "2017-06-22T09:30:00Z"
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Details of the newly created interval.
View Interval
View details for an existing interval.
Query Parameters
Parameter | default | Description |
---|---|---|
ixInterval | (required) | ID for the interval to be updated |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewInterval" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
"ixInterval": "13"
}'
POST https://apisandbox.manuscript.com/api/viewInterval
{
"ixInterval": "13",
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
}
Returns
{
"data": {
"interval": {
"ixInterval": 13,
"ixBug": 2,
"ixPerson": 5,
"dtStart": "2017-06-22T08:30:00Z",
"dtEnd": "2017-06-22T09:30:00Z"
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Details of the selected interval.
List Intervals
List existing intervals, optionally limited by time period, person, or case number.
Query Parameters
Parameter | default | Description |
---|---|---|
ixBug | All | ID of the case for which you want to view intervals |
ixPerson | Currently logged in user | ID of the person for which you want to view intervals. Set to 1 to list intervals for all users. |
dtStart | None | Beginning of time frame for which you want to view intervals |
dtEnd | None | End of the time frame for which you want to view intervals |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listIntervals" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPerson": "6",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
"ixBug": "2",
"dtStart": "2017-06-20 10:30:00Z",
"dtEnd": "2017-06-23 11:30:00Z"
}'
POST https://apisandbox.manuscript.com/api/listIntervals
{
"ixPerson": "6",
"ixBug": "2",
"dtStart": "2017-06-20 10:30:00Z",
"dtEnd": "2017-06-23 11:30:00Z"
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
}
Returns
{
"data": {
"intervals": [
{
"ixInterval": 14,
"ixPerson": 6,
"ixBug": 2,
"dtStart": "2017-06-22T10:30:00Z",
"dtEnd": "2017-06-22T11:30:00Z",
"fDeleted": false,
"sTitle": "Intro Case for Nancy Hawa"
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Details of the selected interval.
Edit a Time Interval
Update a time tracking interval.
Query Parameters
Parameter | default | Description |
---|---|---|
ixInterval | (required) | ID for the interval to be updated |
ixBug | retains original ixBug | ID of the case against which work is being tracked |
dtStart | retains original dtStart | The start date/time (UTC) of the interval |
dtEnd | retains original dtEnd | The end date/time of the interval |
ixPerson | retains original ixPerson | the ID of the person performing the work (available to administrators only) |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/editInterval" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPerson": "6",
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
"ixInterval": "13",
"ixBug": "2",
"dtStart": "2017-06-22 10:30:00Z",
"dtEnd": "2017-06-22 11:30:00Z"
}'
POST https://apisandbox.manuscript.com/api/editInterval
{
"ixInterval": "13",
"ixPerson": "6",
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"ixBug": "2",
"dtStart": "2017-06-22 10:30:00Z",
"dtEnd": "2017-06-22 11:30:00Z",
}
Returns
{
"data": {
"interval": {
"ixInterval": 14,
"ixBug": 2,
"ixPerson": 6,
"dtStart": "2017-06-22T10:30:00Z",
"dtEnd": "2017-06-22T11:30:00Z"
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Details for the selected intervals.
Delete Interval
Delete an interval.
Query Parameters
Parameter | default | Description |
---|---|---|
ixInterval | (required) | ID for the interval to be updated |
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/deleteInterval" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "l4gmhsmfvc4j8bpvvkqi23t2041ab8",
"ixInterval": "13"
}'
POST https://apisandbox.manuscript.com/api/deleteInterval
{
"ixInterval": "13",
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
}
Returns
Empty response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "vgkQU2dOaEqCBgScJwrdfQ2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Empty response.
Users
List People
This endpoint allows you to list users from the site.
Query Parameters
Parameter | default | Description |
---|---|---|
fIncludeActive | 1 | Set to 1 to include active users, 0 to exclude them |
fIncludeNormal | 1 | Set to 1 to include normal users, 0 to exclude them |
fIncludeDeleted | 0 | Set to 1 to include deleted users, 0 to exclude them |
fIncludeCommunity | 0 | Set to 1 to include community users, 0 to exclude them |
fIncludeVirtual | 0 | Set to 1 to include virtual users, 0 to exclude them |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listPeople" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listPeople
{
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
The list of users
{
"data": {
"people": [
{
"ixPerson": 21,
"sFullName": "Andrew",
"sEmail": "andrew@manu.script",
"sPhone": "",
"fAdministrator": true,
"fCommunity": false,
"fVirtual": false,
"fDeleted": false,
"fNotify": true,
"sHomepage": "",
"sLocale": "*",
"sLanguage": "*",
"sTimeZoneKey": "*",
"sLDAPUid": "",
"dtLastActivity": "2017-09-15T15:30:14Z",
"fRecurseBugChildren": true,
"fPaletteExpanded": false,
"ixBugWorkingOn": 0,
"sFrom": ""
},
{
"ixPerson": 9,
"sFullName": "Ariel",
"sEmail": "ariel@manu.script",
"sPhone": "",
"fAdministrator": false,
"fCommunity": false,
"fVirtual": false,
"fDeleted": false,
"fNotify": false,
"sHomepage": "",
"sLocale": "*",
"sLanguage": "*",
"sTimeZoneKey": "*",
"sLDAPUid": "",
"dtLastActivity": "",
"fRecurseBugChildren": true,
"fPaletteExpanded": false,
"ixBugWorkingOn": 0,
"sFrom": ""
},
{
"ixPerson": 6,
"sFullName": "Brenda",
"sEmail": "brenda@manu.script",
"sPhone": "",
"fAdministrator": false,
"fCommunity": false,
"fVirtual": false,
"fDeleted": false,
"fNotify": false,
"sHomepage": "",
"sLocale": "*",
"sLanguage": "*",
"sTimeZoneKey": "*",
"sLDAPUid": "",
"dtLastActivity": "",
"fRecurseBugChildren": true,
"fPaletteExpanded": false,
"ixBugWorkingOn": 0,
"sFrom": ""
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "jUANgAlWn02K2r0N1PK7iA2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A list of users
New Person
This endpoint allows you to create a new user.
Query Parameters
Parameter | default | Description |
---|---|---|
sEmail | (required) | The email address of the new user |
sFullname | (required) | The full name of the new user |
nType | 0 | Set to 0 for a normal user, 1 for an administrator, 2 for a community user, or 3 for a virtual user |
fActive | 1 | Set to 1 for active, or 0 for inactive |
sPassword | (random) | The user’s password |
sLocale | (site default) | The user’s locale |
sLanguage | (site default) | The user’s language |
sTimeZoneKey | (site default) | The user’s time zone |
sSnippetKey | (site default) | The key that the user will use to trigger snippets |
fNotify | 1 | Whether the user have email notifications enabled |
sPhone | (blank) | The user’s phone number |
sHomepage | (blank) | The user’s homepage address |
fDeleted | (false) | Set to 1 to mark the user as Inactive (does not delete the user, or their history) |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newPerson" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"sEmail": "kiwi@manu.script",
"sFullname": "Kiwi Bird"
}'
POST https://apisandbox.manuscript.com/api/newPerson
{
token: nqi9dvugilleed680nanjc0o3rc3iz,
sEmail: kiwi@manu.script,
sFullname: Kiwi Bird
}
Returns
The newly created user
{
"data": {
"person": {
"ixPerson": 25,
"sFullName": "Kiwi Bird",
"sEmail": "kiwi@manu.script",
"sPhone": "",
"fAdministrator": false,
"fCommunity": false,
"fVirtual": false,
"fDeleted": false,
"sHomepage": "",
"sLocale": "*",
"sLanguage": "*",
"sTimeZoneKey": "*",
"sSnippetKey": "`",
"ixBugWorkingOn": 0,
"nType": 0
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "aD-sLa01ykyETxS5Jw_T5Q2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A newly created user
Edit Person
This endpoint allows you to edit an existing user.
Query Parameters
Parameter | default | Description |
---|---|---|
ixPerson | (required) | The ID of the user |
sEmail | (no change) | The email address of the new user |
sFullname | (no change) | The full name of the new user |
nType | (no change) | Set to 0 for a normal user, 1 for an administrator, 2 for a community user, or 3 for a virtual user |
fActive | (no change) | Set to 1 for active, or 0 for inactive |
sPassword | (no change) | The user’s password |
sLocale | (no change) | The user’s locale |
sLanguage | (no change) | The user’s language |
sTimeZoneKey | (no change) | The user’s time zone |
sSnippetKey | (no change) | The key that the user will use to trigger snippets |
fNotify | (no change) | Whether the user have email notifications enabled |
sPhone | (no change) | The user’s phone number |
sHomepage | (no change) | The user’s homepage address |
fDeleted | (no change) | Set to 1 to mark the user as Inactive (does not delete the user, or their history) |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/editPerson" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"ixPerson": "25",
"sFullName": "The Real Kiwi Bird"
}'
POST https://apisandbox.manuscript.com/api/editPerson
{
token: nqi9dvugilleed680nanjc0o3rc3iz,
sEmail: kiwi@manu.script,
ixPerson: 25,
sFullname: The Real Kiwi Bird
}
Returns
The updated user
{
"data": {
"person": {
"ixPerson": 25,
"sFullName": "The Real Kiwi Bird",
"sEmail": "kiwi@manu.script",
"sPhone": "",
"fAdministrator": false,
"fCommunity": false,
"fVirtual": false,
"fDeleted": false,
"sHomepage": "",
"sLocale": "*",
"sLanguage": "*",
"sTimeZoneKey": "*",
"sSnippetKey": "`",
"ixBugWorkingOn": 0,
"nType": 0
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "aD-sLa01ykyETxS5Jw_T5Q2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
An updated user
View Person
This endpoint allows you to view a user.
Query Parameters
Parameter | default | Description |
---|---|---|
sEmail | (current user) | The email address of the new user. You may only provide this or sFullname. If you provide neither, the current user will be returned. |
sFullname | (current user) | The full name of the new user. You may only provide this or sEmail. If you provide neither, the current user will be returned. |
token | (required) | API token |
HTTP Request with sEmail
curl -X "POST" "https://apisandbox.manuscript.com/api/viewPerson" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"sEmail": "kiwi@manu.script"
}'
POST https://apisandbox.manuscript.com/api/viewPerson
{
token: nqi9dvugilleed680nanjc0o3rc3iz,
sEmail: kiwi@manu.script
}
HTTP Request with sFullname
curl -X "POST" "https://apisandbox.manuscript.com/api/viewPerson" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"sFullname": "Kiwi Bird"
}'
POST https://apisandbox.manuscript.com/api/viewPerson
{
token: nqi9dvugilleed680nanjc0o3rc3iz,
sFullname: Kiwi Bird
}
Returns
The user
{
"data": {
"people": [
{
"ixPerson": 25,
"sFullName": "Kiwi Bird",
"sEmail": "kiwi@manu.script",
"sPhone": "",
"fAdministrator": false,
"fCommunity": false,
"fVirtual": false,
"fDeleted": false,
"sHomepage": "",
"sLocale": "*",
"sLanguage": "*",
"sTimeZoneKey": "*",
"sSnippetKey": "`",
"ixBugWorkingOn": 0,
"nType": 0
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "aD-sLa01ykyETxS5Jw_T5Q2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A user
Wikis
List Wikis
Generate a list of wikis and associated data.
Query Parameters
Parameter | default | Description |
---|---|---|
token | (required) | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listWikis” \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3in",
}'
POST http://apisandbox.manuscript.com/api/listWikis
{
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
A list of wikis and associated data
{
"data": {
"wikis": [
{
"ixWiki": 1,
"sWiki": "Employee Handbook",
"sTagLineHTML": "Come to this wiki to see all things HR !",
"ixWikiPageRoot": 1,
"ixTemplate": 2,
"fDeleted": false
},
{
"ixWiki": 2,
"sWiki": "System Administration",
"sTagLineHTML": "SysAdmin Documentation",
"ixWikiPageRoot": 4,
"ixTemplate": 7,
"fDeleted": false
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "9sX8pA4oB0K6JdWBbpZQkg2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
A list of wikis and associated data.
New Wiki
Create a new Wiki (not wiki article).
Query Parameters
Parameter | default | Description |
---|---|---|
s | (required) | title of the new wiki |
sTagLineHTML | (required) | description of the new wiki |
token | required | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newWiki" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3in",
"s": “System Administration”,
"sTagLineHTML": “Documentation for the SysAdmin team”
}'
POST http://apisandbox.manuscript.com/api/newWiki
{
ixBug: 5037,
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Details of the newly created wiki
{
"data":
{
"wiki":
{
"ixWiki":2,
"ixWikiPageRoot":4,
"ixTemplate":7
}
},
"errors":[],
"warnings":[],
"meta":
{
"jsdbInvalidator":"eU-IhLS4T0KcmCuvqHgumw2",
"clientVersionAllowed":{"min":5,"max":5}
},
"errorCode":null,
"maxCacheAge":null
}
Details of the newly created wiki.
Edit Wiki
Update an existing wiki (not wiki article).
Query Parameters
Parameter | default | Description |
---|---|---|
ixWiki | required | ID of the wiki to be edited |
s | none | new wiki title |
sTagLineHTML | none | new wiki description |
token | required | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/editWiki" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"s": "Employee Manual",
"token": "hgdhnaifireomcnrmslsh85mg69jg2",
"ixWiki": "1"
}'
POST http://apisandbox.manuscript.com/api/editWiki
{
ixWiki: 1,
s: "Employee Manual",
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Details of the updated wiki
{
"data": {
"wiki": {
"sTagLineHTML": "Come to this wiki to see all things HR !",
"ixTemplate": 2
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "HAFrnjJwoEuDhHN94IAI5g2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Details of the updated wiki.
Delete Wiki
Update an existing wiki (not wiki article).
Query Parameters
Parameter | default | Description |
---|---|---|
ixWiki | required | ID of the wiki to be edited |
token | required | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/deleteWiki" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "hgdhnaifireomcnrmslsh85mg69jg2",
"ixWiki": "1"
}'
POST http://apisandbox.manuscript.com/api/deleteWiki
{
ixWiki: 1,
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "5kRtElxeeUe4TAvz8_1N0Q2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Empty Response.
Undelete Wiki
Update an existing wiki (not wiki article).
Query Parameters
Parameter | default | Description |
---|---|---|
ixWiki | required | ID of the wiki to be edited |
token | required | API Token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/undeleteWiki" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "hgdhnaifireomcnrmslsh85mg69jg2",
"ixWiki": "1"
}'
POST http://apisandbox.manuscript.com/api/undeleteWiki
{
ixWiki: 1,
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Empty Response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "5kRtElxeeUe4TAvz8_1N0Q2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Empty Response.
Wiki Articles
List Wiki Articles
This endpoint allows you to list articles belonging to the specified wiki.
Query Parameters
Parameter | default | Description |
---|---|---|
ixWiki | (required) | ID of the wiki to list articles from |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listArticles" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixWiki": "1",
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listArticles
{
ixWiki: 1,
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
The articles from the specified wiki
{
"data": {
"articles": [
{
"ixWikiPage": 1,
"sHeadline": "An Article"
},
{
"ixWikiPage": 2,
"sHeadline": "Another Article"
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "Vi-kdP1O6EaU1l4CiV1WzQ2",
"clientVersionAllowed": { "min": 5, "max": 5 }
},
"errorCode": null,
"maxCacheAge": null
}
A list of the articles in the specified wiki.
New Wiki Article
This endpoint allows you to create a new wiki article.
Query Parameters
Parameter | default | Description |
---|---|---|
ixWiki | (required) | ID of the wiki the article will be created in |
sHeadline | (required) | The title of the wiki article |
sBody | (blank) | The contents of the wiki article’s body |
dt | (current time) | The datetime that the creation event should show as being made at |
ixPersonEditedBy | (current API user) | ID of the person this edit is being made by |
sTags | (blank) | List of tags that this article will have |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newArticle" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixWiki": "1",
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"sHeadline": "Company Culture",
"sBody": "This is our culture!",
"sTags": "workflow, coolstuff",
"dt": "2017-09-01 12:00:00Z"
}'
POST https://apisandbox.manuscript.com/api/newArticle
{
"ixWiki": "1",
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"sHeadline": "Company Culture",
"sBody": "This is our culture!",
"sTags": "workflow, coolstuff",
"dt": "2017-09-01 12:00:00Z"
}`
Returns
The ID (ixWikiPage) of the newly created wiki article
{
"data": {
"wikipage": {
"ixWikiPage": 3
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "sX-E8976_kumicXZzSScbw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The ID (ixWikiPage) of the newly created wiki article
Edit Wiki Article
This endpoint allows you to edit a wiki article. Please note that for sHeadline and sBody, not specifying their values will erase the current contents of those fields.
Query Parameters
Parameter | default | Description |
---|---|---|
ixWikiPage | (required) | ID of the wiki article |
sHeadline | (blank) | The title of the wiki article |
sBody | (blank) | The contents of the wiki article’s body |
sComment | (blank) | The comment to accompany the edit in the revision history |
dt | (current time) | The datetime that this revision should show as being made at |
ixPersonEditedBy | (current API user) | ID of the person this edit is being made by |
sTags | (no change) | List of tags that this article will have |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/editArticle" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixWikiPage": "2",
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"sHeadline": "Working in the Queue",
"sBody": "This is our workflow!",
"sComment": "Updating the article with new information",
"sTags": "workflow, coolstuff",
"dt": "2017-09-01 12:00:00Z"
}'
POST https://apisandbox.manuscript.com/api/editArticle
{
"ixWikiPage": "2",
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"sHeadline": "Working in the Queue",
"sBody": "This is our workflow!",
"sComment": "Updating the article with new information",
"sTags": "workflow, coolstuff",
"dt": "2017-09-01 12:00:00Z"
}`
Returns
An empty response
{
"data": {
"wikipage": ""
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "UUjBrudpYEmxS1zEuZDQWg2",
"clientVersionAllowed": { "min": 5, "max": 5 }
},
"errorCode": null,
"maxCacheAge": null
}
An empty response
View Wiki Article
This endpoint allows you to view an existing wiki article.
Query Parameters
Parameter | default | Description |
---|---|---|
ixWikiPage | (required) | ID of the wiki article |
nRevision | (current revision) | Integer ID of the revision that you want to view |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewArticle" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixWikiPage": "2",
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/viewArticle
{
"ixWikiPage": "2",
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
The details of the requested article (at the specified revision)
{
"data": {
"wikipage": {
"sHeadline": "Our Culture",
"sBody": "This is our culture!",
"nRevision": 2,
"tags": [
"culture",
"coolstuff"
]
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "sX-E8976_kumicXZzSScbw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The details of the requested article (at the specified revision)
List Revisions
This endpoint allows you to view all revisions on a specific wiki article.
Query Parameters
Parameter | default | Description |
---|---|---|
ixWikiPage | (required) | ID of the wiki article |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listRevisions" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixWikiPage": "2",
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listRevisions
{
"ixWikiPage": "2",
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}
Returns
All of the revisions for the wiki article
{
"data": {
"revisions": [
{
"nRevision": 1,
"ixPerson": 23,
"sRemoteIP": "",
"sTitle": "New Article",
"sComment": "",
"fDiff": false,
"dt": "2017-09-14T21:01:11Z"
},
{
"nRevision": 2,
"ixPerson": 23,
"sRemoteIP": "",
"sTitle": "Our Culture",
"sComment": "",
"fDiff": false,
"dt": "2017-09-01T12:00:00Z"
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "sX-E8976_kumicXZzSScbw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
All of the revisions for the wiki article
Wiki Templates
List Wiki Templates
This endpoint allows you to list all wiki templates.
Query Parameters
token | (required) | API token
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listTemplates" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listTemplates
{
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
The list of wiki templates
{
"data": {
"templates": [
{
"ixTemplate": 1,
"sTemplate": "Default Template"
},
{
"ixTemplate": 2,
"sTemplate": "Employee Handbook"
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "sX-E8976_kumicXZzSScbw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The list of wiki templates
New Wiki Template
This endpoint allows you to create a new wiki template.
Query Parameters
Parameter | default | Description |
---|---|---|
sTemplate | (required) | The name of the template |
sBodyHTML | (blank) | The HTML-encoded body of the template |
sBODYCSS | (blank) | The HTML-encoded CSS rules for the template |
sComment | (blank) | The comment to be shown in the revision history for this change |
fDefault | false | If specified as 1, this will be the default template |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/newTemplate" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"sTemplate": "The Joel Test"
}'
POST https://apisandbox.manuscript.com/api/newTemplate
{
token: nqi9dvugilleed680nanjc0o3rc3iz,
sTemplate: The Joel Test
}
Returns
The ID (ixTemplate) of the newly created template
{
"data": {
"ixTemplate": 3
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "sX-E8976_kumicXZzSScbw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The ID (ixTemplate) of the newly created template
Edit Wiki Template
This endpoint allows you to edit a wiki template.
Query Parameters
Parameter | default | Description |
---|---|---|
ixTemplate | (required) | The ID of the template |
sTemplate | (blank) | The name of the template |
sBodyHTML | (blank) | The HTML-encoded body of the template |
sBODYCSS | (blank) | The HTML-encoded CSS rules for the template |
sComment | (blank) | The comment to be shown in the revision history for this change |
fDefault | false | If specified as 1, this will be the default template |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/editTemplate" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"ixTemplate": "3",
"sTemplate": "The Joel Test (Updated)",
"sComment": "Updating the Joel Test Template for 2017"
}'
POST https://apisandbox.manuscript.com/api/editTemplate
{
token: nqi9dvugilleed680nanjc0o3rc3iz,
ixTemplate: 3,
sTemplate: The Joel Test (Update),
sComment: Updating the Joel Test Template for 2017
}
Returns
Empty response
{
"data": {},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "sX-E8976_kumicXZzSScbw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
Empty response
View Wiki Template
This endpoint allows you to view a wiki template at a given revision.
Query Parameters
Parameter | default | Description |
---|---|---|
ixTemplate | (required) | The ID of the template |
nRevision | (current revision) | The specific revision that will be returned |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/viewTemplate" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"ixTemplate": "3"
}'
POST https://apisandbox.manuscript.com/api/viewTemplate
{
token: nqi9dvugilleed680nanjc0o3rc3iz,
ixTemplate: 3
}
Returns
The specified revision of the template
{
"data": {
"template": {
"sTemplate": "The Joel Test",
"sBodyHTML": "",
"sBodyCSS": "",
"nRevision": 1,
"fReadOnly": false,
"fDefault": false
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "sX-E8976_kumicXZzSScbw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The specified revision of the template
List Wiki Template Revisions
This endpoint allows you to list all the revisions for a given wiki template.
Query Parameters
token | (required) | API token
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listTemplateRevisions" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"token": "nqi9dvugilleed680nanjc0o3rc3iz",
"ixTemplate": "3"
}'
POST https://apisandbox.manuscript.com/api/listTemplateRevisions
{
token: nqi9dvugilleed680nanjc0o3rc3iz,
ixTemplate": "3"
}
Returns
The list of revisions for the given template
{
"data": {
"revisions": [
{
"nRevision": 1,
"ixPerson": 23,
"sRemoteIP": "0.0.0.0",
"sTitle": "The Joel Test",
"sComment": "",
"fDiff": false,
"dt": "2017-09-15T12:30:31Z"
},
{
"nRevision": 2,
"ixPerson": 23,
"sRemoteIP": "0.0.0.0",
"sTitle": "The Joel Test (Updated)",
"sComment": "Updating the Joel Test Template for 2017",
"fDiff": false,
"dt": "2017-09-15T12:44:27Z"
}
]
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "sX-E8976_kumicXZzSScbw2",
"clientVersionAllowed": {
"min": 5,
"max": 5
}
},
"errorCode": null,
"maxCacheAge": null
}
The list of revisions for the given template
Working Schedules
List Working Schedule
This endpoint allows you to list the current working schedule for a given person.
Query Parameters
Parameter | default | Description |
---|---|---|
ixPerson | (required) | ID of the person whose working schedule you want |
token | (required) | API token |
HTTP Request
curl -X "POST" "https://apisandbox.manuscript.com/api/listWorkingSchedule" \
-H "Content-Type: application/json; charset=utf-8" \
-d $'{
"ixPerson": "5037",
"token": "nqi9dvugilleed680nanjc0o3rc3iz"
}'
POST https://apisandbox.manuscript.com/api/listWorkingSchedule
{
ixPerson: 5037,
token: nqi9dvugilleed680nanjc0o3rc3iz
}
Returns
Specified user’s working schedule
{
"data": {
"workingSchedule": {
"ixPerson": 5037,
"nWorkdayStarts": 12,
"nWorkdayEnds": 20,
"nPercentTimeAllOtherProjects": 100,
"fHasLunch": true,
"nLunchStarts": 16,
"hrsLunchLength": 0.5,
"dtLastUpdated": "2017-09-01T12:00:00Z",
"rgWorkdays": {
"sunday": false,
"monday": true,
"tuesday": true,
"wednesday": true,
"thursday": true,
"friday": true,
"saturday": false
}
}
},
"errors": [],
"warnings": [],
"meta": {
"jsdbInvalidator": "fnZ2MdkRi0KEwve3YOcpDQ2",
"clientVersionAllowed": { "min": 5, "max": 5 }
},
"errorCode": null,
"maxCacheAge": null
}
Specified user’s working schedule