Attio
Authentication Type: API Key
Description: Customer relationship management platform for managing contacts, companies, and deals with comprehensive CRUD operations.
Lists
Manage custom lists and entries in Attio for organizing related data.
Add List Entry
Add a new entry to an existing Attio list, linking it to a parent record (company or person) with custom attribute values.
Operation Type: Mutation (Write)
Parameters:
- listId
string
(required): The ID of the list to add the entry to - parentRecord
string
(required): The ID of the parent record - parentType
enum
(required): The type of the parent record- Options: "companies", "people"
- attributes
array of objects
(required): Array of key-value pairs for attribute values- key
string
(required): Attribute name - value
string
(required): Attribute value
- key
Returns:
- id
object
: List entry ID with workspace, list, and entry identifiers- workspace_id
string
: Workspace identifier - list_id
string
: List identifier - entry_id
string
: Entry identifier
- workspace_id
- parent_record_id
string
: ID of the parent record - parent_object
string
: Type of parent object - created_at
string
: Creation timestamp in ISO format - entry_values
object
: Record of entry values
Example Usage:
{
"listId": "list_123",
"parentRecord": "record_456",
"parentType": "companies",
"attributes": [
{ "key": "status", "value": "active" },
{ "key": "priority", "value": "high" },
{ "key": "deal_value", "value": "50000" }
]
}
Objects
Manage object definitions and schemas in Attio workspace.
Get Object
Retrieve the definition and schema of a specific object type (like companies, people, or custom objects) including all its attributes and metadata.
Operation Type: Query (Read)
Parameters:
- objectSlug
string
(required): The unique slug identifier for the object type (e.g., "companies", "people")
Returns:
- id
object
: Object ID with workspace and object identifiers- workspace_id
string
: Workspace identifier - object_id
string
: Object identifier
- workspace_id
- api_slug
string
: API slug for the object - singular_noun
string
: Singular form of object name - plural_noun
string
: Plural form of object name - created_at
string
: Creation timestamp in ISO format
Example Usage:
{
"objectSlug": "companies"
}
List Objects
Get all available object types in the Attio workspace, including both standard objects (companies, people) and custom objects with their schemas.
Operation Type: Query (Read)
Parameters:
- None
Returns:
- objects
array of objects
: Array of all available objects in the workspace- id
object
: Object ID with workspace and object identifiers- workspace_id
string
: Workspace identifier - object_id
string
: Object identifier
- workspace_id
- api_slug
string
: API slug for the object - singular_noun
string
: Singular form of object name - plural_noun
string
: Plural form of object name - created_at
string
: Creation timestamp in ISO format
- id
Example Usage:
{}
Records
Create, read, update, and delete individual records within Attio objects.
Create Record
Create a new record in an object (company, person, or custom object) with specified attribute values.
Operation Type: Mutation (Write)
Parameters:
- objectSlug
string
(required): The unique slug identifier for the object type (e.g., "companies", "people") - values
array of objects
(required): Array of key-value pairs mapping attribute slugs to values- key
string
(required): Attribute slug - value
string
(required): Attribute value
- key
Returns:
- id
object
: Record ID with workspace, object, and record identifiers- record_id
string
: Record identifier - workspace_id
string
: Workspace identifier - object_id
string
: Object identifier
- record_id
- created_at
string
: Creation timestamp in ISO format - web_url
string
: URL to view the record in Attio web interface - values
object
: Record of attribute values (key-value pairs)
Example Usage:
{
"objectSlug": "companies",
"values": [
{ "key": "name", "value": "Acme Corp" },
{ "key": "domain", "value": "acme.com" },
{ "key": "industry", "value": "Technology" }
]
}
Get Record
Retrieve a specific record by its ID, returning all current attribute values and metadata.
Operation Type: Query (Read)
Parameters:
- objectSlug
string
(required): The unique slug identifier for the object type - recordId
string
(required): The unique identifier for the record
Returns:
- id
object
: Record ID with workspace, object, and record identifiers- record_id
string
: Record identifier - workspace_id
string
: Workspace identifier - object_id
string
: Object identifier
- record_id
- created_at
string
: Creation timestamp in ISO format - web_url
string
: URL to view the record in Attio web interface - values
object
: Record of current attribute values (key-value pairs)
Example Usage:
{
"objectSlug": "companies",
"recordId": "rec_123456789"
}
Update Record
Update specific attribute values of an existing record while preserving other unchanged attributes.
Operation Type: Mutation (Write)
Parameters:
- objectSlug
string
(required): The unique slug identifier for the object type - recordId
string
(required): The unique identifier for the record to update - values
array of objects
(required): Array of key-value pairs for attributes to update- key
string
(required): Attribute slug - value
string
(required): New attribute value
- key
Returns:
- id
object
: Record ID with workspace, object, and record identifiers- record_id
string
: Record identifier - workspace_id
string
: Workspace identifier - object_id
string
: Object identifier
- record_id
- created_at
string
: Creation timestamp in ISO format - web_url
string
: URL to view the record in Attio web interface - values
object
: Record of updated attribute values (key-value pairs)
Example Usage:
{
"objectSlug": "people",
"recordId": "rec_987654321",
"values": [
{ "key": "job_title", "value": "Senior Software Engineer" },
{ "key": "phone_number", "value": "+1-555-123-4567" }
]
}
Assert Record
Create a new record or update an existing one based on matching criteria - useful for upsert operations when you want to avoid duplicates.
Operation Type: Mutation (Write)
Parameters:
- objectSlug
string
(required): The unique slug identifier for the object type - values
array of objects
(required): Array of key-value pairs for attribute values- key
string
(required): Attribute slug - value
string
(required): Attribute value
- key
- matching
array of objects
(nullable): Optional matching criteria to find existing records- key
string
(required): Attribute slug to match on - value
string
(required): Value to match
- key
Returns:
- id
object
: Record ID with workspace, object, and record identifiers- record_id
string
: Record identifier - workspace_id
string
: Workspace identifier - object_id
string
: Object identifier
- record_id
- created_at
string
: Creation timestamp in ISO format - web_url
string
: URL to view the record in Attio web interface - values
object
: Record of attribute values (key-value pairs)
Example Usage:
{
"objectSlug": "companies",
"values": [
{ "key": "name", "value": "Acme Corp" },
{ "key": "domain", "value": "acme.com" },
{ "key": "employees", "value": "250" }
],
"matching": [{ "key": "domain", "value": "acme.com" }]
}
List Records
Query and retrieve multiple records from an object with support for filtering, pagination, and sorting.
Operation Type: Query (Read)
Parameters:
- objectSlug
string
(required): The unique slug identifier for the object type - limit
number
(required): Maximum number of records to return (default: 25, max: 500) - offset
number
(required): Number of records to skip for pagination - filter
array of objects
(required): Filter criteria to apply to the query- key
string
(required): Attribute slug to filter on - value
string
(required): Value to filter by
- key
Returns:
- records
array of objects
: Array of records matching the query criteria- id
object
: Record ID with workspace, object, and record identifiers- record_id
string
: Record identifier - workspace_id
string
: Workspace identifier - object_id
string
: Object identifier
- record_id
- created_at
string
: Creation timestamp in ISO format - web_url
string
: URL to view the record in Attio web interface - values
object
: Record of attribute values (key-value pairs)
- id
- has_more
boolean
: Whether there are more records available for pagination
Example Usage:
{
"objectSlug": "companies",
"limit": 50,
"offset": 0,
"filter": [
{ "key": "industry", "value": "Technology" },
{ "key": "status", "value": "active" }
]
}
Delete Record
Permanently delete a specific record from an object - this action cannot be undone.
Operation Type: Mutation (Write)
Parameters:
- objectSlug
string
(required): The unique slug identifier for the object type - recordId
string
(required): The unique identifier for the record to delete
Returns:
- Empty response indicating successful deletion
Example Usage:
{
"objectSlug": "companies",
"recordId": "rec_123456789"
}
Search Records
Search for records across one or more objects using fuzzy search that matches names, domains, emails, phone numbers, and social handles.
Operation Type: Query (Read)
Parameters:
- query
string
(required): Query string to search for. An empty string returns a default set of results - objects
array of strings
(required): Specifies which objects to filter results by. At least one object must be specified. Accepts object slugs or IDs - limit
number
(nullable): The maximum number of results to return (default: 25, max: 25) - requestAs
enum
(nullable): Specifies the context in which to perform the search- Options: "workspace"
Returns:
- data
array of objects
: Array of search results with record information- id
object
: Record ID with workspace, object, and record identifiers- record_id
string
: Record identifier - workspace_id
string
: Workspace identifier - object_id
string
: Object identifier
- record_id
- record_text
string
: A human-readable label for the record - record_image
string
(nullable): The image URL for the record - object_slug
string
: The slug of the object this record belongs to - email_addresses
array of strings
(nullable): Email addresses (for people objects) - phone_numbers
array of strings
(nullable): Phone numbers (for people objects) - domains
array of strings
(nullable): Company domains (for company objects)
- id
Example Usage:
{
"query": "acme software engineer",
"objects": ["companies", "people"],
"limit": 10,
"requestAs": "workspace"
}
Notes
Create and manage notes that can be linked to records for context and communication tracking.
Create Note
Create a new note with markdown content that can be linked to one or more records (companies, people, etc.) for context.
Operation Type: Mutation (Write)
Parameters:
- content
string
(required): The content/body of the note in markdown format - title
string
(nullable): Optional title for the note - linkedRecords
array of objects
(nullable): Optional array of records to link this note to- recordId
string
(required): The ID of the record to link to this note - objectSlug
string
(required): The object type of the record being linked
- recordId
Returns:
- id
object
: Note ID with workspace and note identifiers- workspace_id
string
: Workspace identifier - note_id
string
: Note identifier
- workspace_id
- parent_object
string
: Parent object type - parent_record_id
string
: Parent record ID - title
string
: Note title - content_plaintext
string
: Plain text version of content - content_markdown
string
: Markdown version of content - tags
array of objects
: Note tags for categorization- type
enum
: Tag type ("record" or "workspace-member") - object
string
(nullable): Object type (for record tags) - record_id
string
(nullable): Record ID (for record tags) - workspace_member_id
string
(nullable): Member ID (for member tags)
- type
- created_by_actor
object
: Information about who created the note- type
string
: Actor type - id
string
: Actor ID
- type
- created_at
string
: Creation timestamp in ISO format
Example Usage:
{
"content": "# Quarterly Business Review\n\n## Key Discussion Points\n- Revenue growth exceeded expectations by 15%\n- Expanding team by 3 new hires\n- Planning product launch for Q2\n\n## Action Items\n- [ ] Send contract renewal proposal\n- [ ] Schedule follow-up meeting\n- [ ] Introduce to product team",
"title": "Q1 2024 Business Review - Acme Corp",
"linkedRecords": [
{
"recordId": "rec_123456789",
"objectSlug": "companies"
},
{
"recordId": "rec_987654321",
"objectSlug": "people"
}
]
}
List Notes
Retrieve notes with optional filtering by linked records, supporting pagination for large result sets.
Operation Type: Query (Read)
Parameters:
- recordId
string
(required): Filter notes linked to a specific record ID - objectSlug
string
(required): Filter notes linked to records of a specific object type - limit
number
(nullable): Maximum number of notes to return (default: 25, max: 500) - offset
number
(nullable): Number of notes to skip for pagination
Returns:
- notes
array of objects
: Array of notes matching the query criteria- id
object
: Note ID with workspace and note identifiers- workspace_id
string
: Workspace identifier - note_id
string
: Note identifier
- workspace_id
- parent_object
string
: Parent object type - parent_record_id
string
: Parent record ID - title
string
: Note title - content_plaintext
string
: Plain text version of content - content_markdown
string
: Markdown version of content - tags
array of objects
: Note tags for categorization- type
enum
: Tag type ("record" or "workspace-member") - object
string
(nullable): Object type (for record tags) - record_id
string
(nullable): Record ID (for record tags) - workspace_member_id
string
(nullable): Member ID (for member tags)
- type
- created_by_actor
object
: Information about who created the note- type
string
: Actor type - id
string
: Actor ID
- type
- created_at
string
: Creation timestamp in ISO format
- id
- has_more
boolean
: Whether there are more notes available for pagination
Example Usage:
{
"recordId": "rec_123456789",
"objectSlug": "companies",
"limit": 25,
"offset": 0
}
Common Use Cases
Contact Management:
- Create and update company and person records with comprehensive attribute tracking
- Link related records through custom lists for project management
- Track interactions and communications with detailed markdown notes
Data Organization:
- Use custom objects for specialized business processes like deals, projects, or support tickets
- Organize records with custom lists and attributes for flexible data modeling
- Search and filter records by various criteria for efficient data retrieval
Workflow Automation:
- Assert records to prevent duplicates during imports and data synchronization
- Bulk operations through list and filter functionality for efficient data management
- Link activities, communications, and notes to relevant records for complete context
Search and Discovery:
- Fuzzy search across multiple object types to find related contacts and companies
- Search by names, domains, emails, phone numbers, and social handles
- Use advanced filtering to narrow down results for targeted outreach or analysis