Agent Connector

Connect your agents to Harvest

Production-ready access to your Harvest data with managed auth, parametric control, and the reliability your agents need to actually work.

Installation & Usage

Get start with the Harvest connector in minutes.

[01]

Install Package

Using uv or pip

BASH

Copy
uv pip install airbyte-agent-harvest

[02]

Import

Initialize and use

PYTHON

Copy
from airbyte_agent_harvest import HarvestConnector
from airbyte_agent_harvest.models import HarvestPersonalAccessTokenAuthConfig

connector = HarvestConnector(
    auth_config=HarvestPersonalAccessTokenAuthConfig(
        token="<Your Harvest personal access token>",
        account_id="<Your Harvest account ID>"
    )
)

[03]

Tool

Add tools to your agent

python

Copy
@agent.tool_plain # assumes you're using Pydantic AI
@HarvestConnector.tool_utils
async def harvest_execute(entity: str, action: str, params: dict | None = None):
    return await connector.execute(entity, action, params or {})

Supported Entities & Actions

Access all your Harvest data through a unified API

Lorem ipsum

Lorem ipsum

| Entity | Actions |\n|--------|---------|\n| Users | [List](./REFERENCE.md#users-list), [Get](./REFERENCE.md#users-get), [Search](./REFERENCE.md#users-search) |\n| Clients | [List](./REFERENCE.md#clients-list), [Get](./REFERENCE.md#clients-get), [Search](./REFERENCE.md#clients-search) |\n| Contacts | [List](./REFERENCE.md#contacts-list), [Get](./REFERENCE.md#contacts-get), [Search](./REFERENCE.md#contacts-search) |\n| Company | [Get](./REFERENCE.md#company-get), [Search](./REFERENCE.md#company-search) |\n| Projects | [List](./REFERENCE.md#projects-list), [Get](./REFERENCE.md#projects-get), [Search](./REFERENCE.md#projects-search) |\n| Tasks | [List](./REFERENCE.md#tasks-list), [Get](./REFERENCE.md#tasks-get), [Search](./REFERENCE.md#tasks-search) |\n| Time Entries | [List](./REFERENCE.md#time-entries-list), [Get](./REFERENCE.md#time-entries-get), [Search](./REFERENCE.md#time-entries-search) |\n| Invoices | [List](./REFERENCE.md#invoices-list), [Get](./REFERENCE.md#invoices-get), [Search](./REFERENCE.md#invoices-search) |\n| Invoice Item Categories | [List](./REFERENCE.md#invoice-item-categories-list), [Get](./REFERENCE.md#invoice-item-categories-get), [Search](./REFERENCE.md#invoice-item-categories-search) |\n| Estimates | [List](./REFERENCE.md#estimates-list), [Get](./REFERENCE.md#estimates-get), [Search](./REFERENCE.md#estimates-search) |\n| Estimate Item Categories | [List](./REFERENCE.md#estimate-item-categories-list), [Get](./REFERENCE.md#estimate-item-categories-get), [Search](./REFERENCE.md#estimate-item-categories-search) |\n| Expenses | [List](./REFERENCE.md#expenses-list), [Get](./REFERENCE.md#expenses-get), [Search](./REFERENCE.md#expenses-search) |\n| Expense Categories | [List](./REFERENCE.md#expense-categories-list), [Get](./REFERENCE.md#expense-categories-get), [Search](./REFERENCE.md#expense-categories-search) |\n| Roles | [List](./REFERENCE.md#roles-list), [Get](./REFERENCE.md#roles-get), [Search](./REFERENCE.md#roles-search) |\n| User Assignments | [List](./REFERENCE.md#user-assignments-list), [Search](./REFERENCE.md#user-assignments-search) |\n| Task Assignments | [List](./REFERENCE.md#task-assignments-list), [Search](./REFERENCE.md#task-assignments-search) |\n| Time Projects | [List](./REFERENCE.md#time-projects-list), [Search](./REFERENCE.md#time-projects-search) |\n| Time Tasks | [List](./REFERENCE.md#time-tasks-list), [Search](./REFERENCE.md#time-tasks-search) |

Example Prompts

The Harvest connector is optimized to handle prompts like these

Lorem ipsum

List all users in Harvest - Show me all active projects - List all clients - Show me recent time entries - List all invoices - Show me all tasks - List all expense categories - Get company information - How many hours were logged last week? - Which projects have the most time entries? - Show me all unbilled time entries - What are the active projects for a specific client? - List all overdue invoices - Which users logged the most hours this month?

Why Airbyte for AI Agents?

Built for production AI workloads with enterprise-grade reliability

Secure Authentication

Built-in OAuth 2.0 handling with automatic token refresh. No hard-coded credentials.

Agent-Native Design
Heading

Structured, LLM-friendly schemas optimized for AI agent consumption with natural language query support.

Production Ready

Battle-tested connectors with comprehensive error handling, logging, and retry logic.

Open Source

Fully open source under the MIT license. Contribute, customize, and extend freely.

Works with your favorite frameworks

Use the Salesforce connector with any AI agent framework.

LangChain

CrewAI

LlamaIndex

AutoGen

OpenAI Agents SDK

Claude Agents SDK

Frequently Asked Questions

Didn't find your answer? Please don't hesitate to reach out.

How do I authenticate with Harvest?

The Harvest connector supports Personal Access Token authentication. You provide your Harvest personal access token and account ID directly when initializing the connector in open source mode. In hosted mode, credentials are stored securely in Airbyte Cloud using Airbyte's own authentication credentials.

Can I use this connector with any AI agent framework?

The connector is compatible with any Python-based AI agent framework including LangChain, LlamaIndex, CrewAI, Pydantic AI, and custom implementations.

Does this connector support write operations?

Currently, the Harvest connector focuses on read operations only. Write operations such as creating time entries, updating project budgets, deleting invoices, or starting timers are not supported at this time. Write support may be added in future versions.

How is this different from the Airbyte data connector?

Agent connectors are specifically designed for AI agents and LLM applications. They provide natural language interfaces, optimized response formats, and seamless integration with agent frameworks, unlike traditional ETL-focused connectors.

Ready to connect your AI agents to Harvest?

Get started in minutes with our open-source connector.