Encharge People API

The People API from Encharge — 5 operation(s) for creating, updating, reading, unsubscribing and archiving people.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/encharge-people-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

encharge-people-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Encharge People API
  description: The Encharge.io API
  license:
    name: MIT
  contact:
    url: https://help.encharge.io
    name: unknown
servers:
- url: https://api.encharge.io/v1
tags:
- name: People
paths:
  /people:
    delete:
      operationId: ArchivePeople
      responses:
        '204':
          description: Deleted
      description: 'Archive or delete one or multiple people.


        Archiving is the preferred method of removing users in Encharge.


        Alternatively, you can delete a person and all their data for GDPR purposes.

        '
      tags:
      - People
      security:
      - oauth2:
        - people:write
      parameters:
      - $ref: '#/components/parameters/PeopleQuery'
      - name: force
        description: If set to `true`, will delete the person's data. This is useful for GDPR-compliant removal of user data.
        in: query
        required: false
        schema:
          type: boolean
    get:
      operationId: GetSpecificPeople
      description: Retrive specific people in your account.
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                description: Sample description
                properties:
                  users:
                    items:
                      $ref: '#/components/schemas/EndUser'
                    type: array
                required:
                - users
                type: object
      tags:
      - People
      security:
      - oauth2:
        - people:read
      parameters:
      - $ref: '#/components/parameters/PeopleQuery'
      - name: attributes
        description: Comma separated list of custom fields to retrieve.
        in: query
        required: false
        schema:
          type: string
      - name: includeArchived
        description: Whether to include archived people in the response. By default archived people are not included.
        in: query
        required: false
        schema:
          type: boolean
    post:
      operationId: CreateUpdatePeople
      summary: Create/Update People
      description: 'Create or update people in Encharge.


        If the people exist (identified by id/userId/email/another ID), they will be updated. Otherwise, people will be created.

        '
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                properties:
                  users:
                    items:
                      $ref: '#/components/schemas/EndUser'
                    type: array
                required:
                - users
                type: object
      tags:
      - People
      security:
      - oauth2:
        - people:write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              description: Array of EndUser objects.
              type: array
              items:
                $ref: '#/components/schemas/EndUser'
  /people/all:
    get:
      operationId: GetAllPeople
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                properties:
                  people:
                    items:
                      $ref: '#/components/schemas/EndUser'
                    type: array
                required:
                - people
                type: object
      description: Get all people in the account.
      tags:
      - People
      security:
      - oauth2:
        - people:read
      parameters:
      - description: Number of people to retrieve.
        in: query
        name: limit
        required: false
        schema:
          default: 100
          format: double
          type: number
      - description: Number of records to skip
        in: query
        name: offset
        required: false
        schema:
          default: 0
          format: double
          type: number
      - description: Person Fields to retrieve. See [Person Fields](#tag/PersonFields) for possible field names.
        in: query
        name: attributes
        required: false
        schema:
          type: array
          items:
            type: string
      - in: query
        name: sort
        required: false
        schema:
          type: string
      - in: query
        name: order
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
      - in: query
        name: ignoreAnonymous
        required: false
        schema:
          type: boolean
  /people/unsubscribe:
    post:
      operationId: UnsubscribePerson
      responses:
        '204':
          description: No content
      description: Unsubscribe a person to prevent them from receiving any more email.
      summary: Unsubscribe a Person
      tags:
      - People
      security:
      - oauth2:
        - people:write
      parameters:
      - description: 'Email of the person to unsubscribe.


          At least one of id/userId/email must be specified.'
        in: query
        name: email
        required: false
        schema:
          type: string
      - description: 'userId of the person to unsubscribe.


          At least one of id/userId/email must be specified.'
        in: query
        name: userId
        required: false
        schema:
          type: string
      - description: 'Encharge ID of the person to unsubscribe.


          At least one of id/userId/email must be specified.'
        in: query
        name: id
        required: false
        schema:
          type: string
components:
  parameters:
    PeopleQuery:
      in: query
      name: people
      required: true
      description: "People can be specified by any ID. \nFor example, for a person with an email `slav@encharge.io` use the following query: \n\n`?people[0][email]=slav@encharge.io`\n\nFor multiple people, pass multiple ids in the query like so:\n\n`?people[0][userId]=abc&people[1][userId]=xyz`. \n\nThis will specify people who have userId of `abc` and `xyz`.\n\nEmails, userIds and other IDs can used together in a single query.\n"
      schema:
        $ref: '#/components/schemas/EndUserIdentifiers'
  schemas:
    EndUser:
      type: object
      description: This is the exposed EndUser class that proxies the unproxied one.
      properties:
        id:
          type: string
        email:
          type: string
        userId:
          type: string
        name:
          type: string
        firstName:
          type: string
        lastName:
          type: string
      additionalProperties:
        description: See [Person Fields](#tag/PersonFields) for other available properties.
    EndUserIdentifiers:
      properties:
        id:
          type: string
          description: 'Encharge ID of the person. An UUID.


            At least one of id/userId/email must be specified.'
        userId:
          type: string
          description: 'UserID of the person.


            At least one of id/userId/email must be specified.'
        email:
          type: string
          description: 'Email of the person.


            At least one of id/userId/email must be specified.'
      additionalProperties: {}
      type: object
  securitySchemes:
    apiKeyHeader:
      description: "You can use API key authentication if you are using the API for your Encharge account. If you are building an app for others to use, please use the OAuth2 authentication below. Find your API key from https://app.encharge.io/account/info . \n\n While all operations in the API specify oauth2 security, instead you can use an API key in the header or query string."
      type: apiKey
      in: header
      name: X-Encharge-Token
    apiKeyQuery:
      description: "You can use API key authentication if you are using the API for your Encharge account. \n\nIf you are building an app for others to use, please use the OAuth2 authentication below. Find your API key from https://app.encharge.io/account/info \n\n While all operations in the API specify oauth2 security, instead you can use an API key in the header or query string."
      type: apiKey
      in: query
      name: token
    oauth2:
      type: oauth2
      description: "The Encharge API uses OAuth 2 with the authorization code flow. \n\nGet for your OAuth credentials (Client ID and Client Secret) by filling out [this form](https://research.typeform.com/to/I680YtLA)."
      flows:
        authorizationCode:
          authorizationUrl: https://api.encharge.io/v1/oauth/authorize
          tokenUrl: https://api.encharge.io/v1/oauth/token
          refreshUrl: https://api.encharge.io/v1/oauth/token
          scopes: {}