Pomo CRM People API

The crm-people API from Pomo — 6 operation(s) for crm-people.

Operations 9

GET /api/crm/people List Crm People #
GET /api/crm/people/export Export Crm People #
GET /api/crm/people/{person_ref} Get Crm Person #
POST /api/crm/people/{person_ref}/contacted Mark Person Contacted #
DELETE /api/crm/people/{person_ref}/contacted Unmark Person Contacted #
PUT /api/crm/people/{person_ref}/stage Set Person Stage #
DELETE /api/crm/people/{person_ref}/stage Clear Person Stage #
POST /api/crm/people/{person_ref}/split Split Person Source #
DELETE /api/crm/people/{person_ref}/split Unsplit Person Source #

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/pomo-crm-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

pomo-crm-people-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: GPT Backend CRM People API
  version: 0.1.0
servers:
- url: https://api.usepomo.ai
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: crm-people
paths:
  /api/crm/people:
    get:
      tags:
      - crm-people
      summary: List Crm People
      description: Return the unified People projection for the active company profile.
      operationId: list_crm_people_api_crm_people_get
      security:
      - HTTPBearer: []
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: People per page
          default: 25
          title: Limit
        description: People per page
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Zero-based offset
          default: 0
          title: Offset
        description: Zero-based offset
      - name: source
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Source filter
          title: Source
        description: Source filter
      - name: stage
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Unified stage filter
          title: Stage
        description: Unified stage filter
      - name: hubspot
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: HubSpot sync filter
          title: Hubspot
        description: HubSpot sync filter
      - name: signal
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Dedupe-signal filter
          title: Signal
        description: Dedupe-signal filter
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          description: Search text
          title: Search
        description: Search text
      - name: sort_key
        in: query
        required: false
        schema:
          type: string
          description: Sort key
          default: last_activity
          title: Sort Key
        description: Sort key
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          description: Sort direction
          default: desc
          title: Sort Direction
        description: Sort direction
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrmPeopleListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/crm/people/export:
    get:
      tags:
      - crm-people
      summary: Export Crm People
      description: Download every person matching the active list query as one CSV.
      operationId: export_crm_people_api_crm_people_export_get
      security:
      - HTTPBearer: []
      parameters:
      - name: source
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Source filter
          title: Source
        description: Source filter
      - name: stage
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Unified stage filter
          title: Stage
        description: Unified stage filter
      - name: hubspot
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: HubSpot sync filter
          title: Hubspot
        description: HubSpot sync filter
      - name: signal
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Dedupe-signal filter
          title: Signal
        description: Dedupe-signal filter
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          description: Search text
          title: Search
        description: Search text
      - name: sort_key
        in: query
        required: false
        schema:
          type: string
          description: Sort key
          default: last_activity
          title: Sort Key
        description: Sort key
      - name: sort_direction
        in: query
        required: false
        schema:
          type: string
          description: Sort direction
          default: desc
          title: Sort Direction
        description: Sort direction
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/crm/people/{person_ref}:
    get:
      tags:
      - crm-people
      summary: Get Crm Person
      description: Return full detail for a single unified person.
      operationId: get_crm_person_api_crm_people__person_ref__get
      security:
      - HTTPBearer: []
      parameters:
      - name: person_ref
        in: path
        required: true
        schema:
          type: string
          title: Person Ref
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrmPersonDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/crm/people/{person_ref}/contacted:
    post:
      tags:
      - crm-people
      summary: Mark Person Contacted
      description: 'Log a manual ``contacted`` touch against a person; return refreshed detail.


        The single write surface over the otherwise read-through People projection.

        A 404 means the person_ref does not resolve within the active profile.'
      operationId: mark_person_contacted_api_crm_people__person_ref__contacted_post
      security:
      - HTTPBearer: []
      parameters:
      - name: person_ref
        in: path
        required: true
        schema:
          type: string
          title: Person Ref
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/CrmMarkContactedRequest'
              - type: 'null'
              title: Payload
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrmPersonDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - crm-people
      summary: Unmark Person Contacted
      description: 'Undo: clear this profile''s ``contacted`` touches for a person.'
      operationId: unmark_person_contacted_api_crm_people__person_ref__contacted_delete
      security:
      - HTTPBearer: []
      parameters:
      - name: person_ref
        in: path
        required: true
        schema:
          type: string
          title: Person Ref
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrmPersonDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/crm/people/{person_ref}/stage:
    put:
      tags:
      - crm-people
      summary: Set Person Stage
      description: Manually set a person's pipeline stage (a reversible override over auto).
      operationId: set_person_stage_api_crm_people__person_ref__stage_put
      security:
      - HTTPBearer: []
      parameters:
      - name: person_ref
        in: path
        required: true
        schema:
          type: string
          title: Person Ref
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrmSetStageRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrmPersonDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - crm-people
      summary: Clear Person Stage
      description: Revert a manual stage override back to the source-derived auto stage.
      operationId: clear_person_stage_api_crm_people__person_ref__stage_delete
      security:
      - HTTPBearer: []
      parameters:
      - name: person_ref
        in: path
        required: true
        schema:
          type: string
          title: Person Ref
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrmPersonDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/crm/people/{person_ref}/split:
    post:
      tags:
      - crm-people
      summary: Split Person Source
      description: 'Peel one contributing source out of a wrongly-merged person.


        Records a persistent do-not-merge override so the projection keeps that

        source as its own standalone person. A 404 means the person_ref does not

        resolve in the active profile, the source_ref is not one of its sources, or

        the person has nothing to split (a single source).'
      operationId: split_person_source_api_crm_people__person_ref__split_post
      security:
      - HTTPBearer: []
      parameters:
      - name: person_ref
        in: path
        required: true
        schema:
          type: string
          title: Person Ref
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrmSplitSourceRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrmPersonDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - crm-people
      summary: Unsplit Person Source
      description: 'Undo a split — drop the do-not-merge override so the source re-fuses.


        A 404 means ``person_ref`` no longer resolves in the active profile.'
      operationId: unsplit_person_source_api_crm_people__person_ref__split_delete
      security:
      - HTTPBearer: []
      parameters:
      - name: person_ref
        in: path
        required: true
        schema:
          type: string
          title: Person Ref
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrmSplitSourceRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrmPersonDetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CrmSplitSourceRequest:
      properties:
        source_ref:
          type: string
          maxLength: 255
          minLength: 1
          title: Source Ref
      type: object
      required:
      - source_ref
      title: CrmSplitSourceRequest
      description: 'Body for ``POST /api/crm/people/{person_ref}/split``.


        ``source_ref`` is the contributing ``{source}:{id}`` to peel out of the merged

        person into its own standalone record (a persistent do-not-merge override).'
    CrmPersonDetailResponse:
      properties:
        access:
          additionalProperties: true
          type: object
          title: Access
        person:
          additionalProperties: true
          type: object
          title: Person
        sources:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Sources
        timeline:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Timeline
        engagement:
          additionalProperties: true
          type: object
          title: Engagement
      type: object
      required:
      - access
      title: CrmPersonDetailResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    CrmSetStageRequest:
      properties:
        stage:
          type: string
          enum:
          - prospect
          - engaged
          - replied
          - qualified
          - customer
          - archived
          title: Stage
      type: object
      required:
      - stage
      title: CrmSetStageRequest
      description: Body for ``PUT /api/crm/people/{person_ref}/stage`` — a manual override.
    CrmPeopleListResponse:
      properties:
        access:
          additionalProperties: true
          type: object
          title: Access
        people:
          items:
            additionalProperties: true
            type: object
          type: array
          title: People
        pagination:
          $ref: '#/components/schemas/CrmPeoplePagination'
        filters:
          $ref: '#/components/schemas/CrmPeopleFilters'
        summary:
          additionalProperties: true
          type: object
          title: Summary
      type: object
      required:
      - access
      title: CrmPeopleListResponse
    CrmMarkContactedRequest:
      properties:
        note:
          anyOf:
          - type: string
            maxLength: 2000
          - type: 'null'
          title: Note
        channel:
          anyOf:
          - type: string
            maxLength: 32
          - type: 'null'
          title: Channel
      type: object
      title: CrmMarkContactedRequest
      description: 'Body for ``POST /api/crm/people/{person_ref}/contacted``.


        Both fields are optional — an empty body logs a manual touch with no note.

        ``channel`` defaults to ``manual`` (I reached out myself, off-platform).'
    CrmPeopleFilters:
      properties:
        source_counts:
          additionalProperties:
            type: integer
          type: object
          title: Source Counts
        stage_counts:
          additionalProperties:
            type: integer
          type: object
          title: Stage Counts
        hubspot_counts:
          additionalProperties:
            type: integer
          type: object
          title: Hubspot Counts
      type: object
      title: CrmPeopleFilters
    CrmPeoplePagination:
      properties:
        limit:
          type: integer
          title: Limit
          default: 25
        offset:
          type: integer
          title: Offset
          default: 0
        total:
          type: integer
          title: Total
          default: 0
        page:
          type: integer
          title: Page
          default: 1
        total_pages:
          type: integer
          title: Total Pages
          default: 1
        has_next:
          type: boolean
          title: Has Next
          default: false
        has_previous:
          type: boolean
          title: Has Previous
          default: false
      type: object
      title: CrmPeoplePagination
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer