Nimble REST API

The Nimble CRM REST API — 89 operations across contacts, contact custom fields, contact and deal pipelines, deals, leads, activities, tasks, messages and users. Nimble publishes a full OpenAPI 3.0.0 contract (58 paths, 180 component schemas) embedded in its developer reference. Authentication accepts an account API key as an X-Nimble-Token header or an Authorization: Bearer token, or OAuth 2.0 authorization_code with the coarse basic / contacts / deals scopes. Versioning is per resource family: /api/v1 for contacts, /api/v2 for deals.

OpenAPI Specification

nimble-openapi-original.yml Raw ↑
openapi: 3.0.0
servers:
- url: https://app.nimble.com
info:
  title: Nimble API
  version: v1
  description: "# Overview\n\nNimble is a relationship-focused CRM for your entire team. With customizable\
    \ contact records and easy-to-use Kanban-style workflows, managing client information has never been\
    \ simpler. Nimble effortlessly integrates with both Microsoft 365 and Google Workspace, gathering\
    \ contacts and leads from all your platforms, while our automation tools handle the busy work. Focus\
    \ on what matters most – growing your business and nurturing relationships, as Nimble streamlines\
    \ your workflow for maximum productivity. \n\nThe document below offers an overview of currently available\
    \ APIs & how to utilize them. If you're missing some APIs for an integration you want to build, please\
    \ contact us at [api-support@nimble.com](mailto:api-support@nimble.com).\n\nCurrently available APIs:\n\
    \n-   **Contacts & Contact fields** - managing contacts & custom fields.\n-   **Deals & Deals Pipelines**\
    \ - managing deals, pipelines, and deal pipeline fields.  \n-   **Messages** - reading and creating\
    \ draft messages.\n\nWe are building the API with a few main use cases in mind:\nwidgets/extensions\
    \ to Nimble, web clients (including our own), mobile\nclients, and 2-way data integrations with other\
    \ services. We\naim to make an API that is simple to use, easy to read, and flexible.\n\n[Your feedback](mailto:api-support@nimble.com)\
    \ is greatly\nappreciated while we continue to shape our API offering.\n"
  x-logo:
    url: https://www.nimble.com/wp-content/themes/new_nimble/images/nimble-logo-white.svg
    backgroundColor: '#2685c4'
components:
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Nimble-Token
  schemas:
    Contacts.ContactViewContextKinds:
      enum:
      - last_contacted_data
      - employers_data
      - leads_data
      - sequences_data
      - contact_files
    Commons.PaginationMeta:
      properties:
        page:
          type: integer
        pages:
          type: integer
        per_page:
          type: integer
        total:
          type: integer
      required:
      - page
      - pages
      - per_page
      - total
      type: object
    Contacts.LastContacted:
      properties:
        deletion_tstamp:
          type: object
        object_id:
          type: object
        tstamp:
          type: object
        type:
          type: object
        user_id:
          type: object
        direction:
          enum:
          - inbound
          - outbound
      required:
      - tstamp
      - type
      - object_id
      - user_id
      - deletion_tstamp
      type: object
    Contacts.LastContactedDirectedContainer:
      properties:
        in:
          $ref: '#/components/schemas/Contacts.LastContacted'
        out:
          $ref: '#/components/schemas/Contacts.LastContacted'
        last:
          $ref: '#/components/schemas/Contacts.LastContacted'
    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.UserLastContactedView:
      properties:
        company_lc:
          $ref: '#/components/schemas/Contacts.LastContactedDirectedContainer'
        user_lc:
          $ref: '#/components/schemas/Contacts.LastContactedDirectedContainer'
        last_user:
          $ref: '#/components/schemas/Accounts.ShortUserInfo'
    Contacts.Principals:
      description: |
        Explicitly defines users and groups that have an action permission. If any set - no one can.
      properties:
        group_ids:
          description: ids of permitted groups. if empty - no group has permission
          items:
            type: string
          type: array
        user_ids:
          description: ids of permitted users. If empty - no user has permission
          items:
            type: string
          type: array
      required:
      - user_ids
      - group_ids
      type: object
    Contacts.ContactPrivacy:
      description: "Defines scopes of object visibility and editability.<br>\nEdit permission means that\
        \ group or user also is able to read an object.<br>\n***No duplication***, if `id` in edit Principal\
        \ it must not be in view Principal.<br>\nIf property is `None` - everyone have an action right\
        \ (Permitted to everyone).<br>\nIf Principal is set, but has empty properies - only owner is allowed\
        \ to act. <br>\nIf not specified - default privacy from company settings will be applied "
      properties:
        edit:
          description: None means permitted to everyone. Prinipals object define permission explicitly
          nullable: true
          type: object
          oneOf:
          - $ref: '#/components/schemas/Contacts.Principals'
        read:
          description: None means permitted to everyone. Prinipals object define permission explicitly
          nullable: true
          type: object
          oneOf:
          - $ref: '#/components/schemas/Contacts.Principals'
      required:
      - read
      - edit
      type: object
    Contacts.ContactType:
      enum:
      - person
      - company
      type: string
    Contacts.Reminder:
      properties:
        active:
          type: boolean
        contact_id:
          type: string
        days_till_triggered:
          type: integer
        period:
          type: integer
        triggered:
          type: boolean
      required:
      - contact_id
      - period
      - days_till_triggered
      - active
      - triggered
      type: object
    Contacts.LeadInStageInfo:
      description: info about stage where lead is
      properties:
        pipeline_id:
          type: string
          format: ObjectId
        pipeline_name:
          type: string
        stage_name:
          type: string
        entered_data:
          type: string
          format: datetime
        is_final:
          type: boolean
        days_limit:
          type: integer
          nullable: true
    Contacts.ContactNotice:
      properties:
        created:
          description: Date and time when the notice was created encoded in ISO 8601
          type: string
        updated:
          description: Date and time when the notice was updated encoded in ISO 8601
          type: string
        creator:
          $ref: '#/components/schemas/Accounts.ShortUserInfo'
        updated_by:
          $ref: '#/components/schemas/Accounts.ShortUserInfo'
        text:
          type: string
        color:
          type: string
      required:
      - created
      - updated
      - creator
      - updated_by
      - text
      - color
      type: object
    Contacts.LastContactedDataContext:
      type: object
      properties:
        context_key:
          type: object
        context:
          $ref: '#/components/schemas/Contacts.UserLastContactedView'
    Contacts.EmployerInfo:
      description: employer's info
      type: object
      properties:
        contact_id:
          type: string
        company_name:
          type: string
        avatar_url:
          type: string
    Contacts.EmployersDataContext:
      type: object
      properties:
        context_key:
          type: object
        context:
          type: array
          items:
            $ref: '#/components/schemas/Contacts.EmployerInfo'
    Contacts.LeadsDataContext:
      type: object
      properties:
        context_key:
          type: object
        context:
          type: array
          items:
            $ref: '#/components/schemas/Contacts.LeadInStageInfo'
    Contacts.UploadedContactFile:
      type: object
      properties:
        file_id:
          type: string
        contact_id:
          type: string
        file_name:
          type: string
        file_size:
          type: number
        mime_type:
          type: string
        uploader:
          $ref: '#/components/schemas/Accounts.ShortUserInfo'
        uploaded_at:
          type: string
        pipeline_ids:
          type: array
          items:
            type: string
    Attachments.AttachmentData:
      discriminator:
        propertyName: type
      properties:
        attachment_bytes:
          type: integer
        attachment_type:
          type: string
        icon:
          type: string
        link:
          description: URL that can be used to download an attachment
          type: string
        mime_type:
          type: string
        name:
          type: string
        type:
          type: string
        updated:
          type: string
        updated_by:
          type: string
      required:
      - attachment_type
      - name
      - link
      - attachment_bytes
      - icon
      - type
      - mime_type
      - updated
      - updated_by
      type: object
    Attachments.DropboxAttachmentData:
      allOf:
      - $ref: '#/components/schemas/Attachments.AttachmentData'
      - description: Dropbox
    Attachments.GoogleDriveAttachmentData:
      allOf:
      - $ref: '#/components/schemas/Attachments.AttachmentData'
      - description: GoogleDrive
    Attachments.OneDriveAttachmentData:
      allOf:
      - $ref: '#/components/schemas/Attachments.AttachmentData'
      - description: OneDrive
    Contacts.ContactFile:
      type: object
      properties:
        source:
          type: string
          enum:
          - device
          - google_drive
          - one_drive
          - dropbox
        metadata:
          oneOf:
          - $ref: '#/components/schemas/Contacts.UploadedContactFile'
          - $ref: '#/components/schemas/Attachments.DropboxAttachmentData'
          - $ref: '#/components/schemas/Attachments.GoogleDriveAttachmentData'
          - $ref: '#/components/schemas/Attachments.OneDriveAttachmentData'
    Contacts.ContactFilesContext:
      type: object
      properties:
        context_key:
          type: object
        context:
          type: array
          items:
            $ref: '#/components/schemas/Contacts.ContactFile'
    Sequences.CompletedSequenceStepRecord:
      type: object
      properties:
        step_id:
          type: string
          description: ID (name) of the completed sequence step
        step_type:
          description: the type of the completed sequence step
          enum:
          - delay
          - send_message
          - condition
        when:
          type: string
          description: iso8601 timestamp of when the step was completed
        step_name:
          type: string
          description: the name of a step this contact completed
    Sequences.SequenceProgressionOutcomes:
      enum:
      - successful
      - unsuccessful
      - error
      - removed
    Sequences.InSequenceContactExitDetails:
      type: object
      properties:
        when:
          type: string
        exit_method:
          type: string
          description: |
            "how" the contact exited the sequence (e.g. by an exit rule or certain message condition)
        outcome:
          $ref: '#/components/schemas/Sequences.SequenceProgressionOutcomes'
    Sequences.InSequenceContactInfo:
      type: object
      properties:
        sequence_id:
          description: id of a sequence this contact is in
          type: string
        seq_contact_id:
          description: a unique identifier of a the contact in the sequence
          type: string
        sequence_name:
          description: the name of a sequence this contact belongs to
          type: string
        sequence_color:
          description: the color of a sequence this contact belongs to
          type: string
        completed_steps:
          type: array
          items:
            $ref: '#/components/schemas/Sequences.CompletedSequenceStepRecord'
        current_step:
          type: string
          description: current sequence's step name
        current_step_id:
          type: string
          description: current sequence's step id
        last_completed_action:
          type: string
          description: last completed sequence action name
        last_completed_action_dao:
          type: string
          description: last completed sequence action date
        has_waited_in_current_step:
          type: number
          description: for how many seconds the contact has waited in it's current step
        email:
          description: an email address the contact was entered the sequence with
          type: string
        exit_details:
          description: exit details if contact completed the sequence
          nullable: true
          type: object
          oneOf:
          - $ref: '#/components/schemas/Sequences.InSequenceContactExitDetails'
        owner:
          description: user who entered this contact to a sequence
          oneOf:
          - $ref: '#/components/schemas/Accounts.ShortUserInfo'
        next_step_scheduled_at:
          description: |
            the timestamp of the next scheduled sequence step (can be use to approximate the next send_message step)
          type: string
    Contacts.InSequenceContactInfoContext:
      type: object
      properties:
        context_key:
          type: object
        context:
          type: array
          items:
            $ref: '#/components/schemas/Sequences.InSequenceContactInfo'
    Messages.Attachment:
      properties:
        content_type:
          description: MIME type of attachment
          type: string
        data_id:
          description: Field data_id must be first retrieved using any sort of Uploads API.
          type: string
        file_size:
          description: Field file_size is given in bytes.
          type: integer
        name:
          type: string
        url:
          description: URL that can be used by a user to download attachment's content
          type: string
      required:
      - data_id
      - file_size
      - content_type
      - name
      - url
      type: object
    Messages.MessagingAccountIdentifier:
      properties:
        account_type:
          enum:
          - email
          - mass_mail
          type: string
        identifier:
          description: 'Account identifier specific to account_type. For account_type: email it should
            be email address. '
          type: string
      required:
      - account_type
      - identifier
      type: object
    Messages.MessagingAccount:
      allOf:
      - $ref: '#/components/schemas/Messages.MessagingAccountIdentifier'
      properties:
        avatar_url:
          nullable: true
          type: string
        comment:
          description: |
            Field comment holds some short freeform text that shows a role of this messaging account to user.
            Examples are 'home', 'work', 'assistant', etc.
          type: string
        company:
          description: Name of account's company, might be null.
          type: object
        company_id:
          description: ID of account's company in Nimble db, might be null.
          nullable: true
          type: object
        contact_id:
          description: Nimble contact id associated with this account
          nullable: true
          type: string
          format: ObjectId
        user_id:
          description: Nimble user id (user themself or team member) associated with this account
          nullable: true
          type: string
          format: ObjectId
        name:
          description: Field name is for readable name of a user. Sometimes identifier value is not suitable
            to be shown to user, for example when it's numerical user id (as for Facebook). Can be null
            if full name is unknown.
          oneOf:
          - type: number
          - type: string
      type: object
    Messages.MessageTemplateContentMode:
      type: string
      enum:
      - standard
      - builder
      - custom_html
    Messages.MessageTemplateContentSpecification:
      properties:
        attachments:
          items:
            $ref: '#/components/schemas/Messages.Attachment'
          type: array
        bcc:
          items:
            $ref: '#/components/schemas/Messages.MessagingAccount'
          type: array
        body:
          description: |
            Can include template variable references in for of *|VARIABLE|*. Recognized template variables are 'FName',
            'LName', 'Title', 'CompanyName' and 'Unsubscribe'.
            Template variables are surrounded with *| |* symbols. Unknown template variable references are not allowed
            and will result in error.
          type: string
        cc:
          items:
            $ref: '#/components/schemas/Messages.MessagingAccount'
          type: array
        subject:
          type: string
        builder_data:
          type: object
          description: client Email builder data
          nullable: true
        content_mode:
          $ref: '#/components/schemas/Messages.MessageTemplateContentMode'
        unsubscribe_category_ids:
          type: array
          items:
            type: string
          description: ids of unsubscribe categories to which this message belongs. If null -- will unsubscribe
            from all categories
          nullable: true
      required:
      - subject
      - body
      type: object
    Settings.MessagingAccountIdentifier:
      properties:
        account_type:
          type: string
        identifier:
          type: string
      required:
      - account_type
      - identifier
      type: object
    Messages.EmailListConfirmationMessageRequest:
      properties:
        message:
          $ref: '#/components/schemas/Messages.MessageTemplateContentSpecification'
        sender_account:
          $ref: '#/components/schemas/Settings.MessagingAccountIdentifier'
        sender_credential_id:
          type: string
          format: objectid
          description: Unique identifier of sender's credential to send emails on behalf of
      required:
      - sender_account
      - message
      - sender_credential_id
      type: object
    Messages.EmailList:
      type: object
      properties:
        list_id:
          type: string
          format: objectid
          description: Unique identifier for the email list
        name:
          type: string
          description: The name of the email list
        description:
          type: string
          nullable: true
          description: Description of the email list
        opt_in_settings:
          type: object
          properties:
            enabled:
              type: boolean
              description: whether to enable mandatory opt-in (i.e. confirmation of recipient via email)
            confirmation_message_request:
              $ref: '#/components/schemas/Messages.EmailListConfirmationMessageRequest'
        owner_id:
          type: string
          format: objectid
          description: User id of owner
        is_private:
          type: boolean
          description: whether this mailing list is shared across company or not
        archived_at:
          type: string
          format: date-time
          description: Timestamp when the list was archived
        is_archived:
          type: boolean
          description: whether this mailing list is archived already
        total_entries:
          type: integer
          description: Total number of recipients in this mailing list
    Contacts.EmailListsContext:
      type: object
      properties:
        context_key:
          type: object
        context:
          type: array
          items:
            $ref: '#/components/schemas/Messages.EmailList'
    Contacts.ContactViewContext:
      oneOf:
      - $ref: '#/components/schemas/Contacts.ContactFilesContext'
      - $ref: '#/components/schemas/Contacts.EmployersDataContext'
      - $ref: '#/components/schemas/Contacts.LastContactedDataContext'
      - $ref: '#/components/schemas/Contacts.LeadsDataContext'
      - $ref: '#/components/schemas/Contacts.InSequenceContactInfoContext'
      - $ref: '#/components/schemas/Contacts.EmailListsContext'
      discriminator:
        propertyName: context_key
        mapping:
          last_contacted_data: '#/components/schemas/Contacts.LastContactedDataContext'
          employers_data: '#/components/schemas/Contacts.EmployersDataContext'
          leads_data: '#/components/schemas/Contacts.LeadsDataContext'
          contact_files: '#/components/schemas/Contacts.ContactFilesContext'
          sequences_data: '#/components/schemas/Contacts.InSequenceContactInfoContext'
          email_lists: '#/components/schemas/Contacts.EmailListsContext'
    Contacts.ContactView:
      description: user perspective on a specific contact
      properties:
        avatar_url:
          type: string
        children:
          items:
            type: string
          type: array
        employers_info:
          description: DEPRECATED, use  values in `contexts`
          items:
            properties:
              company_name:
                type: string
              contact_id:
                type: string
            required:
            - company_name
            - contact_id
            type: object
          type: array
        company_last_contacted:
          description: DEPRECATED, use  values in `contexts`
          properties:
            in:
              $ref: '#/components/schemas/Contacts.LastContacted'
            out:
              $ref: '#/components/schemas/Contacts.LastContacted'
          required:
          - in
          - out
          type: object
        lc:
          description: DEPRECATED, use values in `contexts`
          $ref: '#/components/schemas/Contacts.UserLastContactedView'
        created:
          type: string
        creator:
          type: string
        fields:
          additionalProperties:
            items:
              properties:
                field_id:
                  type: string
                modifier:
                  type: string
                value:
                  type: string
              required:
              - field_id
              - value
              - modifier
              type: object
            type: array
          type: object
        id:
          type: string
        is_important:
          type: object
        last_contacted:
          description: DEPRECATED, use values in `contexts`
          nullable: true
          $ref: '#/components/schemas/Contacts.LastContacted'
        object_type:
          enum:
          - contact
          type: string
        last_contacted_user:
          description: email of user that contacted for the last time (DEPRECATED, use values in `contexts`)
          type: string
        owner_id:
          type: string
        privacy:
          $ref: '#/components/schemas/Contacts.ContactPrivacy'
        record_type:
          $ref: '#/components/schemas/Contacts.ContactType'
        reminder:
          nullable: true
          $ref: '#/components/schemas/Contacts.Reminder'
        tags:
          items:
            type: string
          type: array
        updated:
          type: string
        updater:
          type: string
        stages_info:
          description: DEPRECATED. use `contexts`
          type: array
          items:
            $ref: '#/components/schemas/Contacts.LeadInStageInfo'
        notice:
          $ref: '#/components/schemas/Contacts.ContactNotice'
        contexts:
          description: additional requested contexts (usually passed in the `contexts` request parameter)
          type: array
          items:
            $ref: '#/components/schemas/Contacts.ContactViewContext'
      required:
      - id
      - record_type
      - object_type
      - fields
      - owner_id
      - privacy
      - children
      - updated
      - created
      - updater
      - creator
      - avatar_url
      - tags
      - last_contacted
      - company_last_contacted
      - is_important
      - reminder
      - notice
      type: object
    Contacts.ContactsListing:
      properties:
        meta:
          $ref: '#/components/schemas/Commons.PaginationMeta'
        resources:
          items:
            $ref: '#/components/schemas/Contacts.ContactView'
          type: array
      required:
      - meta
      - resources
      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
    Commons.PushData:
      description: an object containing the push data from the server to the client
      properties:
        action:
          description: the action this notification is for
          example: single_message_sent
          type: string
        created:
          description: datetime formatted in iso8601
          format: date-time
          type: string
        id:
          type: string
        is_new:
          type: boolean
        object:
          description: some structure which varies, depending on object_type and action
          type: object
        object_type:
          description: the type of object this push data is for
          example: notification
          type: string
      required:
      - action
      - object_type
      - created
      - is_new
      - id
      - object
      type: object
    Contacts.ContactsRemovedResponse:
      properties:
        data:
          properties:
            ids:
              items:
                type: string
              type: array
            push_data:
              $ref: '#/components/schemas/Commons.PushData'
          required:
          - ids
          - push_data
          type: object
        status:
          type: string
      required:
      - data
      - status
      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
    Errors.PreflightCheckError:
      example:
        message: Some contacts cannot be updated because of their privacy settings
        nse_query:
          and:
          - is_editable:
              is: false
          - _id:
              in:
              - 5dfb9c3e84a6b90f0c01c23a
              - 5dfb9c3e84a6b90f0c01c23b
        total: 10
        type: non_editable_contacts
      properties:
        message:
          type: string
        nse_query:
          description: problem contacts selection query
          type: object
        total:
          type: integer
        type:
          description: unique and stable identifier of error type
          type: string
      required:
      - type
      - message
      - total
      - nse_query
      type: object
    Errors.PreflightCheckFailures:
      description: action cannot be applied to all specified contacts
      properties:
        errors:
          items:
            $ref: '#/components/schemas/Errors.PreflightCheckError'
          type: array
      required:
      - errors
      type: object
    Contacts.ContactsIdsListing:
      properties:
        meta:
          $ref: '#/components/schemas/Commons.PaginationMeta'
        resources:
          description: List of contacts’ IDs in BSON format
          items:
            type: string
          type: array
      required:
      - meta
      - resources
      type: object
    Contacts.FieldPresentationType:
      enum:
      - single-line-text-box
      - phone
      - email
      - url
      - multi-line-text-box
      - select-box
      - address
      - separator
      - numeric-general
      - numeric-scientific
      - date
      - date-wo-year
      - boolean
      - objectid
      - attachment
      type: string
    Contacts.FieldPresentationWidth:
      enum:
      - '1'
      - '2'
      type: string
    Contacts.SimpleFieldPresentation:
      properties:
        type:
          $ref: '#/components/schemas/Contacts.FieldPresentationType'
        width:
          $ref: '#/components/schemas/Contacts.FieldPresentationWidth'
      required:
      - type
      - width
      type: object
    Contacts.SelectBoxFieldPresentation:
      properties:
        next_id:
          type: string
        type:
          enum:
          - select-box
          type: string
        values:
          items:
            properties:
              id:
                type: string
              value:
                type: string
            required:
            - id
            - value
            type: object
          type: array
        width:
          $ref: '#/components/schemas/Contacts.FieldPresentationWidth'
      required:
      - type
      - width
      - next_id
      - values
      type: object
    Contacts.ContactField:
      example:
        group: Company Info
        id: 58e212d729e8e95e88606bf6
        label: domain
        modifier: ''
        multiples: false
        name: domain
        presentation:
          type: single-line-text-box
          width: '1'
        read_only: false
      properties:
        group:
          type: string
        id:
          type: string
        label:
          type: string
        modifier:
          type: string
        multiples:
          type: boolean
        name:
          type: string
        presentation:
          oneOf:
          - $ref: '#/components/schemas/Contacts.SimpleFieldPresentation'
          - $ref: '#/components/schemas/Contacts.SelectBoxFieldPresentation'
        read_only:
          type: boolean
      required:
      - id
      - name
      - label
      - modifier
      - group
      - presentation
      - multiples
      - read_only
      type: object
    Contacts.FieldGroupType:
      enum:
      - person
      - company
      - both
      type: string
    Contacts.ContactFieldsGroup:
      properties:
        id:
          type: string
        is_standard:
          type: boolean
        label:
          type: string
        name:
          type: string
        order:
          items:
            type: string
          type: array
        type:
          $ref: '#/components/schemas/Contacts.FieldGroupType'
      required:
      - id
      - name
      - label
      - order
      - is_standard
      - type
      type: object
    Contacts.FieldsMetadata:
      example:
        fields:
          instagram:
          - group: Contact Info
            id: 58e212d729e8e95e88606be5
            label: instagram
            modifier: ''
            multiples: true
            name: instagram
            presentation:
              type: single-line-text-box
              width: '1'
            read_only: false
        groups:
          Contact Info:
            id: 58e212d729e8e95e88606bc7
            is_standard: true
            label: Contact Info
            name: Contact Info
            order:
            - instagram
            type: both
      properties:
        fields:
          additionalProperties:
            description: The name of field
            items:
              $ref: '#/components/schemas/Contacts.ContactField'
            type: array
          type: object
        groups:
          ad

# --- truncated at 32 KB (284 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nimble/refs/heads/main/openapi/_original/nimble-openapi-original.yml