Give agents tools for secure, real-time access to fetch, search, write, and sync across every system, with replication, entity mapping, and auth built-in.


About this Connector
Connector for the Harvest time-tracking and invoicing API (v2). Provides read access to time tracking data including users, clients, projects, tasks, time entries, invoices, estimates, expenses, and more.
CRM
Sales Analytics
Customer Data
Version Information
Package version
0.1.3
Connector version
1.0.2
SDK commit
b541ca65d697dad0915d1b5b8d8c756cd18299a7
Support Open Source
Check us out on Github and join the Airbyte community
Installation & Usage
1
Install Package
Using uv or pip
bash
uv pip install airbyte-agent-harvest
2
Import
Initialize and use
python
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>"
)
)3
Tool
Add tools to your agent
python
@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
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
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
Agent-Native Design
Structured, LLM-friendly schemas optimized for AI agent consumption with natural language query support.
Secure Authentication
Built-in OAuth 2.0 handling with automatic token refresh. No hard-coded credentials.
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
🦜
LangChain
🦙
LlamaIndex
🤖
CrewAI
⚡
AutoGen
🧠
OpenAI Agents SDK
🔮
Claude Agents SDK
Frequently Asked Questions
Didn't find your answer? Please don't hesitate to reach out.
The Harvest connector supports Personal Access Token authentication via the HarvestPersonalAccessTokenAuthConfig, requiring both a personal access token and an account ID. In hosted mode, it also supports authentication via Airbyte Cloud credentials (AirbyteAuthConfig).
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?
The Harvest connector currently supports read operations only. Write operations such as creating time entries, updating project budgets, deleting invoices, or starting timers are not currently supported.
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.
Will there be a platform for agent connectors?
The hosted version with secure credential storage through Airbyte Cloud is already available. See the hosted usage section in the documentation for setup instructions.