Nimble Activities API

Account activity stream — list activities across contacts and deals, walked with a next_tstamp timestamp cursor. 1 operation(s).

OpenAPI Specification

nimble-activities-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Nimble Activities API
  description: Nimble CRM Activities 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: Activities
  description: Activities management
paths:
  /api/v1/activities:
    get:
      description: Get all activities that match query parameters.
      operationId: list-activities
      summary: Activities listing
      tags:
      - Activities
      parameters:
      - description: |
          Indicates a direction of the query. `pending` -- to get future activities, `past` -- to get old activities.
        in: query
        name: direction
        required: true
        schema:
          enum:
          - pending
          - past
          type: string
      - description: Indicates how many activities show per page. Can't be set with untill_tstamp
        in: query
        name: limit
        schema:
          type: integer
      - description: List of activity types to return. `Default:` return activities of all types
        explode: false
        in: query
        name: types
        style: form
        schema:
          items:
            type: string
          type: array
      - description: List of contacts for which to select activities.
        explode: false
        in: query
        name: contacts
        style: form
        schema:
          items:
            type: string
          type: array
      - description: List of deals for which to select activities.
        explode: false
        in: query
        name: deals
        style: form
        schema:
          items:
            type: string
          type: array
      - description: List of users for which to select activities.
        explode: false
        in: query
        name: users
        style: form
        schema:
          items:
            type: string
          type: array
      - description: True for only completed activities, False for uncompleted.
        in: query
        name: completed
        schema:
          type: boolean
      - description: List of tags to filter by.
        explode: false
        in: query
        name: tags
        style: form
        schema:
          items:
            type: string
          type: array
      - description: Show activities before or after that timestamp (depending on the `direction`).
        in: query
        name: next_tstamp
        schema:
          type: string
      - description: Show activities before or after that id (depending on the `direction`).
        in: query
        name: next_activity_id
        schema:
          type: string
      - description: We will sellect activities until we don't met this date. Can't be set with limit
        in: query
        name: until_tstamp
        schema:
          type: string
      - description: List of calendar ids to get related events.
        explode: false
        in: query
        name: events__calendar_ids
        style: form
        schema:
          items:
            type: string
          type: array
      - description: status of calls which to select
        in: query
        name: calls__resolution
        schema:
          $ref: '#/components/schemas/Calls.CallResolutionSpec'
      - description: |
          When true, includes `meta.total` — an approximate count of all activities matching
          the query filters. Intended for "Select All"
          bulk-delete UX. Omit or set to false for regular listing to avoid extra DB queries.
        in: query
        name: include_total
        schema:
          type: boolean
          default: false
      - description: |
          Filter activities to only those created by steps of the given sequence. Must be a 24-character hexadecimal MongoDB ObjectId identifying the sequence. Can be combined with `contacts`, `deals`, `users`, `completed`, and `tags` filters.
        in: query
        name: sequence_id
        schema:
          type: string
          format: ObjectId
          example: 507f1f77bcf86cd799439011
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  activities:
                    description: List of activities that match query parameters.
                    items:
                      $ref: '#/components/schemas/Activities.Activity'
                    type: array
                  next_page:
                    description: Url-encode these arguments and add them to the next request to retrieve
                      the next page.
                    nullable: true
                    type: object
                  meta:
                    description: Metadata about the result set. `total` is present only when `include_total=true`.
                    properties:
                      total:
                        description: Approximate total count of activities matching the filters. Present
                          only when `include_total=true` was requested.
                        type: integer
                    type: object
                required:
                - activities
                - next_page
                - meta
                type: object
          description: ''
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.ValidationError'
          description: ''
security:
- ApiKey: []
components:
  schemas:
    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 <span style='color:red'>SHOULD NOT USE</span>
        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
    Activities.Activity:
      properties:
        activity_id:
          type: string
        activity_type:
          $ref: '#/components/schemas/Activities.ActivityTypeDef'
        assigned_to:
          $ref: '#/components/schemas/Accounts.User'
        comments:
          items:
            $ref: '#/components/schemas/Commons.Comment'
          type: array
        completed_tstamp:
          type: object
        created:
          type: string
        description:
          type: string
        details:
          description: Activity specific data that only relevant for certain implementation
          type: object
        feed_tstamp:
          type: object
        is_important:
          type: boolean
        name:
          type: string
        owner:
          $ref: '#/components/schemas/Accounts.User'
        priority:
          enum:
          - high
          - medium
          - low
          type: string
        related_contacts:
          items:
            $ref: '#/components/schemas/Contacts.ShortContact'
          type: array
        new_related_deals:
          items:
            $ref: '#/components/schemas/Deals.ShortSavedDeal'
          type: array
        related_sequence:
          $ref: '#/components/schemas/Sequences.SequenceBriefInfo'
          nullable: true
          description: sequence that created this activity, if applicable
        scheduled_tstamp:
          type: object
        tags:
          items:
            type: string
          type: array
      required:
      - details
      - activity_type
      - activity_id
      - name
      - description
      - assigned_to
      - related_contacts
      - scheduled_tstamp
      - completed_tstamp
      - feed_tstamp
      - tags
      - priority
      - comments
      - is_important
      - owner
      - created
      - related_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
    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
    Activities.ActivityTypeDef:
      properties:
        archived:
          description: True if the type was archived. We shouldn't create new activities of archived types
          type: boolean
        can_update_definition:
          description: True if user can change definition of that type, False otherwise
          type: boolean
        can_update_lc:
          description: True if completion of the activity should update the last contacted date
          type: boolean
        logo_id:
          description: id of a picture to display for these activities
          type: string
        type_id:
          description: unique and stable id for an activity type
          type: string
        type_name:
          description: human-readable name for an activity type
          type: string
      required:
      - type_id
      - type_name
      - logo_id
      - can_update_lc
      - can_update_definition
      - archived
      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
    Calls.CallResolutionSpec:
      enum:
      - successful
      - unsuccessful
      - abandoned
      - left_voicemail
      type: string
    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