Overview
PipeRun data synced to V4MOS.AI, through the integration's own endpoints
The V4MOS.AI PipeRun API gives you the raw records synced from the PipeRun accounts connected to your organization: deals, deal stage history, persons, companies, pipelines, stages, origins, lost reasons, users and deleted deals. Rows come as they were synced, with the warehouse column names (snake_case), so you can load them straight into your BI. All endpoints use the /v1/piperun prefix and the same authentication, pagination and response format.
Getting started
Base URL: https://data.v4mos.ai. Every call requires your API credentials and the organizationId — see Authentication.
- Connect PipeRun in app.v4mos.ai (Connected accounts) and wait for the first sync.
- Call any endpoint below with your
organizationId, for exampleGET /v1/piperun/deals?organizationId=…. - Every row carries
integration_idandintegration_name: the connected account it came from. To read a single account, pass that value asintegrationId.
Available endpoints
- getDeals
/v1/piperun/dealsOne row per deal: pipeline, stage, status, value, MRR, temperature, probability, person, company, origin, lost reason and lifecycle dates. - getDeal stage history
/v1/piperun/deal-stage-historyOne row per stay of a deal in a stage: entry and exit dates, users and values. - getPersons
/v1/piperun/personsOne row per person (contact): owner, manager, status and when it became a customer. - getCompanies
/v1/piperun/companiesOne row per company: owner, manager, segment, status and customer/supplier flags. - getPipelines
/v1/piperun/pipelinesOne row per pipeline: funnel type, order and main flag. - getStages
/v1/piperun/stagesOne row per pipeline stage: order, completion percentage and win/create permissions. - getOrigins
/v1/piperun/originsOne row per deal origin, with its origin group. - getOrigin groups
/v1/piperun/origin-groupsOne row per group of deal origins. - getLost reasons
/v1/piperun/lost-reasonsOne row per deal lost reason. - getUsers
/v1/piperun/usersOne row per user of the account: active flag and default pipeline. - getDeleted deals
/v1/piperun/deleted-dealsOne row per deal deleted in PipeRun; use it to drop those deals from your copy.
Resources
| Endpoint | What one row is | dateFrom / dateTo filter |
|---|---|---|
GET /v1/piperun/deals | One row per deal: pipeline, stage, status, value, MRR, temperature, probability, person, company, origin, lost reason and lifecycle dates. | created_at |
GET /v1/piperun/deal-stage-history | One row per stay of a deal in a stage: entry and exit dates, users and values. | in_date |
GET /v1/piperun/persons | One row per person (contact): owner, manager, status and when it became a customer. | created_at |
GET /v1/piperun/companies | One row per company: owner, manager, segment, status and customer/supplier flags. | created_at |
GET /v1/piperun/pipelines | One row per pipeline: funnel type, order and main flag. | created_at |
GET /v1/piperun/stages | One row per pipeline stage: order, completion percentage and win/create permissions. | created_at |
GET /v1/piperun/origins | One row per deal origin, with its origin group. | — |
GET /v1/piperun/origin-groups | One row per group of deal origins. | — |
GET /v1/piperun/lost-reasons | One row per deal lost reason. | created_at |
GET /v1/piperun/users | One row per user of the account: active flag and default pipeline. | created_at |
GET /v1/piperun/deleted-deals | One row per deal deleted in PipeRun; use it to drop those deals from your copy. | updated_at |
Pagination and filters
page(default 1) andlimit(default 500, max 5000).meta.hasNextPagesays whether another page exists; rows come in a stable order, so walk the pages until it isfalse.dateFrom/dateTo(YYYY-MM-DD, inclusive) filter by the date column shown in the table above. Resources without one reject them.integrationIdkeeps the rows of one connected account.- Answers are cached for 30 minutes and the data is synced once a day — see Data sync.
Personal data
Some PipeRun resources carry personal data of your customers and contacts (such as email). Store and process it according to the LGPD and your own privacy policy.
Response format
{
"data": [{ "...": "one object per row, with the columns listed on each endpoint" }],
"meta": {
"page": 1,
"limit": 500,
"hasNextPage": true,
"hasPreviousPage": false
}
}Amounts and large counters (fields with format: decimal or format: int64 in each endpoint schema) come as strings, e.g. "125.50", so no precision is lost. Convert them to a decimal type on your side.