Attio
Authentication Type: API Key
Description: Customer relationship management platform for managing contacts, companies, and deals with comprehensive CRUD operations.
Authentication
To authenticate, you'll need an Attio API key. Learn how to create one in the Attio Help Center.
Required Scopes:
lists:read-write- Manage list entriesobjects:read- Access object definitionsrecords:read-write- Create, read, update, and delete recordsnotes:read-write- Create and manage notes
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