guzzle-toggl
A PHP library for Toggl API v8 built on the Guzzle HTTP client, allowing PHP applications to integrate with Toggl’s time-tracking features programmatically.
About this tool
guzzle-toggl
Type: PHP library / Toggl API client
Category: others
Source: GitHub – arendjantetteroo/guzzle-toggl
A PHP client for the Toggl Track API, built on the Guzzle HTTP client. It allows PHP applications to integrate with Toggl’s time-tracking and reporting features programmatically.
Features
- Toggl API support
- Supports Toggl Track API v9
- API key–based authentication
- Supports Toggl Reports API v2
- HTTP client foundation
- Built on Guzzle 7
- Client instantiation & configuration
- Factory-based creation:
TogglClient::factory([...]) - Configure API key via
api_keyparameter - Optional
debug => trueflag to see HTTP-level details
- Factory-based creation:
- Command execution styles
- Magic
__callmethod for invoking API operations directly (with PHPDoc auto-complete)- Example:
$toggl_client->getWorkspaces([]);
- Example:
- Explicit command objects via
getCommand()- Example:
$command = $toggl_client->getCommand('GetWorkspaces', []); - Manual
prepare()andexecute()control - Access raw response via
$response['data']
- Example:
- Magic
- Workspace, project, client, task, tag & time entry operations
- Endpoints for managing:
- Clients
- Projects
- Project users
- Tags
- Tasks
- Time entries
- Workspaces and organizations
- New endpoints introduced in v9 layer:
ArchiveClientRestoreClient
- Endpoints for managing:
- API v9-specific parameter handling
- Many endpoints now require
workspace_id(for example:CreateClient,GetClient,CreateProject,StartTimeEntry,UpdateTimeEntry, etc.) - Certain endpoints additionally require
project_id(for example:CreateTask,GetTask,UpdateTask,DeleteTask, etc.) GetProjectsnow usesworkspace_idinstead ofidGetProjectUsersnow expectsworkspace_idinstead ofproject_id- Endpoint rename for closer alignment with Toggl docs:
InviteWorkspaceUser→InviteOrganizationUser
- Deprecated/removed endpoints:
GetWorkspaceWorkspaceUsersGetWorkspaceProjects(replaced byGetProjects)
- Many endpoints now require
- Discoverability & examples
services.jsondescribes available methods and parameters- Example scripts provided in an
examplesdirectory - Example API key configuration via
apikey.php
- Development roadmap
- Planned: more examples, tests, and response models
- Open to community contributions
Installation
Install via Composer:
composer require ajt/guzzle-toggl
Usage
Basic client setup
<?php
require __DIR__.'/../vendor/autoload.php';
use AJT\Toggl\TogglClient;
$toggl_token = ''; // Fill in your API token
$toggl_client = TogglClient::factory(['api_key' => $toggl_token]);
Enable debug output:
$toggl_client = TogglClient::factory([
'api_key' => $toggl_token,
'debug' => true,
]);
Calling API methods via __call
use AJT\Toggl\TogglClient;
$toggl_client = TogglClient::factory(['api_key' => $toggl_token]);
$workspaces = $toggl_client->getWorkspaces([]);
foreach ($workspaces as $workspace) {
$id = $workspace['id'];
echo $workspace['name']."\n";
}
Using getCommand directly
use AJT\Toggl\TogglClient;
$toggl_client = TogglClient::factory(['api_key' => $toggl_token]);
$command = $toggl_client->getCommand('GetWorkspaces', []);
$command->prepare();
$response = $command->execute();
$workspaces = $response['data'];
foreach ($workspaces as $workspace) {
$id = $workspace['id'];
echo $workspace['name']."\n";
}
Examples
- Copy
apikey-dist.phptoapikey.phpin the project root and add your Toggl API key. - Run the example scripts provided in the
examplesdirectory. - Refer to
services.jsonto see the complete list of available API methods and their parameters.
Pricing
Not specified in the project documentation. This is an open-source PHP client; licensing and costs, if any, should be verified on the GitHub repository.
Loading more......
Information
Categories
Similar Products
6 result(s)A graphical Python utility for visualizing historical Toggl time-tracking data, helping users explore and analyze how their time is spent over time.
A Go (Golang) wrapper for Toggl API v8 that enables Go applications and tools to interact with Toggl’s time-tracking endpoints.
A Laravel-focused PHP library for Toggl API v8 that simplifies integrating Toggl time-tracking capabilities into Laravel applications.
A Java wrapper for the Toggl time-tracking API v8, providing an object-oriented interface for integrating Toggl time tracking into Java applications.
A set of PHP classes for interacting with the Toggl API v8, based on Guzzle 6, providing a structured way to integrate Toggl time-tracking into PHP projects.
A Node.js library for the Toggl API v8 that provides a programmatic interface for integrating Toggl time tracking into JavaScript/Node applications.