canonical: https://jentic.com/apis/paradigmvendo.com/main

# Paradigmvendo Vendo Public APIs

Jentic publishes the only available OpenAPI specification for Vendo Public APIs, keeping it validated and agent-ready. The Vendo Public APIs provide comprehensive integration with the Vendo platform for home improvement sales, covering appointments, users, offices, quotes, and CRM workflows. It powers sales automation, quote management, and appointment tracking for contractors and home improvement businesses.

## For AI agents

Manage appointments, users, offices, and quotes across 14 endpoints with status tracking and payment details.

## Scope

Does not handle product catalog, inventory management, or scheduling - use for appointment, user, office, and quote management only.

## Capabilities

- Create and edit appointments with customer and quote information
- Retrieve appointment details with answers, quotes, and client data
- Change appointment status (won, lost, pending, canceled) with results and reasons
- Generate deep links for appointment access
- Pull quotes forward into change orders or second measures
- Retrieve appointment email data and payment details
- Create, update, and retrieve users with office assignments
- Manage offices with external ID mapping
- Import WCP quotes into Vendo appointments

## Use cases

### Appointment Lifecycle Management

Create, update, and track appointments through the sales lifecycle. POST /appointment creates/edits appointments with email and appointment data, GET /appointment/{appointment_id} retrieves full details, and POST /appointment/{appointment_id}/status updates status to won, lost, pending, or canceled with result and reason tracking.

Example prompt: POST /appointment to create, GET /appointment/{appointment_id} to retrieve, POST /appointment/{appointment_id}/status to update

### Quote and Payment Tracking

Retrieve appointment payment details and quote differences. GET /appointment/{appointment_id}/payment-details returns successful payment information, while GET /appointment/{appointment_id}/differences shows quote variations. Essential for financial tracking and quote comparison.

Example prompt: GET /appointment/{appointment_id}/payment-details for payments, GET /differences for quote comparison

### User and Office Management

Manage users and offices with pagination and external ID mapping. POST /user creates users, PUT /user updates them, and GET /users with office_id or office_external_id retrieves paginated lists. Offices support creation, update, and retrieval with external ID mapping for CRM integration.

Example prompt: POST /user to create, GET /users?office_id=123&page=1&per_page=10 for paginated list

### WCP Quote Import

Import WCP quotes into Vendo appointments. POST /import-quote accepts WCP quote ID or number, sellers, appointment data, and settings (apply_adders, replace_quote_if_exist) to create or update Vendo appointments with pending status.

Example prompt: POST /import-quote with quote.id or quote.number, sellers, and settings to import WCP quote

### Agent-Driven Sales Automation via Jentic

An AI agent managing sales workflows can create appointments, update statuses, track payments, and manage users through Jentic without exposing authentication credentials in agent context. Jentic resolves intents like 'mark appointment as won' to the right Vendo endpoint.

Example prompt: Search Jentic for 'update appointment status', load the POST /appointment/{appointment_id}/status schema, and execute

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /appointment/{appointment_id} | Get appointment by ID |
| GET | /appointment/{appointment_id}/differences | Appointment differences by ID |
| GET | /appointment/{appointment_id}/email/{email_id} | Appointment email by ID |
| GET | /appointment/{appointment_id}/payment-details | Successful payments details |
| POST | /appointment | Create or edit appointment |
| POST | /appointment/{appointment_id}/status | Change appointment status |
| POST | /appointment/{appointment_id}/deeplink | Set appointment deep link |
| POST | /appointment/{appointment_id}/{appointment_type} | Pull quotes forward |
| GET | /users | Get users by office with pagination |
| POST | /user | Create a new user |
| PUT | /user | Update a user |
| GET | /users/{user_id} | Get user by ID |
| GET | /offices | Get offices with pagination |
| POST | /import-quote | Import WCP quote |

## Key resources

- **Appointment** — Sales appointment with customer, quote, and status tracking
- **User** — User account with office assignment and external ID mapping
- **Office** — Office location with external ID and user management
- **Quote** — Quote import and management from WCP

## Why Jentic

- **Setup:** Wiring the Vendo API by hand means choosing between its Basic Auth public/private key pair and its bearer token flow, shaping the appointment and user routes, and handling retries yourself. Through Jentic you install once, import Vendo from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Vendo puts the appointment id in the URL path (/appointment/{appointment_id}/...), so a rule can pin your agent to one appointment: it can read its details, differences, and payment details and update its status. You choose the operations it may call, so account-wide writes like user creation are not included unless you add them.
- **Credential handling:** Your Vendo Basic Auth keys or bearer token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an appointment' or 'update an appointment status', and Jentic returns the matching Vendo operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Salesforce API** — Enterprise CRM platform with extensive sales, service, and marketing capabilities
- **HubSpot API** — All-in-one CRM platform with sales, marketing, and service hub features

## FAQ

### Why is there no official OpenAPI spec for Vendo Public APIs?

While Vendo publishes API documentation, they do not maintain a complete OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Vendo Public APIs via structured tooling. Get started with Jentic One, the self-hosted execution layer.

### What authentication does Vendo Public APIs use?

Vendo Public APIs support both Basic Authentication (publicKey:privateKey base64 encoded) and Bearer token authentication. Through Jentic, credentials are stored in the encrypted vault and injected at execution time.

### How do I change an appointment status?

POST /appointment/{appointment_id}/status accepts status (won, lost, pending, canceled), result_name, result_reason_name, optional selected_quote_id, and enable_events flag. This updates the appointment status and optionally triggers events/webhooks.

### What does pulling quotes forward mean?

POST /appointment/{appointment_id}/{appointment_type} pulls quotes from a previous appointment into a new change_order or second_measure appointment. It accepts quote_ids array and returns pulled_quotes and not_pulled_quotes with error details.

### Can I import WCP quotes?

Yes. POST /import-quote accepts WCP quote ID or number, sellers, optional appointment data, and settings (apply_adders, replace_quote_if_exist) to create or update Vendo appointments with pending status.

### How do I retrieve payment details?

GET /appointment/{appointment_id}/payment-details returns an array of successful payment objects for the appointment. This provides financial tracking for completed transactions.

### Can I limit what my agent is allowed to do with the Vendo API?

Yes. Because you run Jentic One yourself, your own rules decide which Vendo operations and credentials the agent may use. Since Vendo carries the appointment id in the URL path (/appointment/{appointment_id}/...), you can pin the agent to a single appointment so it only reads that appointment's details, differences, and payment details and updates its status. You choose the operations it may call, so account-wide writes such as user creation stay off unless you explicitly grant them.
