Logo

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 entries
  • objects:read - Access object definitions
  • records:read-write - Create, read, update, and delete records
  • notes: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

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
  • 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
  • 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
    • 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:

{}

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

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
  • 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
  • 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

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
  • 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
  • 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

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
  • 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

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
    • 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)
  • 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_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)

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

Returns:

  • id object: Note ID with workspace and note identifiers
    • workspace_id string: Workspace identifier
    • note_id string: Note identifier
  • 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)
  • created_by_actor object: Information about who created the note
    • type string: Actor type
    • id string: Actor ID
  • 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
    • 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)
    • created_by_actor object: Information about who created the note
      • type string: Actor type
      • id string: Actor ID
    • created_at string: Creation timestamp in ISO format
  • 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