Nifty API
  • Authentication
  • OAuth 2.1
  • v1.0 API
  • API tokens
Information
Apps
    Get AppsgetGet Appget
Authentication
    Generate TokenpostAuthorize (browser entry point)get
Chats
    Get ChatsgetGet Chatget
Documents
    Get DocumentsgetCreate documentpostGet Personal DocumentsgetCreate Personal DocumentpostGet DocumentgetUpdate DocumentputRemove DocumentdeleteMove DocumentputUpdate Document MemberputRemove Document MemberdeleteUpdate DocumentpostUpdate Document LabelsputRemove Document Labelsdelete
Custom Fields
    Get Custom fieldsgetGet Custom fieldget
Files
    Get FilesgetUpload FilespostGet FilegetUpdate FileputRemove FiledeleteCopy FilepostAdd File LabelsputRemove File Labelsdelete
Folders
    Get Folder ChildrengetAdd FolderpostGet Folderget/api/v2.0/folders/{folderId}putRemove FolderdeleteGet Folder Conntentsget
Invite
    Get Inviteeget
Tags
    Get TagsgetCreate TagpostGet TaggetUpdate TagputRemove Tagdelete
Members
    Get Members DetailsgetGet Member Detailsget
Messages
    Get MessagesgetCreate MessagepostGet MessagegetUpdate MessageputRemove MessagedeleteMark Message seenpostMark Message heardpost
Milestones & Lists
    Get MilestonesgetCreate MilestonepostGet MilestonegetUpdate MilestoneputRemove MilestonedeleteMove MilestoneputTie Task To MilestoneputRemove Milestone TaskdeleteArchive Milestonepost
Projects
    Get ProjectsgetCreate ProjectpostGet ProjectgetUpdate ProjectputRemove ProjectdeleteInvite Team Member for projectpostLeave ProjectpostStart ProjectpostGet Project Custom FieldsgetAdd Project Custom FieldspostUpdate Project Custom Fieldsput
Portfolios
    Get PortfoliosgetCreate PortfoliopostGet PortfoliogetUpdate PortfolioputRemove PortfoliodeleteUpdate Portfolio MemberputRemove Portfolio MemberdeleteLeave Portfoliopost
Tasks
    Get TasksgetCreate TaskpostRemove TaskdeleteGet Personal TasksgetCreate Personal TaskpostGet TaskgetUpdate TaskputRemove TaskdeleteUpdate Task MilestoneputComplete TaskpostArchive TaskpostMove TaskpostAssign TaskputRemove AssigneedeleteAdd LabelsputRemove LabelsdeleteGet FieldsgetAdd FieldspostUpdate FieldsputAdd DocumentputClone TaskpostMove Taskpost
Status
    Get StatusesgetCreate StatuspostGet StatusgetUpdate StatusputRemove StatusdeleteMove TaskspostAssign Status MembersputRemove Status Memberdelete
Templates
    Get Templatesget
Time Tracking
    Get Tracked Time ReportgetGet Tracked Time Durationget
Users
    Get User Detailsget
Webhook
    Get WebhooksgetCreate WebhookpostUpdate WebhookputRemove Webhookdelete
Other endpoints
    /get
Schemas
powered by Zudoku
Nifty API v1.0
Nifty API v1.0

Documents


Get Documents

GET
https://openapi.niftypm.com
/api/v1.0/docs

This endpoint fetch lsit of all the documents based on given query parameters.

Get Documents › query Parameters

project_id
​string · required

Project ID

task_id
​string · required

Task ID

parent_doc_id
​string

Parent Document ID

limit
​string

No of records per page

Example: 25
offset
​string

Record Offset

Example: 0
folder_id
​string

Folder ID

author
​string

Document Author

name
​string

Document Name

tag
​string

Document Tag

sort
​string · enum

Sorting order, default is descending

Enum values:
ascending
descending

Get Documents › Responses

Success Response

GetDocumentsResponse
​DocumentResponse[] · required
hasMore
​boolean · required

True if there are more record else false

Default: false
GET/api/v1.0/docs
curl 'https://openapi.niftypm.com/api/v1.0/docs?project_id=<string>&task_id=<string>' \ --header 'Authorization: Bearer <token>'
Example Responses
{ "items": [ { "id": "id", "name": "name", "access_type": "access_type", "type": "type", "subtype": "subtype", "external_id": "external_id", "content": {}, "author": "author", "project_id": "project_id", "tasks": [ "string" ], "archived": true, "members": [ { "id": "id", "permission": "permission", "is_author": true, "active": true, "last_seen": "2024-08-25T15:00:00Z", "last_edited": "2024-08-25T15:00:00Z" } ], "discussion_keys": [ "string" ], "public_token": "public_token", "share_token": "share_token", "created_at": "2024-08-25T15:00:00Z", "comments": 0, "hasAccess": true, "labels": [ "string" ], "folder": "folder", "order": 0, "multipage": true, "parent_doc_id": "parent_doc_id" } ], "hasMore": false }
json
application/json

Create document

POST
https://openapi.niftypm.com
/api/v1.0/docs

This endpoint creates a new document.

Create document › Request Body

CreateDocument
name
​string

Name

parent_doc_id
​string

Parent Document ID

project_id
​string

Project ID

googleAccessToken
​string

Google Access Token

type
​string

Type of Document

subtype
​string

Subtype of the document

private
​boolean

Private Flag

access_type
​number · enum
Enum values:
0
1
2
content
​object

Document Content

external_id
​string

External ID

folder_id
​string

Folder ID

folder_stack
​string[]

Folder stack

order
​number

Document Order

Create document › Responses

The resource created successfully

CreateDocumentResponse
message
​string · required

Operation message

doc_id
​string · required

Document ID

folder
​string · required

folde

POST/api/v1.0/docs
curl https://openapi.niftypm.com/api/v1.0/docs \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "name": "name", "parent_doc_id": "parent_doc_id", "project_id": "project_id", "googleAccessToken": "googleAccessToken", "type": "type", "subtype": "subtype", "private": true, "access_type": 0, "content": {}, "external_id": "external_id", "folder_id": "folder_id", "folder_stack": [ "string" ], "order": 0 }'
Example Request Body
{ "name": "name", "parent_doc_id": "parent_doc_id", "project_id": "project_id", "googleAccessToken": "googleAccessToken", "type": "type", "subtype": "subtype", "private": true, "access_type": 0, "content": {}, "external_id": "external_id", "folder_id": "folder_id", "folder_stack": [ "string" ], "order": 0 }
json
Example Responses
{ "message": "message", "doc_id": "doc_id", "folder": "folder" }
json
application/json

Get Personal Documents

GET
https://openapi.niftypm.com
/api/v1.0/docs/personal

This endpoint fetch lsit of all the personal documents based on given query parameters.

Get Personal Documents › query Parameters

parent_doc_id
​string

Parent Document ID

limit
​string

No of records per page

Example: 25
offset
​string

Record Offset

Example: 0
folder_id
​string

Folder ID

author
​string

Document Author

name
​string

Document name

tag
​string

Document Tag

sort
​string · enum

Sorting order, default is descending

Enum values:
ascending
descending

Get Personal Documents › Responses

Success Response

GetDocumentsResponse
​DocumentResponse[] · required
hasMore
​boolean · required

True if there are more record else false

Default: false
GET/api/v1.0/docs/personal
curl https://openapi.niftypm.com/api/v1.0/docs/personal \ --header 'Authorization: Bearer <token>'
Example Responses
{ "items": [ { "id": "id", "name": "name", "access_type": "access_type", "type": "type", "subtype": "subtype", "external_id": "external_id", "content": {}, "author": "author", "project_id": "project_id", "tasks": [ "string" ], "archived": true, "members": [ { "id": "id", "permission": "permission", "is_author": true, "active": true, "last_seen": "2024-08-25T15:00:00Z", "last_edited": "2024-08-25T15:00:00Z" } ], "discussion_keys": [ "string" ], "public_token": "public_token", "share_token": "share_token", "created_at": "2024-08-25T15:00:00Z", "comments": 0, "hasAccess": true, "labels": [ "string" ], "folder": "folder", "order": 0, "multipage": true, "parent_doc_id": "parent_doc_id" } ], "hasMore": false }
json
application/json

Create Personal Document

POST
https://openapi.niftypm.com
/api/v1.0/docs/personal

This endpoint creates a new personal document based on given request data.

Create Personal Document › Request Body

CreateDocument
name
​string

Name

parent_doc_id
​string

Parent Document ID

project_id
​string

Project ID

googleAccessToken
​string

Google Access Token

type
​string

Type of Document

subtype
​string

Subtype of the document

private
​boolean

Private Flag

access_type
​number · enum
Enum values:
0
1
2
content
​object

Document Content

external_id
​string

External ID

folder_id
​string

Folder ID

folder_stack
​string[]

Folder stack

order
​number

Document Order

Create Personal Document › Responses

The resource created successfully

CreatePersonalDocumentResponse
message
​string · required

Message

doc_id
​string · required

Document ID

POST/api/v1.0/docs/personal
curl https://openapi.niftypm.com/api/v1.0/docs/personal \ --request POST \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "name": "name", "parent_doc_id": "parent_doc_id", "project_id": "project_id", "googleAccessToken": "googleAccessToken", "type": "type", "subtype": "subtype", "private": true, "access_type": 0, "content": {}, "external_id": "external_id", "folder_id": "folder_id", "folder_stack": [ "string" ], "order": 0 }'
Example Request Body
{ "name": "name", "parent_doc_id": "parent_doc_id", "project_id": "project_id", "googleAccessToken": "googleAccessToken", "type": "type", "subtype": "subtype", "private": true, "access_type": 0, "content": {}, "external_id": "external_id", "folder_id": "folder_id", "folder_stack": [ "string" ], "order": 0 }
json
Example Responses
{ "message": "message", "doc_id": "doc_id" }
json
application/json

Get Document

GET
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}

This endpoint fetch a particular document based on document id.

Get Document › path Parameters

document_id
​string · required

Document ID

Get Document › Responses

Success Response

DocumentResponse
id
​string · required
name
​string · required
access_type
​string · required
type
​string · required
subtype
​string · required
external_id
​string · required
content
​object · required
author
​string · required
project_id
​string · required
tasks
​string[] · required
archived
​boolean · required
​DocumentMemberResponse[] · required
discussion_keys
​string[] · required
public_token
​string · required
share_token
​string · required
created_at
​string · date-time · required
comments
​number · required
hasAccess
​boolean · required
labels
​string[] · required
folder
​string · required
order
​number · required
multipage
​boolean · required
parent_doc_id
​string · required
GET/api/v1.0/docs/{document_id}
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id \ --header 'Authorization: Bearer <token>'
Example Responses
{ "id": "id", "name": "name", "access_type": "access_type", "type": "type", "subtype": "subtype", "external_id": "external_id", "content": {}, "author": "author", "project_id": "project_id", "tasks": [ "string" ], "archived": true, "members": [ { "id": "id", "permission": "permission", "is_author": true, "active": true, "last_seen": "2024-08-25T15:00:00Z", "last_edited": "2024-08-25T15:00:00Z" } ], "discussion_keys": [ "string" ], "public_token": "public_token", "share_token": "share_token", "created_at": "2024-08-25T15:00:00Z", "comments": 0, "hasAccess": true, "labels": [ "string" ], "folder": "folder", "order": 0, "multipage": true, "parent_doc_id": "parent_doc_id" }
json
application/json

Update Document

PUT
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}

This endpoint updates document using unique document id with given data.

Update Document › path Parameters

document_id
​string · required

Document ID

Update Document › Request Body

EditDocument
name
​string

Document name

archived
​boolean

Archived

access_type
​number · enum
Enum values:
0
1
2
force
​boolean

Force Flag

content
​object
folder_id
​string

Folder ID

folder_stack
​string[]

Folder path stack

multipage
​boolean

Is Multiple page?

order
​number

Document Order

Update Document › Responses

Success Response

CreatePersonalDocumentResponse
message
​string · required

Message

doc_id
​string · required

Document ID

PUT/api/v1.0/docs/{document_id}
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id \ --request PUT \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "name": "name", "archived": true, "access_type": 0, "force": true, "content": {}, "folder_id": "folder_id", "folder_stack": [ "string" ], "multipage": true, "order": 0 }'
Example Request Body
{ "name": "name", "archived": true, "access_type": 0, "force": true, "content": {}, "folder_id": "folder_id", "folder_stack": [ "string" ], "multipage": true, "order": 0 }
json
Example Responses
{ "message": "message", "doc_id": "doc_id" }
json
application/json

Remove Document

DELETE
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}

This endpoint removes a document using unique identifier id.

Remove Document › path Parameters

document_id
​string · required

Document ID

Remove Document › Responses

The record has been updated successfully.

RemoveDocumentResponse
message
​string · required
DELETE/api/v1.0/docs/{document_id}
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id \ --request DELETE \ --header 'Authorization: Bearer <token>'
Example Responses
{ "message": "message" }
json
application/json

Move Document

PUT
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}/move_to_project

This endpoint moves a document into another project folder.

Move Document › path Parameters

document_id
​string · required

Document ID

Move Document › Request Body

MoveDocument
folder_id
​string · required

Folder ID

folder_stack
​string · required

Folder stack of document path

project_id
​string · required

Project ID associated with the document

Move Document › Responses

Success Response

CreatePersonalDocumentResponse
message
​string · required

Message

doc_id
​string · required

Document ID

PUT/api/v1.0/docs/{document_id}/move_to_project
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id/move_to_project \ --request PUT \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "folder_id": "folder_id", "folder_stack": "folder_stack", "project_id": "project_id" }'
Example Request Body
{ "folder_id": "folder_id", "folder_stack": "folder_stack", "project_id": "project_id" }
json
Example Responses
{ "message": "message", "doc_id": "doc_id" }
json
application/json

Update Document Member

PUT
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}/members

This endpoint updates document's members list

Update Document Member › path Parameters

document_id
​string · required

Document ID

Update Document Member › Request Body

DocumentInvite
​DocumentInvitee[] · required

Document Invitee details

folder_stack
​string[]

Folder stack

Update Document Member › Responses

Success Response

AddMembersToDocumentResponse
message
​string · required
added_members
​string[] · required
updated_members
​string[] · required
PUT/api/v1.0/docs/{document_id}/members
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id/members \ --request PUT \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "members": [ { "id": "id", "permission": 0 } ], "folder_stack": [ "string" ] }'
Example Request Body
{ "members": [ { "id": "id", "permission": 0 } ], "folder_stack": [ "string" ] }
json
Example Responses
{ "message": "message", "added_members": [ "string" ], "updated_members": [ "string" ] }
json
application/json

Remove Document Member

DELETE
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}/members

This endpoint removes member from given document.

Remove Document Member › path Parameters

document_id
​string · required

Document ID

Remove Document Member › Request Body

DocumentMemberRemove
members
​string[] · required

Document members

Remove Document Member › Responses

The record has been updated successfully.

RemoveMembersFromDocumentResponse
message
​string · required
members_id
​string[] · required
DELETE/api/v1.0/docs/{document_id}/members
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id/members \ --request DELETE \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "members": [ "string" ] }'
Example Request Body
{ "members": [ "string" ] }
json
Example Responses
{ "message": "message", "members_id": [ "string" ] }
json
application/json

Update Document

POST
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}/change

This endpoint update the document.

Update Document › path Parameters

document_id
​string · required

Document ID

Update Document › Responses

The resource created successfully

ProcessDocumentChangeResponse
success
​boolean · required
POST/api/v1.0/docs/{document_id}/change
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id/change \ --request POST \ --header 'Authorization: Bearer <token>'
Example Responses
{ "success": true }
json
application/json

Update Document Labels

PUT
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}/labels

This endpoint updates the labels for the document.

Update Document Labels › path Parameters

document_id
​string · required

Document ID

Update Document Labels › Request Body

UpdateLabels
labels
​string[] · required

Labels

Update Document Labels › Responses

Success Response

AddLabelsReponse
message
​string · required

Message

labels
​string[] · required

List of labels

PUT/api/v1.0/docs/{document_id}/labels
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id/labels \ --request PUT \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "labels": [ "string" ] }'
Example Request Body
{ "labels": [ "string" ] }
json
Example Responses
{ "message": "message", "labels": [ "string" ] }
json
application/json

Remove Document Labels

DELETE
https://openapi.niftypm.com
/api/v1.0/docs/{document_id}/labels

This endpoint removes labels from the document.

Remove Document Labels › path Parameters

document_id
​string · required

Document ID

Remove Document Labels › Request Body

UpdateLabels
labels
​string[] · required

Labels

Remove Document Labels › Responses

The record has been updated successfully.

RemoveLabelsResponse
message
​string · required

Message

labels
​string[] · required

List of labels

DELETE/api/v1.0/docs/{document_id}/labels
curl https://openapi.niftypm.com/api/v1.0/docs/:document_id/labels \ --request DELETE \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <token>' \ --data '{ "labels": [ "string" ] }'
Example Request Body
{ "labels": [ "string" ] }
json
Example Responses
{ "message": "message", "labels": [ "string" ] }
json
application/json

ChatsCustom Fields