Logo

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

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