Download OpenAPI specification:
Provides access to a particular instance (tenant) in Manor. An API key can be provided by a Manor user with administration privileges in the instance.
Updates an existing user
| userId required | integer <int64> ID of user to update |
Update an existing user
string or null <idn-email> Email of the user. Required when creating a new user. | |
| mobile | string or null Mobile phone number of the client. |
| landline | string or null Landline phone number of the client. |
| name | string or null Name of the user. Required when creating a new user. |
{- "email": "john@example.com",
- "mobile": "+354 123 4567",
- "landline": "+354 765 4321",
- "name": "John Doe"
}Adds a new client
Create a new client
| name | string or null Name of the client. Required when creating a client. |
| national_id | string or null National ID of the client. Required when creating a client. |
object or null (MailingAddress) An object containing mailing address details. Required when creating a client. | |
object or null (MailingAddress) An object containing mailing address details. Required when creating a client. | |
string or null Email address of the client or a comma separated list of email addresses. | |
| phone | string or null Phone number of the client. |
| currency_code | string or null Currency code of the client. Required when creating a client. |
| special_attention | boolean or null Default: false Whether the client needs a special attention, i.e. to not provide services to etc.. |
| add_transaction_fee | boolean or null Default: false Whether the client should be charged a transaction fee on invoices. Defaults to false. |
{- "name": "John Doe",
- "national_id": "1234567890",
- "address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "billing_address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "email": "example@manor.is,another.example@manor.is",
- "phone": "+354 123 4567",
- "currency_code": "USD",
- "special_attention": false,
- "add_transaction_fee": false
}{- "id": 10,
- "name": "John Doe",
- "national_id": "1234567890",
- "address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "billing_address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "email": "example@manor.is,another.example@manor.is",
- "phone": "+354 123 4567",
- "currency_code": "USD",
- "special_attention": false,
- "add_transaction_fee": false
}Retrieves a single client
| clientId required | integer <int64> ID of client to retrieve |
{- "id": 10,
- "name": "John Doe",
- "national_id": "1234567890",
- "address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "billing_address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "email": "example@manor.is,another.example@manor.is",
- "phone": "+354 123 4567",
- "currency_code": "USD",
- "special_attention": false,
- "add_transaction_fee": false
}Updates an existing client
| clientId required | integer <int64> ID of client to update |
Update an existing client
| name | string or null Name of the client. Required when creating a client. |
| national_id | string or null National ID of the client. Required when creating a client. |
object or null (MailingAddress) An object containing mailing address details. Required when creating a client. | |
object or null (MailingAddress) An object containing mailing address details. Required when creating a client. | |
string or null Email address of the client or a comma separated list of email addresses. | |
| phone | string or null Phone number of the client. |
| currency_code | string or null Currency code of the client. Required when creating a client. |
| special_attention | boolean or null Default: false Whether the client needs a special attention, i.e. to not provide services to etc.. |
| add_transaction_fee | boolean or null Default: false Whether the client should be charged a transaction fee on invoices. Defaults to false. |
{- "name": "John Doe",
- "national_id": "1234567890",
- "address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "billing_address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "email": "example@manor.is,another.example@manor.is",
- "phone": "+354 123 4567",
- "currency_code": "USD",
- "special_attention": false,
- "add_transaction_fee": false
}Retrieves a single client by national ID
| nationalId required | string National ID of client to retrieve |
{- "id": 10,
- "name": "John Doe",
- "national_id": "1234567890",
- "address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "billing_address": {
- "country_code": "US",
- "country_name": "United States",
- "administrative_area": "CA",
- "locality": "Anytown",
- "dependent_locality": "Anytown",
- "postal_code": "90210",
- "address_line1": "123 Main St.",
- "address_line2": "Suite 100",
- "city": "Anytown",
- "state": "CA",
- "zip": "90210",
- "country": "US"
}, - "email": "example@manor.is,another.example@manor.is",
- "phone": "+354 123 4567",
- "currency_code": "USD",
- "special_attention": false,
- "add_transaction_fee": false
}Projects, formerly known as matters. These are the contain time entries and other billables items.
Returns a list of projects
| page | integer Page number |
| per_page | integer Number of items per page |
| status | string Enum: "all" "open" "closed" Filter by project status |
| with_activities | boolean Include activities of each projects |
{- "data": [
- {
- "id": 10,
- "identifier": "my-external-identifier",
- "name": "My Project",
- "client": {
- "id": 10
}, - "owner": {
- "id": 10
}, - "billing_owner": {
- "id": 10
}, - "open": true,
- "closing_comment": "Closing comment for my project.",
- "subject_to_vat": true,
- "settlement": true,
- "billing": "enabled",
- "confidential": true,
- "buyer_contact": "John Doe",
- "buyer_contact_email": "john.doe@manor.is",
- "participants": [ ],
- "activities": [ ],
- "subjects": [
- {
- "id": 10
}
], - "labels": [
- {
- "id": 10
}
], - "budget": 0.1,
- "time_budget": 0.1,
- "estimate": 0.1
}
], - "links": {
- "prev": null,
- "next": null
}, - "meta": {
- "current_page": 1,
- "from": 1,
- "last_page": 1,
- "per_page": 15,
- "to": 1,
- "total": 1
}
}Adds a new project
Create a new project
| name | string or null Project name. Required when creating a project. |
object or null An object containing client id. | |
object or null An object containing owner id. Required when creating a project. | |
object or null An object containing owner id. Optional. Only has an effect if the billing owner feature is enabled. If the feature is disabled, billing owner is automatically equal to the project owner. | |
| open | boolean or null Default: true Whether the project is open or not. Defaults to true. |
| closing_comment | string or null A comment explaining why the project was closed. Applicable only when open is set to "false". |
| subject_to_vat | boolean or null Whether the project is subject to VAT or not. Defaults to false. Only in case the instance is set to always choose VAT in its settings, subject_to_vat property is not provided and the project client's country is same as the country of the project owner, defaults to true. |
| settlement | boolean or null Whether the project is a settlement project or not. When a project is saved or updated this field is not considered. |
| billing | string or null Default: "enabled" Enum: "enabled" "internal" "sensitive" Billing status of the project. |
| confidential | boolean or null Default: false Whether the project should be hidden even from high privileged users. Defaults to false. |
| buyer_contact | string or null Name of the buyer contact. |
| buyer_contact_email | string <idn-email> |
Array of objects or null Default: [] An array of project participants. Project owner is automatically added to this array. | |
Array of objects or null (Activity) Default: [] An array of project activities. | |
Array of objects or null Deprecated Deprecated. Alias for labels, which were initially called subjects. Responses will contain the same array under both keys. Requests can set the array using either key. | |
Array of objects or null An array of project labels. | |
| budget | number or null <float> Warnings will be visible when the current matter balance gets close to this limit. |
| time_budget | number or null <float> Warnings will be visible when time spent on this matter reaches this limit. |
| estimate | number or null <float> A warning will show in the project if the total amount filed will exceed this estimate. |
{- "name": "My Project",
- "client": {
- "id": 10
}, - "owner": {
- "id": 10
}, - "billing_owner": {
- "id": 10
}, - "open": true,
- "closing_comment": "Closing comment for my project.",
- "subject_to_vat": true,
- "settlement": true,
- "billing": "enabled",
- "confidential": true,
- "buyer_contact": "John Doe",
- "buyer_contact_email": "john.doe@manor.is",
- "participants": [ ],
- "activities": [ ],
- "subjects": [
- {
- "id": 10
}
], - "labels": [
- {
- "id": 10
}
], - "budget": 0.1,
- "time_budget": 0.1,
- "estimate": 0.1
}{- "id": 10,
- "identifier": "my-external-identifier",
- "name": "My Project",
- "client": {
- "id": 10
}, - "owner": {
- "id": 10
}, - "billing_owner": {
- "id": 10
}, - "open": true,
- "closing_comment": "Closing comment for my project.",
- "subject_to_vat": true,
- "settlement": true,
- "billing": "enabled",
- "confidential": true,
- "buyer_contact": "John Doe",
- "buyer_contact_email": "john.doe@manor.is",
- "participants": [ ],
- "activities": [ ],
- "subjects": [
- {
- "id": 10
}
], - "labels": [
- {
- "id": 10
}
], - "budget": 0.1,
- "time_budget": 0.1,
- "estimate": 0.1
}Retrieves a single project
| projectId required | integer <int64> ID of project to retrieve |
{- "id": 10,
- "identifier": "my-external-identifier",
- "name": "My Project",
- "client": {
- "id": 10
}, - "owner": {
- "id": 10
}, - "billing_owner": {
- "id": 10
}, - "open": true,
- "closing_comment": "Closing comment for my project.",
- "subject_to_vat": true,
- "settlement": true,
- "billing": "enabled",
- "confidential": true,
- "buyer_contact": "John Doe",
- "buyer_contact_email": "john.doe@manor.is",
- "participants": [ ],
- "activities": [ ],
- "subjects": [
- {
- "id": 10
}
], - "labels": [
- {
- "id": 10
}
], - "budget": 0.1,
- "time_budget": 0.1,
- "estimate": 0.1
}Updates an existing project
| projectId required | integer <int64> ID of project to update |
Update an existing project
| name | string or null Project name. Required when creating a project. |
object or null An object containing client id. | |
object or null An object containing owner id. Required when creating a project. | |
object or null An object containing owner id. Optional. Only has an effect if the billing owner feature is enabled. If the feature is disabled, billing owner is automatically equal to the project owner. | |
| open | boolean or null Default: true Whether the project is open or not. Defaults to true. |
| closing_comment | string or null A comment explaining why the project was closed. Applicable only when open is set to "false". |
| subject_to_vat | boolean or null Whether the project is subject to VAT or not. Defaults to false. Only in case the instance is set to always choose VAT in its settings, subject_to_vat property is not provided and the project client's country is same as the country of the project owner, defaults to true. |
| settlement | boolean or null Whether the project is a settlement project or not. When a project is saved or updated this field is not considered. |
| billing | string or null Default: "enabled" Enum: "enabled" "internal" "sensitive" Billing status of the project. |
| confidential | boolean or null Default: false Whether the project should be hidden even from high privileged users. Defaults to false. |
| buyer_contact | string or null Name of the buyer contact. |
| buyer_contact_email | string <idn-email> |
Array of objects or null Default: [] An array of project participants. Project owner is automatically added to this array. | |
Array of objects or null (Activity) Default: [] An array of project activities. | |
Array of objects or null Deprecated Deprecated. Alias for labels, which were initially called subjects. Responses will contain the same array under both keys. Requests can set the array using either key. | |
Array of objects or null An array of project labels. | |
| budget | number or null <float> Warnings will be visible when the current matter balance gets close to this limit. |
| time_budget | number or null <float> Warnings will be visible when time spent on this matter reaches this limit. |
| estimate | number or null <float> A warning will show in the project if the total amount filed will exceed this estimate. |
{- "name": "My Project",
- "client": {
- "id": 10
}, - "owner": {
- "id": 10
}, - "billing_owner": {
- "id": 10
}, - "open": true,
- "closing_comment": "Closing comment for my project.",
- "subject_to_vat": true,
- "settlement": true,
- "billing": "enabled",
- "confidential": true,
- "buyer_contact": "John Doe",
- "buyer_contact_email": "john.doe@manor.is",
- "participants": [ ],
- "activities": [ ],
- "subjects": [
- {
- "id": 10
}
], - "labels": [
- {
- "id": 10
}
], - "budget": 0.1,
- "time_budget": 0.1,
- "estimate": 0.1
}Adds a new webhook subscription
Create a new webhook subscription
| type | string or null Enum: "project_saved" "activity_saved" "user_saved" "client_saved" Type of the webhook, controls what actions trigger this webhook. Required when creating a webhook subscription. |
| url | string or null URL the webhook should call when triggered. Required when creating a webhook subscription. |
{- "type": "project_saved",
}{- "id": 10,
- "type": "project_saved",
}Updates an existing webhook subscription
| webhookId required | integer <int64> ID of webhook subscription to update |
Update an existing webhook subscription
| type | string or null Enum: "project_saved" "activity_saved" "user_saved" "client_saved" Type of the webhook, controls what actions trigger this webhook. Required when creating a webhook subscription. |
| url | string or null URL the webhook should call when triggered. Required when creating a webhook subscription. |
{- "type": "project_saved",
}Activities are used to group time entries and other billable items within a project.
Adds a new project activity
| projectId required | integer <int64> ID of project |
Create a new project activity
| name | string or null Activity name. Required when creating a activity. |
| internal | boolean or null Default: false Whether a activity is internal. |
| description | string or null Activity description. |
| project_id | integer or null |
{- "name": "My Activity",
- "internal": false,
- "description": "The description of my activity.",
- "project_id": 10
}{- "id": 10,
- "name": "My Activity",
- "internal": false,
- "description": "The description of my activity.",
- "project_id": 10
}Adds a new project activity
| projectId required | integer <int64> ID of project |
Create a new project activity
| name | string or null Activity name. Required when creating a activity. |
| internal | boolean or null Default: false Whether a activity is internal. |
| description | string or null Activity description. |
| project_id | integer or null |
{- "name": "My Activity",
- "internal": false,
- "description": "The description of my activity.",
- "project_id": 10
}{- "id": 10,
- "name": "My Activity",
- "internal": false,
- "description": "The description of my activity.",
- "project_id": 10
}Updates an existing project activity
| projectId required | integer <int64> ID of project |
| activityId required | integer <int64> ID of activity to update |
Update an existing project activity
| name | string or null Activity name. Required when creating a activity. |
| internal | boolean or null Default: false Whether a activity is internal. |
| description | string or null Activity description. |
| project_id | integer or null |
{- "name": "My Activity",
- "internal": false,
- "description": "The description of my activity.",
- "project_id": 10
}Updates an existing project activity
| projectId required | integer <int64> ID of project |
| activityId required | integer <int64> ID of activity to update |
Update an existing project activity
| name | string or null Activity name. Required when creating a activity. |
| internal | boolean or null Default: false Whether a activity is internal. |
| description | string or null Activity description. |
| project_id | integer or null |
{- "name": "My Activity",
- "internal": false,
- "description": "The description of my activity.",
- "project_id": 10
}Adds a new time entry to a project. To create a time entry, "set_alternative_user_of_times" permission is required. Time entries can only be added for enabled users.
| projectId required | integer <int64> ID of project |
Create a new time entry
| activity_id | integer or null <int64> ID of the activity the time entry belongs to. |
| begins_at | string <date-time> Date and time when the time entry begins in UTC. Required when creating a time entry. Must be in ISO 8601 format. |
| hours | number <float> Duration of the time entry in hours. Required when creating a time entry. |
| billable_hours | number or null <float> Billable hours for the time entry. If not provided, defaults to the value of hours. |
| description | string Description of the time entry. Required when creating a time entry. |
| internal_note | string or null Internal note for the time entry, not visible on invoices. |
| user_id | integer <int64> ID of the user who created the time entry. Required when creating a time entry. User must be enabled. |
| rate_id | integer or null <int64> ID of the rate applied to the time entry. If not provided, the default rate will be used based on the user and matter. |
{- "activity_id": 5,
- "begins_at": "2024-01-15T09:00:00Z",
- "hours": 2.5,
- "billable_hours": 2.5,
- "description": "Meeting with client to discuss project requirements.",
- "internal_note": "Client requested additional features.",
- "user_id": 1,
- "rate_id": 3
}{- "id": 10,
- "matter_id": 10,
- "activity_id": 5,
- "begins_at": "2024-01-15T09:00:00Z",
- "hours": 2.5,
- "billable_hours": 2.5,
- "description": "Meeting with client to discuss project requirements.",
- "internal_note": "Client requested additional features.",
- "user_id": 1,
- "rate_id": 3
}Adds a new project link
| projectId required | integer <int64> ID of project |
Create a new project link
| name | string or null A label displayed as a subtitle above the link. Required when creating a link. |
| text | string or null The clickable link text. |
| url | string or null The link URL. Required when creating a link. |
| description | string or null An optional paragraph displayed below the link. |
| project_id | integer or null |
{- "name": "WorkPoint 365",
- "text": "Open file storage area for this project",
- "description": "WorkPoint 365 Document Management",
- "project_id": 10
}{- "id": 10,
- "name": "WorkPoint 365",
- "text": "Open file storage area for this project",
- "description": "WorkPoint 365 Document Management",
- "project_id": 10
}Updates an existing project link
| projectId required | integer <int64> ID of project |
| linkId required | integer <int64> ID of link to update |
Update an existing project link
| name | string or null A label displayed as a subtitle above the link. Required when creating a link. |
| text | string or null The clickable link text. |
| url | string or null The link URL. Required when creating a link. |
| description | string or null An optional paragraph displayed below the link. |
| project_id | integer or null |
{- "name": "WorkPoint 365",
- "text": "Open file storage area for this project",
- "description": "WorkPoint 365 Document Management",
- "project_id": 10
}Triggers a specific action on a given extension
| extension required | string Name of the extension |
| action required | string Name of the action to execute |
Parameters for the action
{ }{ }Adds a new expense. To create an expense, "set_alternative_user_of_expenses" permission is required.
| projectId required | integer <int64> ID of project |
Create a new expense
| description | string or null Description of the expense. Required when creating an expense. |
| amount | number <float> Amount of the expense. Required when creating an expense. |
| billable_amount | number or null <float> Billable amount of the expense. |
| recipient | string Recipient of the expense. |
| paid_at | string <date-time> Date when the expense was paid. Required when creating an expense. Must be in ISO 8601 format with timezone (e.g., "2024-01-15T09:00:00Z" or "2024-01-15T14:00:00+05:00"). |
| firm_id | integer <int64> ID of the firm the expense belongs to. |
| matter_id | integer <int64> ID of the matter the expense belongs to. |
| activity_id | integer or null <int64> ID of the activity the expense belongs to. |
| vat_rate_id | integer <int64> ID of the VAT rate applied to the expense. Required when creating an expense. |
| paid_in_currency_code | string Currency code of the expense. Required when creating an expense. |
| document_number | string or null Document number of the expense. |
| user_id | integer <int64> ID of the user who created the expense. |
{- "description": "Travel expenses to client meeting.",
- "amount": 150.75,
- "billable_amount": 150.75,
- "recipient": "John Doe",
- "paid_at": "2024-01-15T09:00:00Z",
- "firm_id": 1,
- "matter_id": 10,
- "activity_id": 5,
- "vat_rate_id": 2,
- "paid_in_currency_code": "USD",
- "document_number": "EXP-2024-001",
- "user_id": 1
}{- "id": 10,
- "description": "Travel expenses to client meeting.",
- "amount": 150.75,
- "billable_amount": 150.75,
- "recipient": "John Doe",
- "paid_at": "2024-01-15T09:00:00Z",
- "firm_id": 1,
- "matter_id": 10,
- "activity_id": 5,
- "vat_rate_id": 2,
- "paid_in_currency_code": "USD",
- "document_number": "EXP-2024-001",
- "user_id": 1
}Updates an existing expense
| projectId required | integer <int64> ID of project |
| expenseId required | integer <int64> ID of expense to update |
Update an existing expense
| description | string or null Description of the expense. Required when creating an expense. |
| amount | number <float> Amount of the expense. Required when creating an expense. |
| billable_amount | number or null <float> Billable amount of the expense. |
| recipient | string Recipient of the expense. |
| paid_at | string <date-time> Date when the expense was paid. Required when creating an expense. Must be in ISO 8601 format with timezone (e.g., "2024-01-15T09:00:00Z" or "2024-01-15T14:00:00+05:00"). |
| firm_id | integer <int64> ID of the firm the expense belongs to. |
| matter_id | integer <int64> ID of the matter the expense belongs to. |
| activity_id | integer or null <int64> ID of the activity the expense belongs to. |
| vat_rate_id | integer <int64> ID of the VAT rate applied to the expense. Required when creating an expense. |
| paid_in_currency_code | string Currency code of the expense. Required when creating an expense. |
| document_number | string or null Document number of the expense. |
| user_id | integer <int64> ID of the user who created the expense. |
{- "description": "Travel expenses to client meeting.",
- "amount": 150.75,
- "billable_amount": 150.75,
- "recipient": "John Doe",
- "paid_at": "2024-01-15T09:00:00Z",
- "firm_id": 1,
- "matter_id": 10,
- "activity_id": 5,
- "vat_rate_id": 2,
- "paid_in_currency_code": "USD",
- "document_number": "EXP-2024-001",
- "user_id": 1
}Uploads an attachment file to an existing expense
| projectId required | integer <int64> ID of project |
| expenseId required | integer <int64> ID of expense |
Attachment file to upload
| attachment | string <binary> |