### Get Project Details Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves the details of a specific project. Requires organization ID and project ID. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/projects/{project_id}" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Get Current User Source: https://context7.com/solidtime-io/solidtime/llms.txt Fetches the profile details of the currently authenticated user. This includes their ID, name, email, profile photo URL, timezone, and the starting day of the week. ```bash curl -X GET "https://api.solidtime.io/api/v1/users/me" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` ```json { "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "John Doe", "email": "john@example.com", "profile_photo_url": "https://example.com/photo.jpg", "timezone": "Europe/Berlin", "week_start": "monday" } } ``` -------------------------------- ### Get Organization Source: https://context7.com/solidtime-io/solidtime/llms.txt Fetches detailed information about a specific organization, identified by its ID. This includes settings like billable rates, employee permissions, currency, and date/time formats. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` ```json { "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "name": "My Agency", "is_personal": false, "billable_rate": 10000, "employees_can_see_billable_rates": true, "employees_can_manage_tasks": true, "prevent_overlapping_time_entries": false, "currency": "USD", "currency_symbol": "$", "number_format": "comma_as_thousands_separator", "currency_format": "symbol_before", "date_format": "MM/DD/YYYY", "interval_format": "decimal", "time_format": "12h" } } ``` -------------------------------- ### GET /api/v1/organizations/{organization_id}/time-entries/export Source: https://context7.com/solidtime-io/solidtime/llms.txt Exports time entries to various file formats. ```APIDOC ## GET /api/v1/organizations/{organization_id}/time-entries/export ### Description Exports time entries to CSV, XLSX, ODS, or PDF format. ### Method GET ### Endpoint /api/v1/organizations/{organization_id}/time-entries/export ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization #### Query Parameters - **start** (string) - Required - Start date - **end** (string) - Required - End date - **format** (string) - Required - Export format (csv, xlsx, ods, pdf) ### Response #### Success Response (200) - **download_url** (string) - URL to download the exported file ``` -------------------------------- ### Get Active Time Entry Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves the currently running time entry for the authenticated user. ```bash curl -X GET "https://api.solidtime.io/api/v1/users/me/time-entries/active" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Get User Memberships Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves all organization memberships for the authenticated user, detailing their role within each organization. The response includes organization ID, name, and whether it's a personal organization. ```bash curl -X GET "https://api.solidtime.io/api/v1/users/me/memberships" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` ```json { "data": [ { "id": "member-uuid-1", "organization": { "id": "org-uuid-1", "name": "My Agency", "is_personal": false }, "role": "owner" }, { "id": "member-uuid-2", "organization": { "id": "org-uuid-2", "name": "Client Project", "is_personal": false }, "role": "employee" } ] } ``` -------------------------------- ### Get Specific Report Details Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves detailed information about a specific report, including its filter properties. Requires an access token. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/reports/{report_id}" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Update Time Entry Description and Tags Source: https://context7.com/solidtime-io/solidtime/llms.txt Modify the description, tags, and billable status of an existing time entry. This example demonstrates updating multiple fields in a single request. ```bash curl -X PUT "https://api.solidtime.io/api/v1/organizations/{organization_id}/time-entries/{time_entry_id}" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "description": "Updated description", "tags": ["tag-uuid-3"], "billable": false }' ``` -------------------------------- ### GET /organizations/{organization_id}/projects/{project_id}/project-members Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves all members assigned to a specific project. ```APIDOC ## GET /organizations/{organization_id}/projects/{project_id}/project-members ### Description Retrieves all members assigned to a specific project. ### Method GET ### Endpoint https://api.solidtime.io/api/v1/organizations/{organization_id}/projects/{project_id}/project-members ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization. - **project_id** (string) - Required - The ID of the project. ### Response #### Success Response (200) - **data** (array) - List of project members. ``` -------------------------------- ### Create Project Source: https://context7.com/solidtime-io/solidtime/llms.txt Creates a new project with optional client association and billing settings. Requires organization ID and access token. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/projects" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "New Project", "color": "#9b59b6", "client_id": "client-uuid-1", "is_billable": true, "billable_rate": 12000, "is_public": true, "estimated_time": 432000 }' ``` -------------------------------- ### GET /organizations/{organization_id}/tags Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves all tags in an organization. ```APIDOC ## GET /organizations/{organization_id}/tags ### Description Retrieves all tags in an organization. ### Method GET ### Endpoint https://api.solidtime.io/api/v1/organizations/{organization_id}/tags ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization. ### Response #### Success Response (200) - **data** (array) - List of tags. ``` -------------------------------- ### Create Client Source: https://context7.com/solidtime-io/solidtime/llms.txt Creates a new client within an organization. Requires organization ID, access token, and client name. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/clients" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "New Client Name" }' ``` -------------------------------- ### Run Frontend Linting and Formatting Source: https://github.com/solidtime-io/solidtime/blob/main/CONTRIBUTING.md Execute these commands to ensure frontend code adheres to project standards for linting and formatting. ```bash npm run lint:fix npm run format ``` -------------------------------- ### Get Report Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves details of a specific report including its filter properties. ```APIDOC ## Get Report ### Description Retrieves details of a specific report including its filter properties. ### Method GET ### Endpoint /api/v1/organizations/{organization_id}/reports/{report_id} ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization. - **report_id** (string) - Required - The ID of the report. #### Query Parameters None #### Request Body None ### Request Example ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/reports/{report_id}" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` ### Response #### Success Response (200) - **data** (object) - The report object with its properties. - **id** (string) - The unique identifier for the report. - **name** (string) - The name of the report. - **description** (string) - A description of the report. - **is_public** (boolean) - Indicates if the report is public. - **share_secret** (string) - A secret key for sharing the report. - **public_until** (string) - The date and time until which the report is public. - **properties** (object) - The filter properties of the report. - **group** (string) - The grouping criteria for the report. - **sub_group** (string) - The sub-grouping criteria. - **history_group** (string) - The history grouping criteria. - **start** (string) - The start date and time for the report data. - **end** (string) - The end date and time for the report data. - **active** (boolean) - Whether to include active entries. - **billable** (boolean or null) - Whether to filter by billable status. - **member_ids** (array or null) - List of member IDs to filter by. - **project_ids** (array or null) - List of project IDs to filter by. - **client_ids** (array or null) - List of client IDs to filter by. - **tag_ids** (array or null) - List of tag IDs to filter by. - **task_ids** (array or null) - List of task IDs to filter by. - **timezone** (string) - The timezone for the report. - **week_start** (string) - The starting day of the week. #### Response Example ```json { "data": { "id": "report-uuid-1", "name": "Monthly Team Report", "description": "Overview of all team activities", "is_public": true, "share_secret": "abc123xyz", "public_until": "2024-03-31T23:59:59Z", "properties": { "group": "project", "sub_group": "user", "history_group": "day", "start": "2024-02-01T00:00:00Z", "end": "2024-02-29T23:59:59Z", "active": false, "billable": null, "member_ids": null, "project_ids": null, "client_ids": null, "tag_ids": null, "task_ids": null, "timezone": "Europe/Berlin", "week_start": "monday" } } } ``` ``` -------------------------------- ### Run Backend Linting and Formatting Source: https://github.com/solidtime-io/solidtime/blob/main/CONTRIBUTING.md Execute these commands to ensure backend code adheres to project standards for linting and formatting. ```bash composer fix composer analyse ``` -------------------------------- ### GET /api/v1/organizations/{organization_id}/time-entries/aggregate Source: https://context7.com/solidtime-io/solidtime/llms.txt Aggregates time entries by various dimensions for reporting. ```APIDOC ## GET /api/v1/organizations/{organization_id}/time-entries/aggregate ### Description Aggregates time entries by various dimensions for reporting. ### Method GET ### Endpoint /api/v1/organizations/{organization_id}/time-entries/aggregate ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization #### Query Parameters - **start** (string) - Required - Start date - **end** (string) - Required - End date - **group** (string) - Required - Grouping dimension - **sub_group** (string) - Optional - Sub-grouping dimension ### Response #### Success Response (200) - **data** (object) - Aggregated data results ``` -------------------------------- ### Create Organization Invitation Source: https://context7.com/solidtime-io/solidtime/llms.txt Invites a new user to the organization by email with a specified role. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/invitations" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "email": "newuser@example.com", "role": "employee" }' ``` -------------------------------- ### GET /api/v1/organizations/{organization_id}/members Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves all members of an organization with their roles and billable rates. ```APIDOC ## GET /api/v1/organizations/{organization_id}/members ### Description Retrieves all members of an organization with their roles and billable rates. ### Method GET ### Endpoint /api/v1/organizations/{organization_id}/members ### Parameters #### Path Parameters - **organization_id** (string) - Required - The unique identifier of the organization. ### Response #### Success Response (200) - **data** (array) - List of member objects. - **links** (object) - Pagination links. - **meta** (object) - Pagination metadata. ``` -------------------------------- ### List Available Currencies Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves a list of all supported currencies. This endpoint is public and does not require authentication. ```bash curl -X GET "https://api.solidtime.io/api/v1/currencies" \ -H "Accept: application/json" ``` -------------------------------- ### Get Public Report Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves a public report using its share secret. No authentication required. ```APIDOC ## Get Public Report ### Description Retrieves a public report using its share secret. No authentication required. ### Method GET ### Endpoint /api/v1/public/reports ### Parameters #### Path Parameters None #### Query Parameters - **X-Api-Key** (string) - Required - The API key for accessing public reports. #### Request Body None ### Request Example ```bash curl -X GET "https://api.solidtime.io/api/v1/public/reports" \ -H "X-Api-Key: abc123xyz" \ -H "Accept: application/json" ``` ### Response #### Success Response (200) - **data** (object) - The public report data, including aggregated time entries. - **id** (string) - The unique identifier for the report. - **name** (string) - The name of the report. - **organization_name** (string) - The name of the organization that owns the report. - **currency** (string) - The currency used for costs. - **data** (object) - Aggregated data based on the report's grouping. - **grouped_type** (string) - The type of grouping. - **grouped_data** (array) - The data points within the group. - **seconds** (integer) - Total seconds recorded. - **cost** (integer) - Total cost. - **history_data** (object) - Historical data, grouped by `history_group`. - **grouped_type** (string) - The type of history grouping. - **grouped_data** (array) - The historical data points. #### Response Example ```json { "data": { "id": "report-uuid-1", "name": "Monthly Team Report", "organization_name": "My Agency", "currency": "USD", "data": { "grouped_type": "project", "grouped_data": [...], "seconds": 180000, "cost": 750000 }, "history_data": { "grouped_type": "day", "grouped_data": [...] } } } ``` ``` -------------------------------- ### Create Tag Source: https://context7.com/solidtime-io/solidtime/llms.txt Creates a new tag within an organization. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/tags" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "Documentation" }' ``` -------------------------------- ### List Organization Invitations Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves all pending invitations for the specified organization. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/invitations" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### GET /organizations/{organization_id}/tasks Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves all tasks in an organization with optional project and status filtering. ```APIDOC ## GET /organizations/{organization_id}/tasks ### Description Retrieves all tasks in an organization with optional project and status filtering. ### Method GET ### Endpoint https://api.solidtime.io/api/v1/organizations/{organization_id}/tasks ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization. #### Query Parameters - **project_id** (string) - Optional - Filter by project ID. - **done** (boolean) - Optional - Filter by completion status. ### Response #### Success Response (200) - **data** (array) - List of tasks. ``` -------------------------------- ### List Available Importers Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves information about the data importers available for an organization. Requires an access token. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/importers" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Import Organization Data via API Source: https://context7.com/solidtime-io/solidtime/llms.txt Imports data from external sources using a base64 encoded string. Requires an organization ID and a valid bearer token. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/import" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "type": "toggl_time_entries", "data": "VXNlcixFbWFpbCxDbGllbnQsUHJvamVjdCxUYXNrLERlc2NyaXB0aW9uLEJpbGxhYmxlLFN0YXJ0IGRhdGUsU3RhcnQgdGltZSxFbmQgZGF0ZSxFbmQgdGltZSxEdXJhdGlvbixUYWdzLEFtb3VudCAoKQ0KSm9obiBEb2Usam9obkBleGFtcGxlLmNvbSxBY21lIENvcnAsV2Vic2l0ZSBSZWRlc2lnbixEZXNpZ24sSG9tZXBhZ2UgbW9ja3VwcyxZZXMsMjAyNC0wMi0yNiwwOTowMDowMCwyMDI0LTAyLTI2LDEyOjMwOjAwLDAzOjMwOjAwLGRlc2lnbixmZWF0dXJlLA==" }' ``` -------------------------------- ### Create API Token Source: https://context7.com/solidtime-io/solidtime/llms.txt Use this endpoint to generate a new personal access token for API authentication. The token is only displayed once upon creation and cannot be retrieved later. Ensure you store it securely. ```bash curl -X POST "https://api.solidtime.io/api/v1/users/me/api-tokens" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "My CLI Token" }' ``` ```json { "data": { "id": "9e27f54d-5dfb-4dde-99d7-834518236c92", "name": "My CLI Token", "created_at": "2024-02-26T17:17:17Z", "expires_at": null }, "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." } ``` -------------------------------- ### Create Task API Call Source: https://context7.com/solidtime-io/solidtime/llms.txt Creates a new task within a specified project. Requires the task name, project ID, and optionally an estimated time in seconds. The task is created as incomplete by default. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/tasks" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "Write API Documentation", "project_id": "project-uuid-1", "estimated_time": 14400 }' ``` -------------------------------- ### Export Organization Data via API Source: https://context7.com/solidtime-io/solidtime/llms.txt Exports all organization data as a ZIP file for backup or migration purposes. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/export" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Aggregate Time Entries by Project and User Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieve aggregated time entry data grouped by project and then by user for a specified date range. This is useful for generating reports on project-specific work distribution. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/time-entries/aggregate?start=2024-02-01T00:00:00Z&end=2024-02-29T23:59:59Z&group=project&sub_group=user" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Convert Member to Placeholder Source: https://context7.com/solidtime-io/solidtime/llms.txt Converts an existing member into a placeholder to preserve historical data after a user leaves. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/members/{member_id}/make-placeholder" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### POST /api/v1/organizations/{organization_id}/invitations Source: https://context7.com/solidtime-io/solidtime/llms.txt Invites a new user to join the organization. ```APIDOC ## POST /api/v1/organizations/{organization_id}/invitations ### Description Invites a new user to join the organization. ### Method POST ### Endpoint /api/v1/organizations/{organization_id}/invitations ### Parameters #### Path Parameters - **organization_id** (string) - Required - The unique identifier of the organization. #### Request Body - **email** (string) - Required - Email address of the invitee. - **role** (string) - Required - Role to assign to the invitee. ``` -------------------------------- ### Create Time Entry Source: https://context7.com/solidtime-io/solidtime/llms.txt Creates a new time entry. Set the end time to null to initiate a running timer. ```bash # Create a completed time entry curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/time-entries" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "member_id": "member-uuid-1", "project_id": "project-uuid-1", "task_id": "task-uuid-1", "start": "2024-02-26T09:00:00Z", "end": "2024-02-26T12:30:00Z", "billable": true, "description": "Working on homepage design", "tags": ["tag-uuid-1", "tag-uuid-2"] }' # Start a running timer (no end time) curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/time-entries" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "member_id": "member-uuid-1", "project_id": "project-uuid-1", "start": "2024-02-26T14:00:00Z", "end": null, "billable": true, "description": "Starting new task" }' ``` -------------------------------- ### List Active Projects Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves a list of all projects that are not archived. Requires organization ID and an access token. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/projects?archived=false" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### List Active Clients Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves a list of all clients that are not archived. Requires organization ID and an access token. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/clients?archived=false" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Update Organization Settings Source: https://context7.com/solidtime-io/solidtime/llms.txt Updates organization configuration including billable rates, display formats, and permissions. ```bash curl -X PUT "https://api.solidtime.io/api/v1/organizations/{organization_id}" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "My Agency Updated", "billable_rate": 15000, "employees_can_see_billable_rates": true, "employees_can_manage_tasks": true, "prevent_overlapping_time_entries": true, "number_format": "comma_as_thousands_separator", "currency_format": "symbol_before", "date_format": "YYYY-MM-DD", "interval_format": "decimal", "time_format": "24h" }' ``` -------------------------------- ### List Organization Reports Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves all saved reports for a given organization. Requires an access token. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/reports" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Update Project Source: https://context7.com/solidtime-io/solidtime/llms.txt Updates a project's properties, including its name, color, client association, billing status, and archive status. Requires organization ID and project ID. ```bash curl -X PUT "https://api.solidtime.io/api/v1/organizations/{organization_id}/projects/{project_id}" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "Updated Project Name", "color": "#2ecc71", "client_id": "client-uuid-2", "is_billable": true, "billable_rate": 14000, "is_public": false, "is_archived": false, "estimated_time": 500000 }' ``` -------------------------------- ### POST /organizations/{organization_id}/tasks Source: https://context7.com/solidtime-io/solidtime/llms.txt Creates a new task within a project. ```APIDOC ## POST /organizations/{organization_id}/tasks ### Description Creates a new task within a project. ### Method POST ### Endpoint https://api.solidtime.io/api/v1/organizations/{organization_id}/tasks ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization. #### Request Body - **name** (string) - Required - The name of the task. - **project_id** (string) - Required - The ID of the project. - **estimated_time** (integer) - Optional - Estimated time for the task. ``` -------------------------------- ### List Available Importers Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves information about available data importers. ```APIDOC ## List Available Importers ### Description Retrieves information about available data importers. ### Method GET ### Endpoint /api/v1/organizations/{organization_id}/importers ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization. #### Query Parameters None #### Request Body None ### Request Example ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/importers" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` ### Response #### Success Response (200) - **data** (array) - A list of available importer objects. #### Response Example (Response body will be a list of importer objects) ``` -------------------------------- ### Create New Report Source: https://context7.com/solidtime-io/solidtime/llms.txt Creates a new saved report with specified filter configurations. Requires an access token and a JSON payload. ```bash curl -X POST "https://api.solidtime.io/api/v1/organizations/{organization_id}/reports" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "Q1 Billable Report", "description": "All billable hours for Q1 2024", "is_public": true, "public_until": "2024-06-30T23:59:59Z", "properties": { "group": "client", "sub_group": "project", "history_group": "week", "start": "2024-01-01T00:00:00Z", "end": "2024-03-31T23:59:59Z", "billable": true, "timezone": "America/New_York", "week_start": "sunday" } }' ``` -------------------------------- ### List API Tokens Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieve a list of all personal access tokens associated with the authenticated user. This includes token details such as ID, name, creation date, expiration, and revocation status. ```bash curl -X GET "https://api.solidtime.io/api/v1/users/me/api-tokens" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` ```json { "data": [ { "id": "9e27f54d-5dfb-4dde-99d7-834518236c92", "name": "My CLI Token", "created_at": "2024-02-26T17:17:17Z", "expires_at": null, "revoked": false } ] } ``` -------------------------------- ### Update Client Source: https://context7.com/solidtime-io/solidtime/llms.txt Updates an existing client's name or archive status. Requires organization ID, client ID, and access token. ```bash curl -X PUT "https://api.solidtime.io/api/v1/organizations/{organization_id}/clients/{client_id}" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{ "name": "Updated Client Name", "is_archived": false }' ``` -------------------------------- ### Authentication API Source: https://context7.com/solidtime-io/solidtime/llms.txt Manage API tokens for authentication. Tokens are used to authorize requests to the Solidtime API. ```APIDOC ## POST /api/v1/users/me/api-tokens ### Description Creates a new personal access token for API authentication. The token is only shown once in the response and cannot be retrieved later. ### Method POST ### Endpoint /api/v1/users/me/api-tokens ### Parameters #### Request Body - **name** (string) - Required - The name of the API token. ### Request Example ```json { "name": "My CLI Token" } ``` ### Response #### Success Response (201 Created) - **data** (object) - Contains details of the created token. - **id** (string) - The unique identifier of the token. - **name** (string) - The name of the token. - **created_at** (string) - The timestamp when the token was created. - **expires_at** (string | null) - The timestamp when the token expires, or null if it never expires. - **access_token** (string) - The generated API token. #### Response Example ```json { "data": { "id": "9e27f54d-5dfb-4dde-99d7-834518236c92", "name": "My CLI Token", "created_at": "2024-02-26T17:17:17Z", "expires_at": null }, "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9..." } ``` ``` ```APIDOC ## GET /api/v1/users/me/api-tokens ### Description Retrieves all personal access tokens for the authenticated user. ### Method GET ### Endpoint /api/v1/users/me/api-tokens ### Response #### Success Response (200 OK) - **data** (array) - A list of API tokens. - **id** (string) - The unique identifier of the token. - **name** (string) - The name of the token. - **created_at** (string) - The timestamp when the token was created. - **expires_at** (string | null) - The timestamp when the token expires, or null if it never expires. - **revoked** (boolean) - Indicates if the token has been revoked. #### Response Example ```json { "data": [ { "id": "9e27f54d-5dfb-4dde-99d7-834518236c92", "name": "My CLI Token", "created_at": "2024-02-26T17:17:17Z", "expires_at": null, "revoked": false } ] } ``` ``` ```APIDOC ## POST /api/v1/users/me/api-tokens/{token_id}/revoke ### Description Revokes an API token, making it invalid for future requests. ### Method POST ### Endpoint /api/v1/users/me/api-tokens/{token_id}/revoke ### Parameters #### Path Parameters - **token_id** (string) - Required - The ID of the API token to revoke. ### Response #### Success Response (204 No Content) No content is returned upon successful revocation. ``` ```APIDOC ## DELETE /api/v1/users/me/api-tokens/{token_id} ### Description Permanently deletes an API token. ### Method DELETE ### Endpoint /api/v1/users/me/api-tokens/{token_id} ### Parameters #### Path Parameters - **token_id** (string) - Required - The ID of the API token to delete. ### Response #### Success Response (204 No Content) No content is returned upon successful deletion. ``` -------------------------------- ### Create Report Source: https://context7.com/solidtime-io/solidtime/llms.txt Creates a new saved report with filter configurations. ```APIDOC ## Create Report ### Description Creates a new saved report with filter configurations. ### Method POST ### Endpoint /api/v1/organizations/{organization_id}/reports ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization. #### Query Parameters None #### Request Body - **name** (string) - Required - The name of the report. - **description** (string) - Optional - A description of the report. - **is_public** (boolean) - Optional - Indicates if the report should be public. - **public_until** (string) - Optional - The date and time until which the report is public. - **properties** (object) - Required - The filter properties for the report. - **group** (string) - Required - The grouping criteria for the report. - **sub_group** (string) - Optional - The sub-grouping criteria. - **history_group** (string) - Optional - The history grouping criteria. - **start** (string) - Required - The start date and time for the report data. - **end** (string) - Required - The end date and time for the report data. - **active** (boolean) - Optional - Whether to include active entries. - **billable** (boolean) - Optional - Whether to filter by billable status. - **member_ids** (array) - Optional - List of member IDs to filter by. - **project_ids** (array) - Optional - List of project IDs to filter by. - **client_ids** (array) - Optional - List of client IDs to filter by. - **tag_ids** (array) - Optional - List of tag IDs to filter by. - **task_ids** (array) - Optional - List of task IDs to filter by. - **timezone** (string) - Optional - The timezone for the report. - **week_start** (string) - Optional - The starting day of the week. ### Request Example ```json { "name": "Q1 Billable Report", "description": "All billable hours for Q1 2024", "is_public": true, "public_until": "2024-06-30T23:59:59Z", "properties": { "group": "client", "sub_group": "project", "history_group": "week", "start": "2024-01-01T00:00:00Z", "end": "2024-03-31T23:59:59Z", "billable": true, "timezone": "America/New_York", "week_start": "sunday" } } ``` ### Response #### Success Response (200) - **data** (object) - The created report object, including a `share_secret` if `is_public` is true. #### Response Example (Response body will be a detailed report object) ``` -------------------------------- ### Aggregate Time Entries by Day with Gap Filling Source: https://context7.com/solidtime-io/solidtime/llms.txt Aggregate time entries on a daily basis, ensuring that all days within the specified range are represented, even if there are no entries for a particular day. This is achieved by setting `fill_gaps_in_time_groups` to `true`. ```bash curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/time-entries/aggregate?start=2024-02-01T00:00:00Z&end=2024-02-29T23:59:59Z&group=day&fill_gaps_in_time_groups=true" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### Import Data Source: https://context7.com/solidtime-io/solidtime/llms.txt Imports data from external sources. The data must be base64 encoded. ```APIDOC ## POST /api/v1/organizations/{organization_id}/import ### Description Imports data from external sources. The data must be base64 encoded. ### Method POST ### Endpoint /api/v1/organizations/{organization_id}/import ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization to import data into. #### Request Body - **type** (string) - Required - The type of data to import (e.g., "toggl_time_entries", "clockify_projects"). - **data** (string) - Required - The data to import, base64 encoded. ### Request Example ```json { "type": "toggl_time_entries", "data": "VXNlcixFbWFpbCxDbGllbnQsUHJvamVjdCxUYXNrLERlc2NyaXB0aW9uLEJpbGxhYmxlLFN0YXJ0IGRhdGUsU3RhcnQgdGltZSxFbmQgZGF0ZSxFbmQgdGltZSxEdXJhdGlvbixUYWdzLEFtb3VudCAoKQ0KSm9obiBEb2Usam9obkBleGFtcGxlLmNvbSxBY21lIENvcnAsV2Vic2l0ZSBSZWRlc2lnbixEZXNpZ24sSG9tZXBhZ2UgbW9ja3VwcyxZZXMsMjAyNC0wMi0yNiwwOTowMDowMCwyMDI0LTAyLTI2LDEyOjMwOjAwLDAzOjMwOjAwLGRlc2lnbixmZWF0dXJlLA==" } ``` ### Response #### Success Response (200) - **report** (object) - Contains counts of created items. - **clients** (object) - Created clients. - **projects** (object) - Created projects. - **tasks** (object) - Created tasks. - **time_entries** (object) - Created time entries. - **tags** (object) - Created tags. - **users** (object) - Created users. #### Response Example ```json { "report": { "clients": { "created": 1 }, "projects": { "created": 1 }, "tasks": { "created": 1 }, "time_entries": { "created": 5 }, "tags": { "created": 2 }, "users": { "created": 0 } } } ``` ``` -------------------------------- ### DELETE /organizations/{organization_id}/projects/{project_id} Source: https://context7.com/solidtime-io/solidtime/llms.txt Deletes a project. Fails if the project has tasks or time entries. ```APIDOC ## DELETE /organizations/{organization_id}/projects/{project_id} ### Description Deletes a project. Fails if the project has tasks or time entries. ### Method DELETE ### Endpoint https://api.solidtime.io/api/v1/organizations/{organization_id}/projects/{project_id} ### Parameters #### Path Parameters - **organization_id** (string) - Required - The ID of the organization. - **project_id** (string) - Required - The ID of the project to delete. ### Response #### Success Response (204) - No content returned. ``` -------------------------------- ### List Time Entries Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves time entries with support for filtering, pagination, and status checks. ```bash # Get time entries for a date range curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/time-entries?start=2024-02-01T00:00:00Z&end=2024-02-29T23:59:59Z&limit=100&offset=0" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" # Get active (running) time entries curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/time-entries?active=true" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" # Filter by project, member, and billable status curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/time-entries?project_ids[]={project_id}&member_ids[]={member_id}&billable=true" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ``` -------------------------------- ### List Currencies Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves all available currencies. This endpoint does not require authentication. ```APIDOC ## GET /api/v1/currencies ### Description Retrieves all available currencies. This endpoint does not require authentication. ### Method GET ### Endpoint /api/v1/currencies ### Response #### Success Response (200) - **data** (array) - A list of available currencies. - **code** (string) - The currency code (e.g., "USD"). - **name** (string) - The full name of the currency (e.g., "US Dollar"). - **symbol** (string) - The currency symbol (e.g., "$"). #### Response Example ```json { "data": [ { "code": "USD", "name": "US Dollar", "symbol": "$" }, { "code": "EUR", "name": "Euro", "symbol": "€" }, { "code": "GBP", "name": "British Pound", "symbol": "£" }, { "code": "JPY", "name": "Japanese Yen", "symbol": "¥" } ] } ``` ``` -------------------------------- ### List Tasks API Call Source: https://context7.com/solidtime-io/solidtime/llms.txt Retrieves tasks within an organization. Supports filtering by project ID and completion status (`done=true` or `done=false`). Useful for task management and reporting. ```bash # Get all incomplete tasks for a project curl -X GET "https://api.solidtime.io/api/v1/organizations/{organization_id}/tasks?project_id={project_id}&done=false" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Accept: application/json" ```