---
title: Profile API
slug: profile-api
createdAt: 2024-02-06T11:41:52.161Z
---

The **Profile API** allows provides powerful search capabilities across our extensive dataset to retrieve detailed information about individuals and organizations. Users can search using key criteria such as **names, organizations**, or unique identifiers like **Person ID** or **Organization ID** to access rich profiles and data.

# Available Data Points

For details on the available data points that can be used within your queries please navigate to the Documentation section within GraphiQL. Here you will find a list of the available data points, their definitions and data types. You can find the URL for GraphiQL on our [URLs](docId:3rGzMF5UH3ep0bh4snVm0) section.

:::Paragraph{indent="1"}
We have supplied example GraphQL queries that you can copy and paste into your GraphQL query builder.
:::

:::hint{type="info"}
**Can't find the field you're looking for? Remember that you can customise each of the provided example queries to return the information that matters to you**
:::

# Example Queries

### Person Keyword Search

Find one or more people using a search keyword. The `searchKeyword` operates over the `firstName`, `lastName` and `organizationName`. A combination of `firstName`, `lastName` and `organizationName` can be used to further refine search results.

```graphql
query MyQuery {
  personKeywordSearch(filter: {searchKeyword: "David McDonald"}) {
    ... on PersonPagedResult {
      __typename
      items {
        firstName
        lastName
        rolesBoard {
          items {
            organization {
              organizationName
            }
            startDate {
              displayDate
            }
            endDate {
              displayDate
            }
          }
        }
        rolesEmployment {
          items {
            organization {
              organizationName
              organizationType
            }
          }
        }
        education {
          items {
            person {
              name
            }
            organization {
              organizationName
              organizationType
            }
            startDate {
              displayDate
            }
            endDate {
              displayDate
            }
            qualification
            qualificationCategory
          }
        }
      }
    }
    ... on GenericError {
      __typename
      errorCode
      errorMessage
    }
    ... on ValidationError {
      __typename
      errorCode
      errorMessage
    }
  }
}
```

### Person ID Search

Search for a specific individual using their Altrata ID.&#x20;

:::ExpandableHeading{isOpen="true"}
```graphql
query MyQuery {
  personIDSearch(id: "1-per-4518022") {
    ... on Person {
      name
      gender
    }
    ... on GenericError {
      __typename
      errorCode
      errorMessage
    }
    ... on ValidationError {
      __typename
      errorCode
      errorMessage
    }
  }
}
```
:::

### Person Bulk ID Search

Search for up to 100 people using their Altrata IDs.

:::ExpandableHeading{isOpen="true"}
```graphql
query MyQuery {
  personBulkIDSearch(filter: {ids: ["1-per-41000090", "1-per-4518022"]}) {
    ... on PersonPagedResult {
      __typename
      items {
        firstName
        rolesEmployment {
          items {
            title
          }
        }
      }
    }
    ... on GenericError {
      __typename
      errorCode
      errorMessage
    }
    ... on ValidationError {
      __typename
      errorCode
      errorMessage
    }
  }
}
```
:::

### Organization Keyword Search

Find one or more organizations using a search keyword. The `searchKeyword` operates over the `organizationName`.&#x20;

:::hint{type="info"}
Note: role lists returned inside this query (rolesEmployment, rolesBoard, rolesCommittee) contain up to 50 roles each. To retrieve every role at an organization, use the paged rolesEmployment, rolesBoard or rolesCommittee queries (see Organization Roles below).
:::



:::ExpandableHeading{isOpen="true"}
```graphql
query MyQuery {
  organizationKeywordSearch(filter: {searchKeyword: "Microsoft"}) {
    ... on OrganizationPagedResult {
      __typename
      items {
        organizationName
        organizationType
        website
        latestDailyMarketCapital
        latestAnnualMarketRevenue
        headOfficeAddress {
          address
          city
          country
        }
        rolesBoard {
          items {
            person {
              name
            }
            type
            title
          }
        }
        rolesEmployment {
          items {
            person {
              name
            }
            type
            title
          }
        }
      }
    }
    ... on GenericError {
      __typename
      errorCode
      errorMessage
    }
    ... on ValidationError {
      __typename
      errorCode
      errorMessage
    }
  }
}
```
:::

### Organization ID Search

Search for a specific organization using their Altrata ID.&#x20;

:::hint{type="info"}
Note: role lists returned inside this query (rolesEmployment, rolesBoard, rolesCommittee) contain up to 50 roles each. To retrieve every role at an organization, use the paged rolesEmployment, rolesBoard or rolesCommittee queries (see Organization Roles below).
:::



:::ExpandableHeading{isOpen="true"}
```graphql
query MyQuery {
  organizationIDSearch(id: "1-org-3303587") {
    ... on Organization {
      organizationName
      id
      organizationType
      tickerPrimary
      industryPrimary
      sectorPrimary
      headOfficeAddress {
        address
        zip
        state
        city
        country
      }
      website
      dateFounded {
        displayDate
      }
      latestDailyMarketCapital
      latestAnnualMarketRevenue
    }
    ... on GenericError {
      __typename
      errorCode
      errorMessage
    }
    ... on ValidationError {
      __typename
      errorCode
      errorMessage
    }
  }
}
```
:::

### Organization Bulk ID Search

Search for up to 100 organizations using their Altrata IDs.

:::hint{type="info"}
Note: role lists returned inside this query (rolesEmployment, rolesBoard, rolesCommittee) contain up to 50 roles each. To retrieve every role at an organization, use the paged rolesEmployment, rolesBoard or rolesCommittee queries (see Organization Roles below).
:::



:::ExpandableHeading{isOpen="true"}
```graphql
query MyQuery {
  organizationBulkIDSearch(filter: {ids: ["1-org-3303587", "1-org-426502756"]}) {
    ... on OrganizationPagedResult {
      __typename
      items {
        organizationName
        id
        organizationType
        tickerPrimary
        industryPrimary
      }
    }
    ... on GenericError {
      __typename
      errorCode
      errorMessage
    }
    ... on ValidationError {
      __typename
      errorCode
      errorMessage
    }
  }
}
```
:::



### Person  Search

Facilitates searching for individuals based on various attributes such as name, employment history, role details, and professional status. Users can input multiple filters to find the individuals relevent to their use case.

:::hint{type="info"}
Note there is a 10,000 response limit on this query.
:::



Full details of the Person Search filter inputs can be found here - [Profile API](docId\:ITsM4zqc3Qx8l9ynioI9s).

**Sample Request**

```graphql
query MyQuery {
  personSearch(
    filter: {age: {gte: 35, lte: 65}, gender: {searchValues: "Female"}, 
    roleTitleCategory: {searchValues: "CEO"}}
  ) {
    ... on PersonSearchPagedResult {
      __typename
      items {
        name
        age
        gender
        roleTitle
        roleStatus
        organizationName
      }
    }
  }
}
```

**Sample Response**

```graphql
{
  "data": {
    "personSearch": {
      "__typename": "PersonSearchPagedResult",
      "items": [
        {
          "name": "Kristi Longdes",
          "age": 58,
          "gender": "Female",
          "roleTitle": "Chief Executive Officer",
          "roleStatus": "PRIOR",
          "organizationName": "JI Org SE"
        },
        {
          "name": "Frances Kalto",
          "age": 60,
          "gender": "Female",
          "roleTitle": "Joint Chief Executive Officer",
          "roleStatus": "CURRENT",
          "organizationName": "Corestandard Plc"
          }
```

### Organization  Search

Enables users to find organizations based on specific parameters such as company size, industry, revenue, and market capitalization.&#x20;

:::hint{type="info"}
Note there is a 10,000 response limit on this query.
:::



**Sample Request**

```graphql
query MyQuery {
  organizationSearch(
    filter: {country: {searchValues: "United States"}, 
    industryPrimary: {searchValues: "Accounting & Financial Services"}, 
    marketCap: {gte: 10000000, lte: 1000000000}}
  ) {
    ... on OrganizationPagedResult {
      __typename
      items {
        organizationName
        headOfficeAddress {
          country
          state
        }
        latestDailyMarketCapital
        industryPrimary
      }
    }
  }
}
```

**Sample Response**

```graphql
{
  "data": {
    "organizationSearch": {
      "__typename": "OrganizationPagedResult",
      "items": [
        {
          "organizationName": "Polurt AB Holdings, Inc.",
          "headOfficeAddress": {
            "country": "United States",
            "state": "Texas"
          },
          "latestDailyMarketCapital": 76064400,
          "industryPrimary": "Accounting & Financial Services"
        },
        {
          "organizationName": "Mango Financial Corp.",
          "headOfficeAddress": {
            "country": "United States",
            "state": "New York"
          },
          "latestDailyMarketCapital": 891081900,
          "industryPrimary": "Accounting & Financial Services"
        }
```

### Charitable Donations

Facilitate searching for charitable donation history of an individual. The query operates over the `personId` , `recipientOrganizationId` and `donorOrganiationId`. Users can further refine the query by inputting optional charitable causes and donation measurement dates.

**Sample Request**

```graphql
query MyQuery {
  charitableDonations(filter: {personId: "1-per-41854138"}) {
    ... on CharitableDonationPagedResult {
      __typename
      items {
        amount
        donorPeople {
          name
          age
          gender
        }
        recipientOrganization {
          organizationName
          charitableCauses {
            causePrimary
          }
        }
      }
    }
  }
}
```

**Sample response**

```graphql
"data": {
    "charitableDonations": {
      "__typename": "CharitableDonationPagedResult",
      "items": [
        {
          "amount": 63000,
          "donorPeople": [
            {
              "name": "John Coadlep",
              "age": 52,
              "gender": "Male"
            }
          ],
          "recipientOrganization": {
            "organizationName": "Foundation Name",
            "charitableCauses": {
              "causePrimary": "Private Independent Foundations"
            }
          }
        },
```

### Political Donations

Facilitates the search for political donations of a client using `donorpersonid `, `recepientpersonid `and `recepientorganizationid`or `recepientpoliticalpartyorganizationid`. Queries can further be refined by including optional donation measurement dates.

```graphql
query politicalDonations_recipientPoliticalOrganizationId {
  politicalDonations(
    filter: {recipientPoliticalPartyOrganizationId: "1-org-133981810", donorPersonId: "1-per-101331726"}
    pageInfo: {}
  ) {
    ... on PoliticalDonationPagedResult {
      items {
        id
        amount
        donorPeople {
          name
          id
        }
        recipientPerson {
          id
          name
        }
        recipientPoliticalPartyOrganization {
          id
          organizationName
          organizationType
          politicalParty
        }
        recipientOrganization {
          id
          organizationName
          organizationType
        }
      }
      pageInfoResponse {
        totalCount
      }
    }
  }
}
```

**Sample Response**

```graphql
{
  "data": {
    "politicalDonations": {
      "items": [
        {
          "id": "1-pdc-111111111",
          "amount": 500,
          "donorPeople": [
            {
              "name": "Sara Chaplin",
              "id": "1-per-789744"
            }
          ],
          "recipientPerson": {
            "id": "1-per-456771",
            "name": "Janis Westerfield"
          },
          "recipientPoliticalPartyOrganization": {
            "id": "1-org-259632",
            "organizationName": "Democratic Party",
            "organizationType": "Private",
            "politicalParty": "Democratic"
          }
        }
```

### Wealth Asset

**Sample Request**

Facilitate the search for an individual's wealth portfolio by entering the person's `profile ID`, which further allows filtering on following components: `Private_Holdings`, `Common_Stocks`, `Stock_Options`, `Cash`, `Other_Assets`, and `Alternative_Investments`.

:::CodeblockTabs{indent="1"}
```graphql
query WealthAsset_PersonID {
  wealthAssets(
    filter: {personId: "1-per-41000090", assetClassification: PRIVATE_HOLDING}
    pageInfo: {}
  ) {
    ... on WealthAssetPagedResult {
      __typename
      items {
        owner {
          name
          id
          gender
        }
        ownershipPercentage
        ownershipValue
        purchaseDate {
          displayDate
        }
        relatedOrganization {
          organizationName
          organizationType
        }
      }
    }
  }
}
```
:::

**Sample response**

```graphql
{
  "data": {
    "wealthAssets": {
      "__typename": "WealthAssetPagedResult",
      "items": [
        {
          "owner": [
            {
              "name": "Full Name of the Owner",
              "id": "1-per-Profile ID of the Owner",
              "gender": "Male"
            }
          ],
          "ownershipPercentage": 42,
          "ownershipValue": 2890000,
          "purchaseDate": {
            "displayDate": 2024-01-01
          },
          "relatedOrganization": {
            "organizationName": "Denzo IP",
            "organizationType": "Private"
          }
```



