NAV
bash

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
email (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&amp;pgType=pgAttachment&amp;ixBugEvent=55&amp;sPart=2&amp;sTicket=&amp;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&amp;pgType=pgAttachment&amp;ixBugEvent=55&amp;sPart=2&amp;sTicket=&amp;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

Email

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