openapi: 3.2.0
info:
title: Nutshell Accounts (Companies) Accounts (Companies) API
description: The most powerful API in the world
version: 2.0.0
contact:
name: Nutshell Developers
url: https://developers.nutshell.com
servers:
- url: https://app.nutshell.com/rest
description: Nutshell REST API
tags:
- name: Accounts (Companies)
paths:
/accounts/{id}:
get:
tags:
- Accounts (Companies)
summary: Get an account
description: 'Get an account by ID. Accounts are companies or organizations that you do business with, and are referred to as ''Companies'' in the Nutshell UI.
The returned arrays creators, owners, origins, contacts, accountTypes, and industries contain additional information corresponding to the requested accounts. '
operationId: e011fe1a74d2ca75e6294040b98423f1
parameters:
- name: id
in: path
description: API ids are of the form 'n-accounts', where n is an integer. Ids can be listed in a comma-separated format to retrieve multiple accounts.
required: true
schema:
type: array
items:
type: string
responses:
'200':
description: account
content:
application/json:
schema:
$ref: '#/components/schemas/accountResponse'
security:
- basicAuth: []
delete:
tags:
- Accounts (Companies)
summary: Delete an account
description: Delete an account by ID. Deleted accounts are removed from the companies tab, and can be restored from the trash within 30 days of deletion via the undelete endpoint.
operationId: 2ab29d8b08add12de00c9075a1dc934f
parameters:
- name: id
in: path
description: Ids are of the form 'n-accounts', where n is an integer.
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/accountResponse'
security:
- basicAuth: []
patch:
tags:
- Accounts (Companies)
summary: Update an account
description: Update an account by id.
op is the operation to be performed, and path specifies what resource to patch.
Use the path accounts/0/fieldName to update fields that are user-entered for this resource, i.e. name, description, etc.
Use the path accounts/0/links/fieldName to update this account's links to other resources within Nutshell, i.e. contacts, owner, territory, etc. When performing an 'add', include a /- at the end of the path, i.e. accounts/0/links/fieldName/- .
When using the remove operation, include the id at the end of the path (i.e. accounts/0/links/contacts/1-contacts) - no need to include a value.
Value can alternatively be a list of objects, which can be used with the replace operation and the path accounts/0/urls, accounts/0/addresses, accounts/0/phones, or accounts/0/phones to replace the existing list with a list of new objects. Visit the account docs for more detail on the structure of these objects.
operationId: 48bf7b1de74805c35713fb7b3a9f1e52
parameters:
- name: id
in: path
description: Ids are of the form 'n-accounts', where n is an integer.
required: true
schema:
type: string
requestBody:
required: true
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/patchInput'
responses:
'204':
description: No Content
security:
- basicAuth: []
/accounts/{id}/customfields:
get:
tags:
- Accounts (Companies)
summary: Get custom fields
description: Get a list of custom field values for an account by ID. Custom fields are user-defined fields that can be added to accounts.
operationId: 31ef0f539b00b82d394f351491b80103
parameters:
- name: id
in: path
description: Ids are of the form 'n-accounts', where n is an integer.
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customFields:
type: array
items:
$ref: '#/components/schemas/FullCustomField'
type: object
security:
- basicAuth: []
/accounts/customfields/attributes:
get:
tags:
- Accounts (Companies)
summary: Get a list of custom fields
description: Get a list of all account custom fields in your Nutshell instance. Custom fields are user-defined fields that can be added to accounts.
operationId: 09c7340848e47c8b7727d7e316702d3d
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
customFields:
type: array
items:
$ref: '#/components/schemas/CustomField'
type: object
security:
- basicAuth: []
/accounts/customfield:
post:
tags:
- Accounts (Companies)
summary: Create a custom field
description: Creates a custom field to use for accounts.
operationId: aa09106535968abeb7ea879a5774eec7
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CustomFieldCreateInput'
responses:
'200':
description: OK
security:
- basicAuth: []
/accounts/list:
get:
tags:
- Accounts (Companies)
summary: Get list items for all accounts
description: Get a list of all accounts and associated data in your Nutshell Instance, in a list item format. List items have additional fields attached to them for filtering purposes.
operationId: fea99eec1a11b79a75fd3c6092ea1c95
parameters:
- name: filter
in: query
required: false
style: deepObject
explode: true
schema:
description: Filter the returned accounts based on various criteria. Use /rest/accounts/list/fields to get a full list of valid filter keys.
type: object
additionalProperties:
$ref: '#/components/schemas/FilterInput'
- name: q
in: query
description: Used to search all related info on an entity. Returns all entities that are similar to the query term.
required: false
schema:
type: string
- name: sort
in: query
description: 'Sort the returned list by a chosen field. Use a ''-'' before the field name to sort in descending order. '
required: false
schema:
type: array
items:
type: string
enum:
- -accountType
- -createdTime
- -industry
- -lastContactedTime
- -name
- -numberOfContacts
- -owner
- -phone
- -postalCode
- -territory
- accountType
- createdTime
- industry
- lastContactedTime
- name
- numberOfContacts
- owner
- phone
- postalCode
- territory
responses:
'200':
description: accounts list
content:
application/json:
schema:
properties:
meta:
allOf:
- properties:
count:
description: The number of returned accounts
type: integer
format: int32
type: object
- properties:
total:
description: The total number of accounts in your Nutshell instance
type: integer
format: int32
type: object
- properties:
facets:
description: Contains an AccountType object, which lists the id and count for each account type in your instance
properties:
AccountType:
properties:
n-accountTypes:
description: The number of accounts with the account type id n-accountTypes, where n is an integer
type: integer
format: int32
type: object
type: object
type: object
- $ref: '#/components/schemas/meta'
listItems:
type: array
items:
allOf:
- $ref: '#/components/schemas/ListItemAccount'
- $ref: '#/components/schemas/HtmlLinkable'
- $ref: '#/components/schemas/Avatarable'
type: object
security:
- basicAuth: []
/accounts:
get:
tags:
- Accounts (Companies)
summary: Get a list of accounts
description: Get all accounts and associated data in your Nutshell instance. Accounts are companies or organizations that you do business with, and are referred to as 'Companies' in the Nutshell UI.
operationId: ee7a9535ab7ae30da91d6d9cebe2ed85
parameters:
- name: email
in: query
description: query for accounts associated with a specific email address
required: false
schema:
type: string
- name: q
in: query
description: Used to search all related info on an entity. Returns all entities that are similar to the query term.
required: false
schema:
type: string
- name: filter
in: query
required: false
style: deepObject
explode: true
schema:
description: Filter the returned accounts based on various criteria. Use /rest/accounts/list/fields to get a full list of valid filter keys.
type: object
additionalProperties:
$ref: '#/components/schemas/FilterInput'
- name: sort
in: query
description: 'Sort the returned list by a chosen field. Use a ''-'' before the field name to sort in descending order. '
required: false
schema:
type: array
items:
type: string
enum:
- -accountType
- -createdTime
- -industry
- -lastContactedTime
- -name
- -numberOfContacts
- -owner
- -phone
- -postalCode
- -territory
- accountType
- createdTime
- industry
- lastContactedTime
- name
- numberOfContacts
- owner
- phone
- postalCode
- territory
- name: page[limit]
in: query
description: Limit the number of results returned, for pagination.
required: false
schema:
type: string
- name: page[page]
in: query
description: Request a specific page of results, for pagination. Used in conjunction with the page[limit] parameter. Indexing is 0-based.
required: false
schema:
type: string
responses:
'200':
description: accounts
content:
application/json:
schema:
properties:
meta:
allOf:
- properties:
count:
description: The number of returned accounts
type: integer
format: int32
type: object
- properties:
total:
description: The total number of accounts in your Nutshell instance
type: integer
format: int32
type: object
- properties:
facets:
description: Contains an AccountType object, which lists the id and count for each account type in your instance
properties:
AccountType:
properties:
n-accountTypes:
description: The number of accounts with the account type id n-accountTypes, where n is an integer
type: integer
format: int32
type: object
type: object
type: object
- $ref: '#/components/schemas/meta'
accounts:
description: An array of returned accounts.
type: array
items:
$ref: '#/components/schemas/Account'
type: object
security:
- basicAuth: []
post:
tags:
- Accounts (Companies)
summary: Create an account
description: Create a new account. Accounts are companies or organizations that you do business with, and are referred to as 'Companies' in the Nutshell UI.
operationId: 0e0199fef8e93c05437d3a33104886d1
requestBody:
description: 'At least one of the following fields is required: name, phone, email, address, or url. All other fields are optional.'
required: true
content:
json:
schema:
properties:
accounts:
type: array
items:
properties:
name:
type: string
description:
type: string
phones:
type: array
items:
properties:
isPrimary:
type: boolean
name:
type: string
value:
type: string
example: 123-456-7890
type: object
emails:
type: array
items:
properties:
value:
type: string
example: support@nutshell.com
type: object
urls:
type: array
items:
properties:
value:
type: string
example: http://www.nutshell.com
type: object
addresses:
type: array
items:
properties:
name:
type: string
isPrimary:
type: boolean
value:
properties:
address_1:
description: Street address
type: string
example: 123 Main St
city:
type: string
example: Ann Arbor
state:
type: string
example: MI
type: object
type: object
links:
description: Links to other resources within Nutshell. Key is the type of resource being linked, value is the id of that resource.
type: object
customFields:
description: Custom fields to add to the Account.
type: object
example:
Favorite Number: '12'
additionalProperties:
$ref: '#/components/schemas/CustomFieldInput'
type: object
type: object
responses:
'201':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
security:
- basicAuth: []
/accounts/{id}/undelete:
post:
tags:
- Accounts (Companies)
summary: Undelete an account
description: Undelete an account by id.
operationId: 23c63a8f80517c993fb93e50e216167b
parameters:
- name: id
in: path
description: Ids are of the form 'n-accounts', where n is an integer.
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Account'
security:
- basicAuth: []
/accounts/list/fields:
get:
tags:
- Accounts (Companies)
summary: Get the fields for an account
description: Get the list of fields that can possibly be associated with accounts, along with whether they are valid for filtering sorting.
operationId: 4eb956de07606de9ea86f6b39feeff20
responses:
'200':
description: Account fields
content:
application/json:
schema:
$ref: '#/components/schemas/FieldsResponse'
security:
- basicAuth: []
/accounttypes:
get:
tags:
- Accounts (Companies)
summary: Get a list of account types
description: Get a list of all account types in a Nutshell instance.
operationId: 73f17127f4378721e7a57e7a7890b1b3
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AccountType'
security:
- basicAuth: []
/industries:
get:
tags:
- Accounts (Companies)
summary: Get a list of industries
description: Retreives the list of valid industries to describe companies as belonging to.
operationId: 7e2ccf9488b1ee4f602c7059eee817e5
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Industry'
security:
- basicAuth: []
components:
schemas:
FieldsResponse:
description: Response object for entity fields endpoint
properties:
properties:
properties:
exampleProperty:
properties:
type:
description: The type of the property
type: string
example: string
title:
description: The display title of the property
type: string
example: Example Property
description:
description: The description of the property
type: string
example: This is an example property
isFilterable:
description: Whether the property can be used in filters
type: boolean
example: true
isDisplayable:
description: Whether the property can be displayed
type: boolean
example: true
isSortable:
description: Whether the property can be used for sorting
type: boolean
example: true
isGoalable:
description: Whether the property can be used as a condition in automation goals
type: boolean
example: false
isAddable:
description: Whether the property can be set when creating or editing a lead
type: boolean
example: true
isBoardable:
description: Whether the property can be displayed on lead cards/boards
type: boolean
example: true
isRequireable:
description: Whether the property can be marked as required in forms
type: boolean
example: false
isAndable:
description: Whether multiple filter values can be combined with AND/OR logic (allows 'any' vs 'all' selection)
type: boolean
example: false
isNullable:
description: Whether the property can have a null/empty value
type: boolean
example: true
relationships:
description: For relationship-type properties, array of related entity types (e.g., ['users', 'teams'])
type: array
items:
type: string
example:
- users
- teams
enum:
description: For enum-type properties, array of possible values
type: array
items:
type: string
example:
- Option1
- Option2
format:
description: Value format specification (e.g., 'uri', 'relative' for date-time)
type: string
example: uri
type: object
type: object
type: object
Peep:
properties:
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
name:
description: The entity's full name.
type: string
example: Andy Nutshell
description:
description: A brief explanation of this entity which appears under their name.
type: string
example: CEO / cofounder @ Nutshell. Building growth software, wrangling beagles 🐶
createdTime:
description: Unix timestamp
type: integer
format: int64
deletedTime:
description: Unix timestamp
type: integer
format: int64
emails:
$ref: '#/components/schemas/emails'
addresses:
$ref: '#/components/schemas/addresses'
phones:
$ref: '#/components/schemas/phones'
urls:
$ref: '#/components/schemas/urls'
type: object
Account:
type: object
allOf:
- $ref: '#/components/schemas/Peep'
- $ref: '#/components/schemas/Avatarable'
- $ref: '#/components/schemas/HtmlLinkable'
- properties:
href:
type: string
revenue:
properties:
amount:
type: string
example: '8675309.00'
formatted:
type: string
example: $8,675,309.00
type: object
employeeCount:
type: integer
type: object
phones:
type: array
items:
properties:
isOptedOut:
description: If this number has opted out of receiving SMS messages
type: boolean
example: true
isPrimary:
description: Should this phone number be used if there are multiple
type: boolean
example: true
name:
description: A label for the phone number, e.g. 'work', 'home', 'mobile'.
type: string
example: phone
value:
properties:
countryCode:
description: Phone number prefix for calling individuals in other countries
type: string
example: '1'
number:
description: The unformatted phone number with only digits
type: string
example: '7341234567'
extension:
description: An additional code to reach a specific person or department which share a number
type: string
example: '123'
numberFormatted:
description: The phone number formatted for human readability
type: string
example: 734-123-4567
E164:
description: The phone number formatted for international use; a common programatic standard for working with phone numbers
type: string
example: '+17341234567'
countryCodeAndNumber:
description: The phone number formatted for human readability with the country code
type: string
example: +1 734-123-4567
type: object
type: object
urls:
type: array
items:
properties:
isPrimary:
description: Should this URL be used if there are multiple
type: boolean
example: true
name:
description: A label for the URL, e.g. 'LinkedIn', 'Facebook', 'personal website'.
type: string
example: LinkedIn
value:
description: The URL itself
type: string
example: https://www.linkedin.com
type: object
Origin:
type: object
allOf:
- $ref: '#/components/schemas/Avatarable'
- $ref: '#/components/schemas/HtmlLinkable'
- properties:
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
name:
type: string
modifiedTime:
type: integer
format: int64
lastseenTime:
type: integer
format: int64
originType:
type: string
type: object
addresses:
description: All addresses associated with an entity.
type: array
items:
properties:
isPrimary:
description: Should this address be used if there are multiple
type: boolean
example: true
name:
description: A label for the address, e.g. 'work', 'home', 'shipping'.
type: string
example: address
value:
description: The geographic coordinates for the address.
properties:
location:
properties:
longitude:
type: number
example: -83.732124
latitude:
type: number
example: 42.279594
type: object
type: object
locationAccuracy:
description: How specific the address is. 8 is an exact street address, 1 is only a country.
type: string
example: '8'
address_1:
description: Primary street address
type: string
example: 206 E Huron St
address_2:
description: Secondary street address, such as a suite or apartment number
type: string
example: Suite 200
address_3:
type: string
city:
description: City or town
type: string
example: Ann Arbor
state:
description: State or province
type: string
example: MI
postalCode:
description: ZIP or postal code
type: string
example: '48103'
country:
description: Country code
type: string
example: US
timezone:
type: string
type: object
User:
type: object
allOf:
- $ref: '#/components/schemas/Avatarable'
- properties:
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
name: {}
firstName: {}
modifiedTime:
type: integer
isEnabled:
type: boolean
hasSetPassword:
type: boolean
isAdministrator:
type: boolean
isViewingRestricted:
type: boolean
isHiddenFromFilters:
type: boolean
canAccessEmailMarketing:
type: boolean
permissions:
$ref: '#/components/schemas/permissions'
emails:
type: array
items:
type: string
phonecallerType: {}
type: object
CustomFieldInput:
description: The key-value pair for the custom field.
properties:
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
type: string
ListItemAccount:
type: object
allOf:
- $ref: '#/components/schemas/ListItem'
- properties:
description:
type: string
type: object
AccountType:
properties:
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
name:
type: string
modifiedTime:
type: integer
format: int64
type: object
emails:
description: All email addresses associated with an entity.
type: array
items:
properties:
isPrimary:
description: If entity has multiple email addresses, which should be used as the primary point of contact.
type: boolean
example: true
name:
description: A label for the email address, e.g. 'work', 'personal', 'support'.
type: string
example: personal
value:
description: The email address itself.
type: string
example: andy@nutshell.com
type: object
FilterInput:
description: The key-value pair for the filter, ex. filter[tags]=1-tags
type: string
Avatarable:
properties:
avatarUrl:
description: The URL of the entity's avatar image.
type: string
example: https://app.nutshell.com/avatars/contacts/1006/{path}
initials:
description: The initials of the entity, used as a fallback for the avatar image.
type: string
example: AF
type: object
ListItem:
type: object
allOf:
- $ref: '#/components/schemas/HtmlLinkable'
- $ref: '#/components/schemas/Avatarable'
- properties:
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
primaryName:
type: string
primaryInfo:
type: string
relatedName:
type: string
relatedInfo:
type: string
relatedType:
type: string
relatedUrl:
type: string
relatedUrlPath:
type: string
primaryContact:
type: string
primaryAccount:
type: string
latlon:
type: string
mapUrl:
type: string
isDeleted:
type: boolean
fields:
description: Various additional fields for the list item. View the example response for more details.
type: array
items:
type: object
type: object
CustomFieldCreateInput:
properties:
name:
description: The name of the custom fields
type:
description: Email, location, phone, and URL are only applicable to leads.
choices:
description: For enums only. The possible values for the custom field.
isMultiple:
description: For enums only. Whether the custom field can have multiple values
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
title:
type: string
example: Custom Field Title
type: object
Industry:
properties:
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
name:
description: The type of industry.
example: Software
modifiedTime:
type: integer
type: object
meta:
description: Information about the Nutshell instance making the request
properties:
instanceId:
description: The Nutshell instance ID
type: string
example: '12345'
siteId:
description: Site ID for WebFX customers
type: string
type: object
accountResponse:
description: A full response object for an account-related endpoint.
properties:
meta:
$ref: '#/components/schemas/meta'
accounts:
description: An array of returned accounts.
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/Account'
- $ref: '#/components/schemas/HtmlLinkable'
- $ref: '#/components/schemas/Avatarable'
creators:
description: An array of creators for the accounts
type: array
items:
$ref: '#/components/schemas/User'
owners:
description: An array of owners for the accounts
type: array
items:
$ref: '#/components/schemas/User'
origins:
description: An array of origins for the accounts
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/Origin'
- $ref: '#/components/schemas/HtmlLinkable'
- $ref: '#/components/schemas/Avatarable'
contacts:
description: An array of contacts for the accounts
type: array
items:
$ref: '#/components/schemas/Contact'
accountTypes:
description: An array of account types for the accounts
type: array
items:
$ref: '#/components/schemas/AccountType'
industries:
description: An array of industries for the accounts
type: array
items:
$ref: '#/components/schemas/Industry'
type: object
CustomField:
properties:
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
type: object
Contact:
type: object
allOf:
- $ref: '#/components/schemas/Peep'
- $ref: '#/components/schemas/Avatarable'
- $ref: '#/components/schemas/HtmlLinkable'
- properties:
jobTitle:
description: The person's role at their company.
example: CEO
firstName:
description: The person's given name.
example: Andy
lastName:
description: The person's family name.
example: Fowler
href:
description: The URL to fetch this contact.
type: string
example: https://app.nutshell.com/rest/contacts/3-contacts
type: object
patchInput:
type: array
items:
properties:
op:
description: The operation to perform
type: string
enum:
- add
- remove
- replace
- move
- copy
example: add
path:
description: The path to the attribute to patch. Can be used to update custom fields as well, such as using /leads/0/{customFieldName}
type: string
example: /leads/0/links/accounts/337-accounts
value:
description: The value to set, can be various types, please refer to our guide on JSON Patch for more information
type: string
example: 337-accounts
type: object
FullCustomField:
type: object
allOf:
- $ref: '#/components/schemas/CustomField'
- properties:
value:
description: Custom fields can be many different types, see the guide on Custom Fields for more info.
type: string
id:
description: The API ID of this entity, formatted {integer}-{entityType}
type: string
example: 3-contacts
type: object
HtmlLinkable:
description: 'Adds an htmlUrl string attribute that represents a URL of an HTML representation of the
response model.'
properties:
htmlUrl:
description: The link to the entity within the app.
type: string
example: https://app.nutshell.com/lead/1006
htmlUrlPath:
description: The path to the entity within the app.
type: string
example: /lead/1006
type: object
permissions:
properties:
canAccessSetup:
type: boolean
canAccessMarketing:
type: boolean
canBulkEdit:
type: boolean
canExport:
type: boolean
canViewSharedEmails:
type: boolean
canImport:
type: boolean
canMergeEntities:
type: boolean
canDeleteEntities:
type: boolean
canAssignEntities:
type: boolean
canAccessBilling:
type: boolean
canManageEmailTemplates:
type: boolean
canAccessCrm:
type: boolean
canAccessFullCampaigns:
type: boolean
canUsePeopleIQ:
type: boolean
canUseInbox:
type: boolean
type: object
securitySchemes:
basicAuth:
type: http
scheme: basic