### Example Custom Properties JSON Structure
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/custom_fields.md
Illustrates the JSON structure for custom properties.
```json
"custom_properties": {
"UID": "123-UID-456",
"Line of business": "Automotive"
}
```
--------------------------------
### Start Activity Timer
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/activities.md
Start or continue a timer on an activity. The timer is only available for activities on the current day. If the timer cannot be started, a 422 will be returned.
```bash
curl -X PATCH \
'https://{domain}.mocoapp.com/api/v1/activities/{id}/start_timer' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json'
```
--------------------------------
### Planning Entry Attributes Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/planning_entries.md
Shows the structure of a planning entry, including user, project, and task details. Note that either 'project' or 'deal' will be populated, not both.
```json
{
"id": 4839,
"title": "Project Management",
"starts_on": "2020-05-04",
"ends_on": "2020-05-04",
"hours_per_day": 6.0,
"comment": "",
"symbol": null,
"color": "#2965cc",
"read_only": false,
"user": {
"id": 5484,
"firstname": "Thomas",
"lastname": "Munster"
},
"project": {
"id": 4553,
"identifier": "130",
"name": "Support",
"customer_name": "Acme GmbH",
"color": "#faeb44"
},
"task": {
"id": 6789,
"name": "Projektleitung"
},
"deal": null,
"series_id": null,
"tentative": false,
"series_repeat": null,
"created_at": "2018-10-17T09:33:46Z",
"updated_at": "2018-10-17T09:33:46Z"
}
```
--------------------------------
### Start Timer for an Activity
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/activities.md
Starts or continues a timer on an activity. The timer is only available for activities on the current day.
```APIDOC
## PATCH /activities/{id}/start_timer
### Description
Start or continue a timer on an activity. The timer is only available for activities on the current day. If the timer cannot be started, a 422 will be returned.
### Method
PATCH
### Endpoint
`/activities/{id}/start_timer`
### Response
#### Success Response (200)
- The timer has been started or continued.
#### Error Response (422)
- Indicates that the timer could not be started.
```
--------------------------------
### Sorting Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/index.md
Demonstrates how to sort resources using the `sort_by` query parameter. You can specify the field name and an optional sorting order (asc or desc).
```APIDOC
## Sorting
Sorting is controlled by the `sort_by` query parameter. Its value is the field name that should be sorted, followed by an optional sorting order (`asc` or `desc`, default is `asc`).
Example:
- `https://{domain}.mocoapp.com/api/v1/offers?sort_by=title desc`
```
--------------------------------
### Internal Hourly Rates Response Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/account/internal_hourly_rates.md
This is an example of the JSON response when retrieving internal hourly rates. It lists users and their associated rates for different years.
```json
[
{
"id": 933589613,
"full_name": "Daniela Demo",
"rates": [
{
"year": 2020,
"rate": 120.0
},
{
"year": 2021,
"rate": 130.0
}
]
},
{
"id": 933618769,
"full_name": "Max Muster",
"rates": [
{
"year": 2020,
"rate": 110.0
},
{
"year": 2021,
"rate": 120.0
}
]
}
]
```
--------------------------------
### Example Project Data Structure
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/projects.md
This JSON structure represents the limited project information returned when retrieving projects assigned to a user. It includes basic project details and associated task and contract information.
```json
[
{
"id": 1234,
"identifier": "P1900",
"name": "Application",
"active": false,
"billable": true,
"customer": {
"id": 4567,
"name": "A Company"
},
"tasks": [
{
"id": 573383,
"name": "Integrations",
"active": true,
"billable": true
}
],
"contract": {
"user_id": 65455,
"active": true
}
}
]
```
--------------------------------
### User Presence Attributes Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/presences.md
This JSON object illustrates the structure of a user presence record, including user details.
```json
{
"id": 982237015,
"date": "2018-07-03",
"from": "07:30",
"to": "13:15",
"is_home_office": true,
"user": {
"id": 933590696,
"firstname": "John",
"lastname": "Doe"
},
"created_at": "2018-10-17T09:33:46Z",
"updated_at": "2018-10-17T09:33:46Z"
}
```
--------------------------------
### Create Invoice Item with Activity IDs
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/invoices.md
Example of creating an invoice item that links to specific activities. This allows billing for pre-defined activities by specifying their IDs.
```json
{
"type": "item",
"title": "Design",
"quantity": 3,
"unit": "h",
"unit_price": 150.0,
"activity_ids": [1253, 8712]
}
```
--------------------------------
### Retrieve Offer Customer Approval
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/offer_customer_approval.md
Use this endpoint to get the current status of a customer approval for a specific offer. A 404 is returned if the approval has not been activated. Check the `signed_at` field to determine if the customer has approved.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/offers/{id}/customer_approval' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Create an employment
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/employments.md
Creates a new user employment. Requires user ID, pattern, and start date. End date is optional.
```APIDOC
## POST /users/employments
### Description
Create an employment.
### Method
POST
### Endpoint
/users/employments
### Request Body
- **user_id** (integer) - Required - The ID of the user.
- **pattern** (object) - Required - The work hours pattern for each workday. Example: `{ "am": [4, 4, 4, 4, 4], "pm": [4, 4, 4, 4, 4] }`.
- **from** (string) - Optional - The start date of the employment (default: current date).
- **to** (string) - Optional - The end date of the employment.
### Request Example
```json
{
"user_id": 123,
"pattern": {
"am": [0, 4.25, 4.25, 4.25, 4.25],
"pm": [0, 4.25, 4.25, 4.25, 0]
},
"from": "2022-01-01",
"to": "2022-12-31"
}
```
### Response
#### Success Response (201)
- **Created employment object**
```
--------------------------------
### Example WebHook Headers
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/webhooks.md
These headers are sent with a WebHook payload. They provide context about the event, such as the target, event type, timestamp, signature, user ID, and account URL. The receiver must process the request within 10 seconds.
```text
X-Moco-Target: Activity
X-Moco-Event: create
X-Moco-Timestamp: 1527170410463
X-Moco-Signature: f457bffc50e9b63f455ab107c55f2f61956550aa5525c2cfe07f574014bd8a9e
X-Moco-User-Id: 933613686
```
--------------------------------
### Retrieve All Custom Properties (GET /account/custom_properties)
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/account/custom_properties.md
Use this endpoint to fetch a list of all custom properties configured for your account. Global filters can be applied to refine the results.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/account/custom_properties' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Receipt Attributes Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/receipts.md
This JSON object demonstrates the structure and typical fields found in a receipt, including user, items, project, and refund request information.
```json
{
"id": 123,
"title": "Team-Lunch",
"date": "2021-12-13",
"billable": false,
"pending": false,
"gross_total": 56.5,
"currency": "CHF",
"items": [
{
"gross_total": 56.5,
"vat": {
"id": 186,
"tax": 7.7,
"reverse_charge": false,
"intra_eu": false
},
"purchase_category": {
"id": 2684,
"name": "Bewirtungsaufwände"
}
}
],
"project": {
"id": 567,
"name": "Intern/Admin",
"billable": false,
"company": {
"id": 789,
"name": "Acme Inc."
}
},
"refund_request": {
"id": 266,
"status": "paid"
},
"info": "Teamlunch mit Peter, Sandra und Till",
"user": {
"id": 933,
"firstname": "Sabine",
"lastname": "Schäuble"
},
"attachment_url": "/system/documents/account/123/document/123/d8fef77df35c5753.pdf"
}
```
--------------------------------
### Project Payment Schedule Attributes
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/project_payment_schedules.md
Example JSON structure for a project payment schedule. Includes ID, date, title, description, totals, project details, and status flags.
```json
{
"id": 760153573,
"date": "2017-04-05",
"title": "Erste Anzahlung",
"description": "
A description for this payment schedule
",
"net_total": 1000,
"project": {
"id": 822322322,
"identifier": "P0077",
"name": "New website"
},
"checked": false,
"billed": false,
"created_at": "2018-10-17T09:33:46Z",
"updated_at": "2018-10-17T09:33:46Z"
}
```
--------------------------------
### Create a Project
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/projects.md
This endpoint allows you to create a new project. You must provide mandatory fields such as name, currency, dates, and leader ID. The `Content-Type` header must be set to `application/json`. If `retainer` is true, `start_date`, `finish_date`, and `budget_monthly` become mandatory.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/projects' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "Website Relaunch",
"currency": "EUR",
"leader_id": "1234",
"customer_id": "5678",
"tags": ["Print", "Digital"],
}'
```
--------------------------------
### Create Activity
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/activities.md
Creates a new time entry. Requires date, project ID, task ID, and seconds. Optional fields include description, billable status, tags, and remote service details.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/activities' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"date": "2017-06-11",
"description": "Analysis context and dependencies",
"project_id": 123456,
"task_id": 234567,
"seconds": 3600
}'
```
--------------------------------
### Invoice Timesheet Data Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/invoices.md
An example of the JSON response structure for an invoice's timesheet, detailing individual activities.
```json
[
{
"id": 988913748,
"date": "2021-01-25",
"hours": 4.0,
"description": "Description",
"billed": true,
"billable": true,
"tag": "",
"remote_service": "trello",
"remote_id": "0FhzirkJ",
"remote_url": "https://trello.com/c/0FhziaBc/1-test",
"project": {
"id": 944807389,
"name": "Pitch Project",
"billable": true
},
"task": {
"id": 2262446,
"name": "Design / UX",
"billable": true
},
"customer": {
"id": 760255659,
"name": "Acme Corp."
},
"user": {
"id": 933618783,
"firstname": "Jane",
"lastname": "Doe"
},
"timer_started_at": null,
"created_at": "2021-02-26T10:48:28Z",
"updated_at": "2021-02-26T11:42:47Z",
"hourly_rate": 150.0
}
]
```
--------------------------------
### Create a New Deal (Lead)
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/deals.md
Use this cURL command to create a new lead. Mandatory fields include name, currency, money, reminder_date, user_id, and deal_category_id. Optional fields like company_id, person_id, and info can also be provided.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/deals' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "Beispiel AG Website Relaunch",
"currency": "EUR",
"money": 25000,
"reminder_date": "2018-12-01",
"user_id": 123,
"deal_category_id": 456
}'
```
--------------------------------
### Create a Purchase
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/purchases.md
Use this endpoint to create a new purchase. Include details like date, currency, payment method, items, and an optional file attachment. Ensure all mandatory fields are provided.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/purchases' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '
{
"date": "2020-02-02",
"currency": "EUR",
"payment_method": "bank_transfer",
"receipt_identifier": "XXLA",
"custom_properties": { "Various": "Stuff" },
"items": [
{
"title": "Ticket",
"total": 30,
"tax": 10,
"tax_included": true
}
],
"file": {
"filename": "document.pdf",
"base64": "JVBERi0xLjQKJeLjz9MKNCAwIG9iago8PC9GaWx..."
}
}'
```
--------------------------------
### GET /projects/{id}
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/projects.md
Retrieves a single project by its ID.
```APIDOC
## GET /projects/{id}
### Description
Retrieve a single project by its ID.
### Method
GET
### Endpoint
/projects/{id}
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the project to retrieve.
### Request Example
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/projects/{id}' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
### Response
#### Success Response (200)
- **project** (object) - A single project representation.
```
--------------------------------
### Create Customer with Custom Field (Bash)
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/custom_fields.md
Demonstrates creating a new customer and including a custom field in the request body.
```bash
curl -X POST \
https://{domain}.mocoapp.com/api/v1/customers \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "Beispiel AG",
"currency": "CHF",
"custom_properties": {
"Line of business": "Automotive"
}
}'
```
--------------------------------
### GET /comments/{id}
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/comments.md
Retrieve a single comment by its ID.
```APIDOC
## GET /comments/{id}
### Description
Retrieve a single comment by its ID.
### Method
GET
### Endpoint
/api/v1/comments/{id}
### Parameters
#### Path Parameters
- **id** (integer) - Required - The ID of the comment to retrieve.
```
--------------------------------
### Retrieve a Single Project
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/projects.md
Use this endpoint to fetch the details of a specific project. Ensure you replace `{domain}` and `{id}` with your actual domain and the project's ID. An API key is required for authentication.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/projects/{id}' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Deal Category Attributes Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/deal_categories.md
This JSON object represents the structure of a deal category.
```json
{
"id": 123,
"name": "Contact",
"probability": 1,
"created_at": "2018-10-17T09:33:46Z",
"updated_at": "2018-10-17T09:33:46Z"
}
```
--------------------------------
### POST /projects
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/projects.md
Creates a new project.
```APIDOC
## POST /projects
### Description
Create a new project.
### Method
POST
### Endpoint
/projects
### Parameters
#### Request Body
- **name** (string) - Required - The name of the project.
- **currency** (string) - Required - The currency for the project.
- **start_date** (string) - Required - The start date of the project (YYYY-MM-DD).
- **finish_date** (string) - Required - The finish date of the project (YYYY-MM-DD).
- **fixed_price** (boolean) - Required - Indicates if the project has a fixed price.
- **retainer** (boolean) - Required - Indicates if the project is a retainer.
- **leader_id** (string) - Required - The ID of the project leader.
- **co_leader_id** (string) - Optional - The ID of the co-leader.
- **customer_id** (string) - Required - The ID of the customer.
- **deal_id** (string) - Optional - The ID of the deal.
- **project_group_id** (string) - Optional - The ID of the project group.
- **contact_id** (string) - Optional - The ID of the contact.
- **secondary_contact_id** (string) - Optional - The ID of the secondary contact.
- **billing_contact_id** (string) - Optional - The ID of the billing contact.
- **identifier** (string) - Required (if manual number ranges) - A unique identifier for the project.
- **billing_address** (string) - Optional - The billing address.
- **billing_email_to** (string) - Optional - The email address for billing.
- **billing_email_cc** (string) - Optional - The CC email address for billing.
- **billing_notes** (string) - Optional - Notes for billing.
- **setting_include_time_report** (boolean) - Optional - Whether to include time reports.
- **billing_variant** (string) - Optional - The billing variant ('project', 'task', or 'user'). Defaults to 'project'.
- **hourly_rate** (number) - Optional - The hourly rate for the project.
- **budget** (number) - Optional - The total budget for the project.
- **budget_monthly** (number) - Optional - The monthly budget.
- **budget_expenses** (number) - Optional - The budget for expenses.
- **tags** (array of strings) - Optional - Tags for the project.
- **custom_properties** (object) - Optional - Custom properties for the project.
- **info** (string) - Optional - Additional information about the project.
- **skip_favorite** (boolean) - Optional - Whether to skip adding the project to favorites.
- **retainer_billing_date** (integer) - Optional - The day of the month to bill for retainers (1-31).
- **retainer_billing_title** (string) - Optional - The default title for retainer payment schedules.
- **retainer_billing_description** (string) - Optional - The default description for retainer payment schedules.
{: .note }
If the field `retainer` is true, the fields `start_date`, `finish_date`, `budget_monthly` are mandatory. Also the start date has to be on the first and the finish date on the last of a month!
### Request Example
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/projects' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d
{
"name": "Website Relaunch",
"currency": "EUR",
"leader_id": "1234",
"customer_id": "5678",
"tags": ["Print", "Digital"]
}
```
```
--------------------------------
### GET /users/{id}
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/users.md
Retrieve the details of a single staff member by their unique ID.
```APIDOC
## GET /users/{id}
### Description
Retrieve a single staff member's representation using their unique identifier.
### Method
GET
### Endpoint
/api/v1/users/{id}
### Parameters
#### Path Parameters
- **id** (integer) - Required - The unique identifier of the user.
```
--------------------------------
### Holiday JSON Structure
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/holidays.md
Example structure of a holiday object, including user and creator details.
```json
{
"id": 12345,
"year": 2019,
"title": "Urlaubsanspruch 80%",
"days": 20,
"hours": 160,
"user": {
"id": 933590696,
"firstname": "John",
"lastname": "Doe"
},
"creator": {
"id": 933590697,
"firstname": "Jane",
"lastname": "Doe"
},
"created_at": "2018-10-17T09:33:46Z",
"updated_at": "2018-10-17T09:33:46Z"
}
```
--------------------------------
### Get Project Report
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/projects.md
Retrieves a report containing key business indicators for a specific project.
```APIDOC
## GET /projects/{id}/report
### Description
Retrieve a project report.
### Method
GET
### Endpoint
/projects/{id}/report
### Parameters
#### Path Parameters
- **id** (integer) - Required - The unique identifier of the project.
### Response
#### Success Response (200)
- **budget_total** (float) - The total budget of the project.
- **budget_progress_in_percentage** (integer) - The progress of the budget in percentage.
- **budget_remaining** (float) - The remaining budget for the project.
- **invoiced_total** (float) - The total amount invoiced for the project.
- **currency** (string) - The currency of the account's main currency.
- **hours_total** (integer) - The total hours allocated for the project.
- **hours_billable** (integer) - The total billable hours.
- **hours_remaining** (integer) - The remaining hours for the project.
- **costs_expenses** (float) - Total costs from expenses.
- **costs_activities** (float) - Total costs from activities.
- **costs_by_task** (array) - An array of objects, each representing costs by task.
- **id** (integer) - The ID of the task.
- **name** (string) - The name of the task.
- **hours_total** (float) - Total hours for the task.
- **total_costs** (float) - Total costs for the task.
### Response Example
```json
{
"budget_total": 50000.0,
"budget_progress_in_percentage": 50,
"budget_remaining": 25.0,
"invoiced_total": 27885.0,
"currency": "EUR",
"hours_total": 1500,
"hours_billable": 1340,
"hours_remaining": 1500,
"costs_expenses": 4000.0,
"costs_activities": 16450.0,
"costs_by_task": [
{
"id": 7536,
"name": "Project Management",
"hours_total": 12.5,
"total_costs": 725.0
},
{
"id": 7239,
"name": "Design",
"hours_total": 71.98,
"total_costs": 5598.0
},
{
"id": 573376,
"name": "Development",
"hours_total": 94.48,
"total_costs": 9448.0
}
]
}
```
```
--------------------------------
### Retrieve All Offers
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/offers.md
Fetches a list of all offers. Supports sorting by date, created_at, or title. Global filters and specific parameters like status, date range, and IDs can be applied.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/offers' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/offers?sort=date' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Get Single Purchase VAT Code
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/vat_codes.md
Retrieve a single purchase VAT code by its ID.
```APIDOC
## GET /vat_code_purchases/{id}
### Description
Retrieve a single purchase VAT code.
### Method
GET
### Endpoint
/vat_code_purchases/{id}
### Parameters
#### Path Parameters
- **id** (integer) - Required - The ID of the purchase VAT code to retrieve.
### Request Example
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/vat_code_purchases/123' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
### Response
#### Success Response (200)
Returns a single purchase VAT code object. See Attributes for structure.
```
--------------------------------
### Create Offer
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/offers.md
Creates a new offer with specified details including deal association, recipient address, dates, title, tax, and line items. Mandatory fields are marked with a star.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/offers' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"deal_id": 123,
"recipient_address": "Acme\r\nPark Avenue",
"date": "2019-05-10",
"due_date": "2019-06-08",
"title": "Offer - Shop Locator",
"salutation": "Hey",
"tax": 8.0,
"discount": 0.0,
"footer": "Bye",
"internal_contact_id": 1234,
"items":[
{"type":"title","title":"Stunden"},
{"type":"description","description":"Aufstellung über geleistete Arbeiten"},
{"type":"item","title":"MailChimp Einrichtung","quantity":1,"unit":"Std","unit_price":100.0}
]}'
```
--------------------------------
### Get Single Sale VAT Code
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/vat_codes.md
Retrieve a single sale VAT code by its ID.
```APIDOC
## GET /vat_code_sales/{id}
### Description
Retrieve a single sale VAT code.
### Method
GET
### Endpoint
/vat_code_sales/{id}
### Parameters
#### Path Parameters
- **id** (integer) - Required - The ID of the sale VAT code to retrieve.
### Request Example
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/vat_code_sales/123' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
### Response
#### Success Response (200)
Returns a single sale VAT code object. See Attributes for structure.
```
--------------------------------
### Retrieve All Projects
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/projects.md
Use this endpoint to fetch a list of all projects. Various parameters can be supplied to filter the results, such as inclusion of archived projects, leader ID, company ID, creation/update dates, tags, and more.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/projects' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### GET /users
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/users.md
Retrieve a list of all staff members. Supports filtering by archived status, tags, and email.
```APIDOC
## GET /users
### Description
Retrieve all staff members. This endpoint supports global filters, and specific filters for archived users, tags, and email.
### Method
GET
### Endpoint
/api/v1/users
### Query Parameters
- **include_archived** (boolean) - Optional - If true, includes deactivated users.
- **tags** (string) - Optional - Comma-separated list of tags to filter by.
- **email** (string) - Optional - Email address to filter by.
### Response
#### Success Response (200)
- An array of user objects, each containing detailed staff information.
```
--------------------------------
### GET /projects/assigned
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/projects.md
Retrieves a list of projects assigned to the currently authenticated user. Returns limited project information.
```APIDOC
## GET /projects/assigned
### Description
Retrieve all projects assigned to the user. This returns an array with limited project information.
### Method
GET
### Endpoint
/projects/assigned
### Parameters
#### Query Parameters
- **active** (boolean) - Optional - Filter by active status.
### Request Example
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/projects/assigned?active=true' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
### Response
#### Success Response (200)
An array of limited project objects.
#### Response Example
```json
[
{
"id": 1234,
"identifier": "P1900",
"name": "Application",
"active": false,
"billable": true,
"customer": {
"id": 4567,
"name": "A Company"
},
"tasks": [
{
"id": 573383,
"name": "Integrations",
"active": true,
"billable": true
}
],
"contract": {
"user_id": 65455,
"active": true
}
}
]
```
```
--------------------------------
### Retrieve All Activities
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/activities.md
Fetches a list of activities within a specified date range and optionally filters by project. Requires an API key for authorization.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/activities?from=2018-06-01&to=2018-06-30&project_id=4242' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Create Planning Entry
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/planning_entries.md
Creates a new planning entry. If no user_id is provided, it defaults to the authenticated user. Mandatory fields include project/deal ID, start/end dates, and hours per day.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/planning_entries' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ \
"project_id": 4322, \
"task_id": 6789, \
"title": "Project Management", \
"starts_on": "2020-05-20", \
"ends_on": "2020-05-30", \
"hours_per_day": 3, \
"comment": "A comment...", \
"symbol": 2 \
}'
```
--------------------------------
### Create a Task on a Project
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/project_tasks.md
Use this endpoint to add a new task to a project. Mandatory fields include 'name', and optional fields like 'billable', 'hourly_rate', 'budget', 'active', and 'description' can also be provided.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/projects/{id}/tasks' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "Design / UX",
"billable": true,
"hourly_rate": 120
}'
```
--------------------------------
### Comment Attributes Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/comments.md
This JSON object illustrates the structure and fields of a comment, including user and impersonating user details.
```json
{
"id": 123,
"commentable_id": 12345,
"commentable_type": "Project",
"text": "Project was ordered on 1.10.2017
.",
"manual": true,
"user": {
"id": 567,
"firstname": "Tobias",
"lastname": "Miesel"
},
"impersonating_user": {
"id": 789,
"firstname": "Erika",
"lastname": "Mustermann"
},
"created_at": "2018-10-17T09:33:46Z",
"updated_at": "2018-10-17T09:33:46Z"
}
```
--------------------------------
### Get Utilization Report
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/reports.md
Retrieves the utilization report for a specified date range. Supports filtering by 'from' and 'to' dates.
```APIDOC
## GET /report/utilization
### Description
Retrieve the utilization report.
### Method
GET
### Endpoint
`/api/v1/report/utilization`
### Query Parameters
- **from** (string) - Optional - Defaults to the beginning of the current year. Format: YYYY-MM-DD
- **to** (string) - Optional - Defaults to the end of the current year. Format: YYYY-MM-DD
### Request Example
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/report/utilization?from=2025-01-01&to=2025-12-31' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
### Response
#### Success Response (200)
- **date** (string) - The date of the record.
- **user_id** (integer) - The ID of the user.
- **target_hours** (float) - The target hours for the user on that date.
- **billable_hours** (float) - The billable hours recorded.
- **unbillable_hours** (float) - The unbillable hours recorded.
- **billable_seconds** (integer) - The billable seconds recorded.
- **unbillable_seconds** (integer) - The unbillable seconds recorded.
#### Response Example
```json
[
{
"date": "2025-08-20",
"user_id": 92345,
"target_hours": 6.4,
"billable_hours": 4.3,
"unbillable_hours": 0.83,
"billable_seconds": 15487,
"unbillable_seconds": 3000
}
]
```
```
--------------------------------
### Retrieve All Planning Entries (Paged)
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/planning_entries.md
Use this endpoint to fetch a list of planning entries within a specified date range. Global filters and specific parameters like user, project, or deal ID can be applied.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/planning_entries?period=2020-04-01:2020-07-31' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Retrieve All Deals (Leads)
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/deals.md
Use this cURL command to fetch a list of all deals. You can filter the results using parameters like status, tags, closed_from, closed_to, and company_id.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/deals' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### GET /invoices/{id}/expenses
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/invoices.md
Retrieve all expenses associated with a specific invoice. This endpoint returns a list of expense objects.
```APIDOC
## GET /invoices/{id}/expenses
### Description
Retrieve all expenses that were invoiced in a particular invoice.
### Method
GET
### Endpoint
/invoices/{id}/expenses
### Parameters
#### Path Parameters
- **id** (integer) - Required - The ID of the invoice.
### Response
#### Success Response (200)
- **Array of expense objects**
### Response Example
```json
[
{
"id": 47266,
"date": "2017-07-07",
"title": "Hosting XS",
"description": "Hosting, Monitoring und Backup
",
"quantity": 3,
"unit": "Monat",
"unit_price": 29,
"unit_cost": 19,
"price": 87,
"cost": 57,
"currency": "CHF",
"budget_relevant": true,
"billable": true,
"billed": false,
"recurring_expense_id": null,
"service_period": "10/2020",
"service_period_from": "2020-10-01",
"service_period_to": "2020-10-31",
"file_url": "https//meinefirma.mocoapp.com/.../beleg1.jpg",
"custom_properties": {
"Type": "Website"
},
"company": {
"id": 1234,
"name": "Acme Corp."
},
"project": {
"id": 1234,
"name": "Project A"
},
"purchase_id": 123456,
"purchase_item_id": 234567,
"created_at": "2018-10-17T09:33:46Z",
"updated_at": "2018-10-17T09:33:46Z"
}
]
```
```
--------------------------------
### Update Planning Entry
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/planning_entries.md
Modifies an existing planning entry. Fields are similar to the POST request. This example shows updating the hours_per_day.
```bash
curl -X PUT \
'https://{domain}.mocoapp.com/api/v1/planning_entries/{id}' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ \
"hours_per_day": 5 \
}'
```
--------------------------------
### Work Time Adjustment Attributes Example
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/work_time_adjustments.md
This JSON object shows the structure and typical fields of a work time adjustment entry.
```json
{
"id": 1972,
"date": "2022-01-01",
"description": "Overtime from 2021",
"hours": 172.01,
"creator": {
"id": 933590697,
"firstname": "Jane",
"lastname": "Doe"
},
"user": {
"id": 933590696,
"firstname": "John",
"lastname": "Doe"
},
"created_at": "2022-01-02T17:31:00Z",
"updated_at": "2022-01-02T17:31:00Z"
}
```
--------------------------------
### Create Task Template
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/account/task_templates.md
Use this endpoint to create a new task template. The 'name' field is mandatory.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/account/task_templates' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ \
"name": "Web Development", \
"description": "Building the web application", \
"revenue_category_id": 4567, \
"billable": true, \
"project_default": true \
}'
```
--------------------------------
### Retrieve All Task Templates
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/account/task_templates.md
Use this endpoint to fetch a list of all task templates. Global filters can be applied.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/account/task_templates' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Retrieve a Single Recurring Expense
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/project_recurring_expenses.md
Get details for a specific recurring expense entry on a project using both project and expense IDs.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/projects/{id}/recurring_expenses/{id}' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Retrieve All Web Hooks
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/web_hooks.md
Use this endpoint to fetch a list of all configured web hooks for your account. It returns an array of web hook objects.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/account/web_hooks' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
--------------------------------
### Get Current User Profile
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/profile.md
Retrieves the profile of the currently authenticated user. If impersonation is active, it returns the profile of the impersonated user.
```APIDOC
## GET /profile
### Description
Get the current user's profile. If [impersonation](../index#impersonation) is used, it's the impersonated user.
### Method
GET
### Endpoint
/api/v1/profile
### Response
#### Success Response (200)
- **id** (integer) - The unique identifier of the user.
- **email** (string) - The email address of the user.
- **full_name** (string) - The full name of the user.
- **first_name** (string) - The first name of the user.
- **last_name** (string) - The last name of the user.
- **active** (boolean) - Indicates if the user account is active.
- **external** (boolean) - Indicates if the user is an external user.
- **avatar_url** (string) - The URL to the user's avatar image.
- **unit** (object) - Information about the user's unit.
- **id** (integer) - The unique identifier of the unit.
- **name** (string) - The name of the unit.
- **created_at** (string) - The timestamp when the user was created (ISO 8601 format).
- **updated_at** (string) - The timestamp when the user was last updated (ISO 8601 format).
### Request Example
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/profile' \
-H 'Authorization: Token token=YOUR_API_KEY'
```
### Response Example
```json
{
"id": 237852983,
"email": "janine.kuesters@meinefirma.de",
"full_name": "Janine Küsters",
"first_name": "Janine",
"last_name": "Küsters",
"active": true,
"external": false,
"avatar_url": "https://data.mocoapp.com/objects/6bf3db0a-895a-46a1-8006-6280af04b9c0.jpg",
"unit": {
"id": 436796,
"name": "Design"
},
"created_at": "2018-10-17T09:33:46Z",
"updated_at": "2022-08-02T14:21:56Z"
}
```
```
--------------------------------
### Create a Catalog Service
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/account/catalog_services.md
Creates a new catalog service, including its items. The request body must be in JSON format and include a title and an array of items.
```bash
curl -X POST \
'https://{domain}.mocoapp.com/api/v1/account/catalog_services' \
-H 'Authorization: Token token=YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{ \
"title": "Catalog entry", \
"items": [ \
{ \
"type": "item", \
"title": "Setup", \
"net_total": 1200.0 \
}, \
{ \
"type": "item", \
"title": "Consulting", \
"quantity": 20.0, \
"unit": "h", \
"unit_price": 150.0, \
"net_total": 3000.0 \
} \
] \
}'
```
--------------------------------
### Get an Item within a Service
Source: https://github.com/everii-group/mocoapp-api-docs/blob/master/sections/account/catalog_services.md
Retrieves a specific item belonging to a catalog service. Requires both the service ID and the item ID.
```bash
curl -X GET \
'https://{domain}.mocoapp.com/api/v1/account/catalog_services/{service_id}/items/{id}' \
-H 'Authorization: Token token=YOUR_API_KEY'
```