canonical: https://jentic.com/apis/previsto.com/previsto

# Previsto API

Jentic publishes the only available OpenAPI specification for Previsto API, keeping it validated and agent-ready. Previsto provides scheduling and field service management through 21 endpoints covering contacts, assignments, service agreements, organizations, and account management. The API enables full CRUD operations on each resource, supporting workflows where field workers are assigned to customer contacts under recurring service agreements tracked by organizations.

## For AI agents

Manage field service scheduling with contacts, assignments, service agreements, and organizations for recurring service delivery operations.

## Scope

Does not handle route optimization, GPS tracking, or payment processing - use for scheduling contacts, assignments, and service agreements only.

## Capabilities

- Create and manage customer contacts with scheduling preferences and service history
- Assign field workers to specific service tasks with date and location details
- Define recurring service agreements between organizations and contacts
- Organize contacts and assignments under organizational hierarchies
- Retrieve current account configuration and subscription details
- Track assignment completion status across field service teams

## Use cases

### Field Service Scheduling

Schedule and track field service assignments by creating assignment records linked to contacts and service agreements. Previsto manages the relationship between who needs service (contacts), what service is agreed (agreements), and when it happens (assignments). Field service companies use this to coordinate cleaning crews, maintenance technicians, or delivery routes with full visibility into scheduled and completed work.

Example prompt: Create a new assignment via POST /assignments linked to an existing contact ID and agreement ID with a scheduled date and time

### Recurring Service Agreement Management

Define and manage recurring service agreements that specify what services are delivered to which contacts on what schedule. Agreements act as templates that drive assignment creation, ensuring consistent service delivery. This supports cleaning services, property maintenance, landscaping, and other recurring field operations where the same work repeats on a regular cadence.

Example prompt: Create a service agreement via POST /agreements with contact reference, service type, and recurrence schedule, then verify it appears in GET /agreements

### Customer and Organization Management

Maintain a database of service customers (contacts) organized under business entities (organizations). Each contact stores address, scheduling preferences, and service history. Organizations group contacts for billing and reporting. This provides the foundation for field service operations where multiple customer locations are managed under parent companies.

Example prompt: Create a new organization via POST /organizations, then create a contact under it via POST /contacts with the organization ID reference

### AI Agent Field Service Automation

AI agents use the Previsto API through Jentic to automate field service operations including creating assignments, managing customer contacts, and tracking service agreement fulfillment. The agent searches for scheduling operations, loads endpoint schemas with required fields for assignments and contacts, and executes multi-step workflows to coordinate service delivery.

Example prompt: Search Jentic for 'create field service assignment', load the assignments operation schema, and execute with contact ID, date, and service details

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/assignments` | List all service assignments |
| POST | `/assignments` | Create a new assignment |
| GET | `/contacts` | List all customer contacts |
| POST | `/contacts` | Create a new contact |
| GET | `/agreements` | List all service agreements |
| POST | `/agreements` | Create a service agreement |
| GET | `/organizations` | List all organizations |
| GET | `/accounts/current` | Get current account details |

## Key resources

- **Contacts** — Customer contacts with addresses and service preferences
- **Assignments** — Scheduled service tasks linked to contacts and agreements
- **Agreements** — Recurring service agreements defining scope and schedule
- **Organizations** — Business entities that group contacts for management
- **Accounts** — Current account configuration and subscription information

## Why Jentic

- **Setup:** Wiring Previsto by hand means encoding Basic auth credentials into a Base64 Authorization header and pointing every call at api.previsto.com yourself. Through Jentic you install once, import Previsto from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Previsto's scheduling endpoints act on collections like /assignments and /contacts rather than an id in the URL path, so scope the agent by operations: limit it to what it needs, such as listing contacts and creating assignments, and leave the rest out. You choose the operations it may call, so it only touches the parts of the schedule you allow.
- **Credential handling:** Your Previsto Basic auth credentials 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 'schedule a field service assignment' or 'list service contacts', and Jentic returns the matching Previsto operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Calendly API** — Appointment scheduling focused on meeting booking rather than field service dispatch
- **Acuity Scheduling API** — Appointment scheduling with calendar sync and client self-booking
- **Stripe API** — Payment processing for billing customers after service completion

## FAQ

### Why is there no official OpenAPI spec for Previsto API?

Previsto does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Previsto API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Previsto API use?

The Previsto API uses HTTP Basic authentication. Through Jentic, your Basic auth credentials (username and password) are stored encrypted in your Jentic One instance and agents receive requests with the Authorization header pre-configured in Base64 format.

### Can I create recurring service assignments from an agreement?

Yes. Create a service agreement via POST /agreements defining the recurrence pattern and linked contact, then create individual assignments via POST /assignments referencing that agreement. The agreement defines the scope while assignments represent specific scheduled instances.

### What are the rate limits for the Previsto API?

The specification does not document explicit rate limits. Previsto is designed for field service workloads with moderate request volumes. For batch operations across many contacts or assignments, implement client-side throttling and process records sequentially.

### How do I create a service assignment through Jentic?

Install the SDK with pip install jentic, set your JENTIC_AGENT_API_KEY, then search for 'create field service assignment'. Jentic returns the POST /assignments operation with its schema showing required fields like contact ID, date, and service type. Execute to create the assignment.

### Can I organize contacts under parent organizations?

Yes. Create organizations via POST /organizations to represent business entities, then create contacts via POST /contacts with an organization reference. Use GET /contacts to list all contacts, filtering by organization to see grouped customer records.

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

Yes. Because you self-host Jentic One, your own rules decide which Previsto operations the agent may call and which credentials it uses. Previsto's endpoints act on collections such as /assignments and /contacts rather than IDs in the path, so you scope by operation: allow only what the agent needs, such as GET /contacts and POST /assignments, and leave the rest out. Anything you do not grant, like creating agreements via POST /agreements or reading account details, stays off limits.
