openapi: 3.0.0 info: title: Nimble Tasks API description: Nimble CRM Tasks operations. Split by tag from the OpenAPI Nimble publishes at https://www.nimble.com/developers/docs/ (embedded Redoc spec). Base host https://app.nimble.com. version: v1 servers: - url: https://app.nimble.com tags: - name: Tasks description: Tasks management paths: /api/v1/tasks: post: description: Creates a task. Associate contacts through `related.contacts`; `related_to` is a legacy response field and is not accepted by this endpoint. operationId: post-task summary: Create new task tags: - Tasks requestBody: content: application/json: schema: $ref: '#/components/schemas/Tasks.NewTaskSpecification' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Tasks.Task' description: Returns task after successful execution. '404': content: application/json: schema: $ref: '#/components/schemas/Errors.NotFoundError' description: Raising in case the contact does not exist '409': content: application/json: schema: $ref: '#/components/schemas/Errors.ValidationError' description: '' security: - ApiKey: [] components: schemas: Accounts.ShortUserInfo: properties: avatar_url: type: string email: type: string is_active: type: boolean name: type: string user_id: type: string required: - user_id - name - email - avatar_url - is_active type: object Contacts.ShortContact: properties: avatar_url: type: string contact_type: $ref: '#/components/schemas/Contacts.ContactType' email: items: type: string type: array id: type: string is_viewable: description: if this contact can be viewed in details by a calling user type: boolean name: type: string employment: nullable: true description: the most relevant contact employment (e.g., primary or present) type: object properties: company_name: type: string nullable: true title: type: string nullable: true phones: properties: label: description: phone label like "home", "work", etc type: string value: type: string required: - label - value type: object required: - avatar_url - contact_type - id - name - email - is_viewable - phones type: object Errors.ValidationError: description: request was malformed example: errors: /: message: 'missing required properties: ["calendar_id", "summary"]' /base_occurrence/start_dtime: message: Can't parse value 20000-01-01T01:01:00 as DATE-TIME message: 'Invalid value {} (dict): missing required properties: []"calendar_id", "summary"]' code: 245 human_readable_error: 'Invalid value {} (dict): missing required properties: []"calendar_id", "summary"]"' extra: - {} properties: errors: description: | mapping where keys are paths to problematic request attributes and values are objects with single message attribute type: object message: type: string code: type: integer description: legacy that you SHOULD NOT USE human_readable_error: type: string description: Error message with some changes making it easier to read. extra: type: array items: type: object description: extra data that would be useful to provide required: - message - errors - human_readable_error type: object Contacts.ContactType: enum: - person - company type: string Tasks.Task: properties: assigned_to: $ref: '#/components/schemas/Accounts.ShortUserInfo' nullable: true comments: items: $ref: '#/components/schemas/Commons.Comment' type: array company_id: type: string completed: type: boolean completed_time: nullable: true type: string created: type: string due_date: nullable: true type: string due_date_text: nullable: true type: string id: type: string is_important: type: boolean notes: nullable: true type: string owner: $ref: '#/components/schemas/Accounts.ShortUserInfo' owner_id: type: string related: $ref: '#/components/schemas/Tasks.TaskRelatedObjects' related_to: description: Legacy response field. To associate contacts when creating a task, use `related.contacts`. items: type: string type: array starred: type: boolean subject: type: string tags: items: type: string type: array updated: type: string version: default: 2 type: integer required: - version - assigned_to - comments - company_id - completed - completed_time - created - due_date - due_date_text - id - is_important - starred - notes - owner_id - related_to - related - subject - tags - updated - owner type: object Tasks.TaskRelatedObjects: properties: contacts: description: Contacts associated with the task. items: $ref: '#/components/schemas/Contacts.ShortContact' type: array deals: description: legacy deal ids (always empty, kept for backwards compatibility) items: type: string type: array new_deals: description: Deals associated with the task. items: $ref: '#/components/schemas/Deals.ShortSavedDeal' type: array sequence: $ref: '#/components/schemas/Sequences.SequenceBriefInfo' nullable: true description: sequence that created this task, if applicable required: - contacts - deals - new_deals - sequence type: object Deals.ShortSavedDeal: properties: deal_id: description: unique id of a deal type: string is_editable: description: Is this deal is editable to a user who retrieved it type: boolean is_viewable: description: Is this deal is viewable to a user who retrieved it (True for private deals type: boolean name: type: string amount: type: integer nullable: true Tasks.TaskRelatedObjectsSpec: description: Objects to associate with a task. Use `related.contacts` rather than the legacy `related_to` field. properties: contacts: description: Contact IDs to associate with the task. items: type: string type: array deals: description: Deal IDs to associate with the task. items: type: string type: array type: object Tasks.NewTaskSpecification: properties: assigned_to: type: string completed_time: type: string due_date: type: string is_important: type: boolean notes: type: string related: $ref: '#/components/schemas/Tasks.TaskRelatedObjectsSpec' subject: type: string tags: items: type: string type: array required: - subject type: object Commons.Comment: properties: author: $ref: '#/components/schemas/Accounts.User' comment_id: type: string created: type: string text: type: string updated: type: string required: - comment_id - author - text - created - updated type: object Settings.UserPermissions: additionalProperties: type: number description: users permission example: api use: 1 manage deals pipelines: 1 mass delete: 1 mass export: 1 private deals edit: 1 private deals view: 1 type: object Errors.NotFoundError: example: object_id: 4f2acc3142a053dda595f00b object_type: deal properties: object_id: type: string object_type: type: string required: - object_type - object_id type: object Legacy.UserMetadata: properties: city: nullable: true type: string description: (deprecated) company_name: type: string description: (deprecated) country: nullable: true description: (deprecated) type: string employees_count: nullable: true description: (deprecated) type: integer help_tour_data: description: (deprecated) properties: app/activities/list: type: integer app/b/homepage: type: integer app/contacts/list: type: integer app/contacts/view: type: integer app/deals/list: type: integer app/deals/view: type: integer app/groupmessages/create: type: integer app/messages/list: type: integer app/messages/view: type: integer app/settings/: type: integer app/social/list: type: integer contact_list_group_message: type: integer disabled: type: integer nimble_widget: type: integer type: object industry: description: (deprecated) nullable: true type: string phone: nullable: true type: string state: description: (deprecated) nullable: true type: string street: description: (deprecated) nullable: true type: string title: nullable: true type: string zip: description: (deprecated) nullable: true type: string required: - title - company_name - industry - phone - street - city - state - zip - country - employees_count - help_tour_data type: object Accounts.User: properties: account_type: type: string avatar_url: nullable: true type: string company_id: type: string company_name: type: string created: format: date-time type: string disabled: type: boolean email: type: string first_name: type: object is_company_owner: type: boolean is_pending: description: true if that user has a pending invite type: boolean last_active: description: timestamp when a user made his last API request to the platform format: date-time type: string last_name: type: object name: type: string permissions: $ref: '#/components/schemas/Settings.UserPermissions' receive_newsletter: type: boolean has_password: type: boolean description: | if this user has a password set (for some account types, like google accounts, the password is optional) timezone: type: string under_gdpr: type: boolean user_id: type: string metadata: $ref: '#/components/schemas/Legacy.UserMetadata' email_verification_due: type: boolean description: | A flag indicating whether the email verification is due. Almost all API call will result in 403 response for users with unverified email. required: - under_gdpr - user_id - company_id - company_name - email - name - first_name - last_name - timezone - disabled - avatar_url - created - account_type - is_company_owner - receive_newsletter - permissions - last_active - is_pending - metadata - has_password type: object Sequences.SequenceBriefInfo: type: object properties: id: type: string description: unique id of the sequence name: type: string description: name of the sequence required: - id - name securitySchemes: ApiKey: type: apiKey in: header name: X-Nimble-Token