Vendasta Resource Operations API
Endpoints related to Resource Operations
Endpoints related to Resource Operations
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/vendasta-resource-operations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: CRM Rest Resource Operations API
version: '1.0'
summary: ''
description: Endpoints related to Resource Operations
servers:
- url: https://prod.apigateway.co/org
description: Production
- url: https://demo.apigateway.co/org
description: Demo
- url: http://localhost:11001/org
description: Local
- url: '{local}/org'
description: Local
security:
- OAuth2Demo:
- customers
- OAuth2Prod:
- customers
tags:
- name: Resource Operations
description: Endpoints related to Resource Operations
paths:
/{namespace}/{resourceTypeCode}/meta/fields:
parameters:
- schema:
type: string
name: namespace
in: path
required: true
description: The namespace, PID/AGID
- name: resourceTypeCode
in: path
required: true
description: The resourceTypeCode, here contacts, companies or activities.
schema:
type: string
enum:
- activities
- companies
- contacts
- callActivities
- communicationActivities
- emailActivities
- meetingActivities
- noteActivities
- opportunityChangeActivities
- recordChangeActivities
- taskActivities
get:
summary: Get field schema
tags:
- Resource Operations
responses:
'200':
description: This API follows [Open API schema](https://spec.openapis.org/oas/v3.1.0#schema-object) of structure for response.
content:
application/json:
examples:
contacts Resource:
value:
type: object
title: CRM FieldSchema of Contact
description: CRM Field Schema of resourceType Contact.
properties:
system__id:
type: string
description: The globaly unique id for this contact record
standard__first_name:
type: string
title: First Name
description: The given name of the contact
standard__last_name:
type: string
maxLength: 50
system__created_at:
type: string
format: date-time
readOnly: true
standard__email:
type: string
format: email
platform__contact_additional_salesperson_ids:
description: Identifiers for additional salespeople in the platform.
items:
type: string
title: Additional Salesperson IDs
type: array
platform__contact_salesperson_id:
description: Identifier for a salesperson in the platform.
title: Salesperson ID
type: string
platform__ssc_contact_id:
description: Identifies the SSC contact, which may be associated with zero or more account groups.
items:
type: string
readOnly: true
title: Platform SSC contact IDs
type: array
platform__user_id:
description: Identifier for contact's underlying IAM user.
readOnly: true
title: Platform user ID
type: string
standard__contact_birth_year:
description: Contact's birth year. E.g. '1980'
title: Birth Year
type: string
standard__contact_company_name:
description: Name of the contact's company. This may be set independently from the name property on the contact's associated company.
title: Company name
type: string
standard__contact_company_website:
description: Name of the contact's company website. This may be set independently from the name property on the contact's associated company.
title: Company website
type: string
standard__contact_gender:
description: Gender of the contact. E.g. 'male', 'female', 'other'
title: Gender
type: string
standard__contact_interests:
description: Contact's interests. E.g. 'Hiking', 'Skiing', 'Cooking', 'Paintball'
items:
type: string
title: Interests
type: array
standard__contact_job_title:
description: Job title of the contact.
title: Job title
type: string
standard__contact_lifecycle_stage:
description: Lifecycle stage of the contact. E.g. 'Lead'
title: Lifecycle stage
type: string
standard__contact_linkedin_url:
description: URL of the contact's LinkedIn profile.
title: LinkedIn URL
type: string
standard__contact_mobile_phone_number:
description: Mobile phone number of the contact.
title: Mobile phone number
type: string
standard__contact_next_task_due_date:
description: Date indicating when the next task of the contact is due for completion
format: date-time
title: Next task due date
type: string
standard__contact_next_task_id:
description: ID of the next task of the contact
title: Next task ID
type: string
standard__contact_primary_company_id:
description: The primary company associated with the contact.
readOnly: true
title: Primary Company
type: string
standard__contact_primary_location_city_locality:
description: City or locality of the contact's primary location.
title: City/locality
type: string
standard__contact_primary_location_country:
description: Country of the contact's primary location.
title: Country
type: string
standard__contact_primary_location_state_province_region:
description: State, province, or region of the contact's primary location.
title: State/province/region
type: string
standard__contact_primary_location_street_address_1:
description: Street address line 1 of the contact's primary location.
title: Street address line 1
type: string
standard__contact_primary_location_street_address_2:
description: Street address line 2 of the contact's primary location.
title: Street address line 2
type: string
standard__contact_primary_location_zip_postal_code:
description: Zip or postal code of the contact's primary location.
title: Zip/postal code
type: string
standard__contact_role:
description: Role of the contact.
title: Role
type: string
standard__contact_seniority:
description: Seniority of the contact.
title: Seniority
type: string
standard__contact_skills:
description: Contact's skills. E.g. 'Java', 'Python', 'Javascript'
items:
type: string
title: Skills
type: array
standard__contact_source_name:
description: Name of the app or external system that created the contact. E.g. 'Salesforce', 'Hubspot', 'Gmail'
title: Source name
type: string
standard__contact_timezone:
description: 'Timezone of the contact. This is a string representing the timezone like ''America/New_York''. '
title: Timezone
type: string
standard__phone_number:
title: Phone number
type: string
standard__tags:
description: Descriptive keywords that help you find and segment contacts.
title: Tags
type: string
system__contact_created:
description: When the record was created
format: date
readOnly: true
title: Created date
type: string
system__contact_external_id:
description: External identifier for the record, optional
readOnly: true
title: External ID
type: string
system__contact_group_id:
description: Group ID for the record, optional. Used for grouping records together, and authorization where users are restricted to selected groups.
readOnly: true
title: Group ID
type: string
system__contact_id:
description: unique identifier for the record
readOnly: true
title: ID
type: string
system__contact_last_activity_date:
description: Date and time of last activity
format: date-time
title: Last activity date
type: string
system__contact_owner_id:
description: Owner ID for the record.
readOnly: true
title: Owner ID
type: string
system__contact_updated:
description: When the record was last updated
format: date
readOnly: true
title: Updated date
type: string
yesware__contact_enrichment_vendor_id:
description: The ID of the enrichment vendor in Yesware. If the contact has not been enriched, this field will be unset.
title: Yesware enrichment vendor ID
type: string
yesware__contact_id:
description: The ID of the contact in Yesware.
title: Yesware contact ID
type: string
yesware__contact_last_enrichment_date:
description: The date of the last enrichment in Yesware. If the contact has not been enriched, this field will be unset.
format: date-time
title: Yesware last enrichment date
type: string
headers: {}
'404':
description: User Not Found
operationId: ListFieldSchema
description: '[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`
Retrieve field schema based on namespace.'
x-lifecycle:
status: proposed
/{namespace}/{resourceTypeCode}/meta/fields/{fieldId}/options:
parameters:
- schema:
type: string
name: namespace
in: path
required: true
description: The namespace, PID/AGID
- name: resourceTypeCode
in: path
required: true
description: The resourceTypeCode, here contacts, companies or activities.
schema:
type: string
enum:
- activities
- companies
- contacts
- callActivities
- communicationActivities
- emailActivities
- meetingActivities
- noteActivities
- opportunityChangeActivities
- recordChangeActivities
- taskActivities
- schema:
type: string
name: fieldId
in: path
required: true
description: Unique identifier for field
get:
summary: Get field options
tags:
- Resource Operations
responses:
'200':
description: 'The list of valid options for the field. This can be used to create a dropdown list for your users. '
content:
application/json:
examples:
Get field options:
value:
options:
- value: Option 1
name: Option 1
- value: Option 2
name: Option 2
- value: Option 3
name: Option 3
schema:
type: object
properties:
options:
type: array
x-stoplight:
id: jwikc0afwakmo
items:
x-stoplight:
id: 1jmcjoeuy5wm9
type: object
properties:
name:
type: string
x-stoplight:
id: 6hk1kskoxz8sj
description: The text to be displayed to users. Note this might be translated.
value:
type: string
x-stoplight:
id: qdy9hr51rggn0
description: The value to be saved in the database
'400':
description: Bad Request
operationId: GetFieldOptions
description: '[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`
Retrieve the field options based on the given fieldId.'
parameters:
- schema:
type: string
in: query
name: filter
description: Filtering is an OPTIONAL parameter. It filters field option based on given filter value.
- schema:
type: string
in: query
name: paging
description: Pagination to retrieve a specific page of results
x-lifecycle:
status: proposed
/{namespace}/{resourceTypeCode}:
patch:
summary: Upsert CRM Record
operationId: UpsertCrmRecord
parameters:
- schema:
type: string
name: namespace
in: path
required: true
description: The namespace, PID/AGID
- name: resourceTypeCode
in: path
required: true
description: The resourceTypeCode, here contacts, companies or activities.
schema:
type: string
enum:
- activities
- companies
- contacts
- callActivities
- communicationActivities
- emailActivities
- meetingActivities
- noteActivities
- opportunityChangeActivities
- recordChangeActivities
- taskActivities
- customObjects
requestBody:
content:
application/json:
schema:
x-examples:
Example 1:
subtype: ''
fields:
- id: externalId
value: example-first-name
operation: always_overwrite
- id: externalId
value: example-last-name
operation: always_overwrite
- id: externalId
value: crm@example.com
operation: always_overwrite
searchExisting:
- standard__email
returnFields:
- standard__email
- standard__first_name
oneOf:
- description: V1
title: Body V1
properties:
subtype:
type: string
fields:
type: array
items:
type: object
properties:
id:
type: string
value:
type: string
description: 'Most values are passed as string. In the case of lists and tags you can add a ''['' and '']'' surrounding the values. In the case of geopoints, ''[]'' surrounding two numeric values (lat,long). In the case of currency values, this value accepts the format ''{ currencyCode : "USD", amount : 000 } where amount is a numeric value.'
operation:
type: string
description: The supported operation types are `always_overwrite`, `overwrite_if_empty`, `overwrite_if_newer` & `combine`.
searchExisting:
type: array
items:
type: string
returnFields:
type: array
description: A list of fields that should have their merged values returned in the response. If empty no fields will be returned.
items:
type: string
- x-stoplight:
id: 40hjq3h4hwo2a
description: V2
title: Body V2
properties:
subtype:
type: string
data:
$ref: '#/components/schemas/CRMObject'
x-stoplight:
id: fd8bicknxqstx
searchExisting:
type: array
x-stoplight:
id: cljd7ngnz4sj9
items:
x-stoplight:
id: 2mp0l0b686d6t
type: string
returnFields:
type: array
x-stoplight:
id: y0c8br6d066lg
items:
x-stoplight:
id: awbzvw8b72sq3
type: string
type: object
examples:
Request body:
value:
subtype: ''
fields:
- id: standard__first_name
value: example-first-name
operation: always_overwrite
- id: standard__last_name
value: example-last-name
operation: always_overwrite
- id: standard__email
value: crm@example.com
operation: always_overwrite
searchExisting:
- standard__email
returnFields:
- standard__email
- standard__first_name
application/xml:
schema:
type: object
properties:
subtype:
type: string
fields:
type: array
items:
type: object
properties:
id:
type: string
value:
type: string
operation:
type: string
search_existing:
type: array
items:
type: string
return_fields:
type: array
items:
type: string
examples:
Example:
value: '{"subtype": "",
"fields": [
{
"Id": "externalId",
"value": "example-first-name",
"Operation": "always_overwrite"
},
{
"Id": "externalId",
"value": "example-last-name",
"Operation": "always_overwrite"
},
{
"Id": "externalId",
"value": "crm@example.com",
"Operation": "always_overwrite"
}
],
"search_existing": [
"standard__email"
],
"return_fields": [
"standard__email",
"standard__first_name"
]
}'
description: ''
responses:
'200':
description: This API follows [Open API schema](https://spec.openapis.org/oas/v3.1.0#schema-object) of structure for response.
content:
application/json:
schema:
type: object
examples:
Response Body:
value:
fields:
- id: standard__first_name
value: Bob
- id: standard__email
value: crm@example.com
'400':
description: Bad Request
tags:
- Resource Operations
x-stoplight:
id: 1de3f0654bc17
x-lifecycle:
status: Trusted Tester
description: "[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): \n\nv1: `Trusted Tester`\n\nv2: `Proposed`\n\n**v1 Description:**\n\nCreate/update CRM contacts, companies or activities records.\n\nDefault rules will be used to match existing records. You may specificy your own fields that contain unique values in `searchExisting`.\n\nIf a match is found the records will be merged using the always_overwrite, overwrite_if_empty, overwrite_if_newer & combine stratagy"
post:
summary: Create CRM Record
operationId: CreateCrmRecord
parameters:
- schema:
type: string
name: namespace
in: path
required: true
description: The namespace, PID/AGID
- name: resourceTypeCode
in: path
required: true
description: The resourceTypeCode, here contacts, companies or activities.
schema:
type: string
enum:
- activities
- companies
- contacts
- callActivities
- communicationActivities
- emailActivities
- meetingActivities
- noteActivities
- opportunityChangeActivities
- recordChangeActivities
- taskActivities
responses:
'200':
description: Successful
'400':
description: Bad Request
tags:
- Resource Operations
x-stoplight:
id: j1bhs5sbm6rw4
description: "[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`\n\nCreate a new CRM record. \nTip: Use Upsert CRM Record to automatically check for existing records to merge the provided data into."
/{namespace}/{resourceTypeCode}/{id}:
get:
summary: Get CRM Record
operationId: GetCrmRecord
parameters:
- schema:
type: string
name: namespace
in: path
required: true
description: The account or partner ID
- name: resourceTypeCode
in: path
required: true
schema:
type: string
enum:
- activities
- callActivities
- communicationActivities
- companies
- contacts
- emailActivities
- meetingActivities
- noteActivities
- opportunityChangeActivities
- recordChangeActivities
- taskActivities
description: The type of object being worked on
- schema:
type: string
name: id
in: path
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
type:
type: string
id:
type: string
attributes:
$ref: '#/components/schemas/CRMObject'
tags:
- Resource Operations
description: '[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`'
delete:
summary: Delete CRM Record
operationId: DeleteCrmRecord
parameters:
- schema:
type: string
name: namespace
in: path
required: true
description: The account or partner ID
- name: resourceTypeCode
in: path
required: true
schema:
type: string
enum:
- activities
- callActivities
- communicationActivities
- companies
- contacts
- emailActivities
- meetingActivities
- noteActivities
- opportunityChangeActivities
- recordChangeActivities
- taskActivities
description: The type of object being worked on
- schema:
type: string
name: id
in: path
required: true
responses:
'200':
description: Successful
'400':
description: Bad Request
tags:
- Resource Operations
description: '[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`'
patch:
summary: Update CRM Record
operationId: UpdateCrmRecord
parameters:
- schema:
type: string
name: namespace
in: path
required: true
description: The account or partner ID
- name: resourceTypeCode
in: path
required: true
schema:
type: string
enum:
- activities
- callActivities
- communicationActivities
- companies
- contacts
- emailActivities
- meetingActivities
- noteActivities
- opportunityChangeActivities
- recordChangeActivities
- taskActivities
description: The type of object being worked on
- schema:
type: string
name: id
in: path
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/CRMObject'
responses:
'200':
description: Successful
content: {}
'400':
description: Bad Request
tags:
- Resource Operations
description: '[Status](https://developers.vendasta.com/platform/ZG9jOjEwMTU2NTYy-versioning): `Proposed`'
/list/{namespace}/{resourceTypeCode}:
post:
operationId: ListCrmRecords
summary: List CRM Records
parameters:
- schema:
type: string
name: namespace
in: path
required: true
description: The namespace, PID/AGID
- schema:
type: string
name: resourceTypeCode
in: path
required: true
description: The resourceTypeCode, here contacts, companies or activities.
requestBody:
description: ''
required: true
content:
application/json:
schema:
type: object
properties:
subtype:
type: string
fields:
type: array
items:
type: object
properties:
id:
type: string
value:
description: For date and time use a string in the RFC 3339 format
oneOf:
- type: string
- type: boolean
- type: integer
- type: number
- type: array
items:
oneOf:
- type: string
- type: boolean
- type: integer
- type: number
operation:
type: string
nullable: true
description: "The list will filter the results based on the operation applied over the field regarding the value. \n\nOperations available depend on the type of field : \n\n**string**: [ \"IS\", \"IS_NOT\", \"IS_EMPTY\", \"IS_NOT_EMPTY\", \"IS_ANY\", \"IS_NOT_ANY\"] \n\n**string_list**: [ \"IS_EMPTY\", \"IS_NOT_EMPTY\", \"IS_ANY\", \"IS_NOT_ANY\", \"IS_ALL\", \"IS_NOT_ALL\"] \n\n**boolean**: [ \"IS\", \"IS_EMPTY\", \"IS_NOT_EMPTY\"] \n\n**date**: [ \"IS\", \"IS_NOT\", \"IS_EMPTY\", \"IS_NOT_EMPTY\", \"IS_BEFORE\", \"IS_BEFORE_OR_ON\", \"IS_AFTER\", \"IS_AFTER_OR_ON\", \"IS_BETWEEN\", \"IS_NOT_BETWEEN\"] \n\n**integer**: [ \"IS_EQUAL_TO\", \"IS_NOT_EQUAL_TO\", \"IS_EMPTY\", \"IS_NOT_EMPTY\", \"IS_GREATER_THAN\", \"IS_GREATER_THAN_OR_EQUAL_TO\", \"IS_LESS_THAN\", \"IS_LESS_THAN_OR_EQUAL_TO\", \"IS_BETWEEN\", \"IS_NOT_BETWEEN\"] \n\n**phone** [ \"IS\", \"IS_NOT\", \"IS_EMPTY\", \"IS_NOT_EMPTY\", \"IS_VALID\", \"IS_NOT_VALID\"] \n\n**tag** [ \"IS_EMPTY\", \"IS_NOT_EMPTY\", \"IS_ANY\", \"IS_NOT_ANY\", \"IS_ALL\", \"IS_NOT_ALL\"] \n\nDefault: **\"IS\"**"
enum:
- IS
- IS_NOT
- IS_EMPTY
- IS_NOT_EMPTY
- IS_ANY
- IS_NOT_ANY
- IS_ALL
- IS_NOT_ALL
- CONTAINS
- DOES_NOT_CONTAIN
- IS_EQUAL_TO
- IS_NOT_EQUAL_TO
- IS_GREATER_THAN
- IS_GREATER_THAN_OR_EQUAL_TO
- IS_LESS_THAN
- IS_LESS_THAN_OR_EQUAL_TO
- IS_BEFORE
- IS_BEFORE_OR_ON
- IS_AFTER
- IS_AFTER_OR_ON
- IS_BETWEEN
- IS_NOT_BETWEEN
returnFields:
type: array
description: A list of fields that should have their values returned in the response. If empty all fields will be returned.
items:
type: string
page:
type: object
description: Parameters for pagination of results
properties:
cursor:
type: string
limit:
type: integer
x-examples:
Example 1:
subtype: ''
fields:
- id: externalId
value: ex
# --- truncated at 32 KB (111 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vendasta/refs/heads/main/openapi/vendasta-resource-operations-api-openapi.yml