Skip to main content
Using TypeScript? Check out our GraphQL SDK for a fully typed client.
We provide a number of methods for fetching customers:
  1. Get customers (To fetch more than one customer at a time)
  2. Get customer by ID
  3. Get customer by email
All of these endpoints require the following permissions:
  • customer:read

Get customers

Our API allows you to fetch customers as a collection using the customers query in GraphQL. This endpoint supports Pagination. This is a very flexible endpoint which supports a variety of options for filtering and sorting, for full details try our API explorer.
Query
query getCustomers($cursor: String!) {
  customers(
    after: $cursor
    first: 50
    filters: { isMarkedAsSpam: false }
    sortBy: { field: FULL_NAME, direction: ASC }
  ) {
    edges {
      node {
        id
        fullName
        shortName
        email {
          email
          isVerified
        }
        externalId
        markedAsSpamAt {
          iso8601
        }
      }
    }
    totalCount
    pageInfo {
      hasPreviousPage
      hasNextPage
      startCursor
      endCursor
    }
  }
}
Variables
{
  "cursor": "eyJjdXN0b21lcnMuZnVsbF9uYW1lIjoiQWlkYSBTY2hpbm5lciIsImN1c3RvbWVycy5pZCI6ImNfMDFHMThFU01TWkdUWTQwU1pITk03M0hBQkIifQ=="
}

Get customer by ID

If you already have the ID of a customer from within Plain or one of our other endpoints you can fetch more details about them using the customer query in GraphQL.
Query
query getCustomerById($customerId: ID!) {
  customer(customerId: $customerId) {
    id
    fullName
    shortName
    email {
      email
      isVerified
    }
    externalId
    markedAsSpamAt {
      iso8601
    }
  }
}
Variables
{
  "customerId": "c_01H14DFQ4PDYBH398J1E99TWSS"
}

Get customer by email

To fetch a customer by email you can use the customerByEmail query in GraphQL.
Query
query getCustomerByEmail($email: String!) {
  customerByEmail(email: $email) {
    id
    fullName
    shortName
    email {
      email
      isVerified
    }
    externalId
    markedAsSpamAt {
      iso8601
    }
  }
}
Variables
{
  "email": "bob@example.com"
}