Manor API (1.0.3)

Download OpenAPI specification:Download

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.

Users

Users (employees) of the Manor instance.

Get user

Retrieves a single user

Authorizations:
BearerAuth
path Parameters
userId
required
integer <int64>

ID of user to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": 10,
  • "email": "john@example.com",
  • "name": "John Doe"
}

Update user

Updates an existing user

Authorizations:
BearerAuth
path Parameters
userId
required
integer <int64>

ID of user to update

Request Body schema: application/json

Update an existing user

email
string or null <idn-email>

Email of the user. Required when creating a new user.

name
string or null

Name of the user. Required when creating a new user.

Responses

Request samples

Content type
application/json
{
  • "email": "john@example.com",
  • "name": "John Doe"
}

Get user by email

Retrieves a single user

Authorizations:
BearerAuth
path Parameters
email
required
string

Email of user to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": 10,
  • "email": "john@example.com",
  • "name": "John Doe"
}

Clients

Clients (customers) that projects are created for. These are also payers of invoices.

Create client

Adds a new client

Authorizations:
BearerAuth
Request Body schema: application/json

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.

email
string or null

Email address of the client or a comma separated list of email addresses.

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..

Responses

Request samples

Content type
application/json
{
  • "name": "John Doe",
  • "national_id": "1234567890",
  • "address": {
    },
  • "billing_address": {
    },
  • "email": "example@manor.is,another.example@manor.is",
  • "currency_code": "USD",
  • "special_attention": false
}

Response samples

Content type
application/json
{
  • "id": 10,
  • "name": "John Doe",
  • "national_id": "1234567890",
  • "address": {
    },
  • "billing_address": {
    },
  • "email": "example@manor.is,another.example@manor.is",
  • "currency_code": "USD",
  • "special_attention": false
}

Get client

Retrieves a single client

Authorizations:
BearerAuth
path Parameters
clientId
required
integer <int64>

ID of client to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": 10,
  • "name": "John Doe",
  • "national_id": "1234567890",
  • "address": {
    },
  • "billing_address": {
    },
  • "email": "example@manor.is,another.example@manor.is",
  • "currency_code": "USD",
  • "special_attention": false
}

Update client

Updates an existing client

Authorizations:
BearerAuth
path Parameters
clientId
required
integer <int64>

ID of client to update

Request Body schema: application/json

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.

email
string or null

Email address of the client or a comma separated list of email addresses.

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..

Responses

Request samples

Content type
application/json
{
  • "name": "John Doe",
  • "national_id": "1234567890",
  • "address": {
    },
  • "billing_address": {
    },
  • "email": "example@manor.is,another.example@manor.is",
  • "currency_code": "USD",
  • "special_attention": false
}

Delete client

Deletes an existing client

Authorizations:
BearerAuth
path Parameters
clientId
required
integer <int64>

ID of client to delete

Responses

Get client by national ID

Retrieves a single client by national ID

Authorizations:
BearerAuth
path Parameters
nationalId
required
string

National ID of client to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": 10,
  • "name": "John Doe",
  • "national_id": "1234567890",
  • "address": {
    },
  • "billing_address": {
    },
  • "email": "example@manor.is,another.example@manor.is",
  • "currency_code": "USD",
  • "special_attention": false
}

Projects

Projects, formerly known as matters. These are the contain time entries and other billables items.

List projects

Returns a list of projects

Authorizations:
BearerAuth
query Parameters
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

Responses

Response samples

Content type
application/json
{}

Create project

Adds a new project

Authorizations:
BearerAuth
Request Body schema: application/json

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.

open
boolean or null
Default: true

Whether the project is open or not. Defaults to true.

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" "suspended" "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

An array of project subjects.

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.

Responses

Request samples

Content type
application/json
{
  • "name": "My Project",
  • "client": {
    },
  • "owner": {
    },
  • "open": true,
  • "subject_to_vat": true,
  • "settlement": true,
  • "billing": "enabled",
  • "confidential": true,
  • "buyer_contact": "John Doe",
  • "buyer_contact_email": "john.doe@manor.is",
  • "participants": [ ],
  • "activities": [ ],
  • "subjects": [
    ],
  • "budget": 0,
  • "time_budget": 0,
  • "estimate": 0
}

Response samples

Content type
application/json
{
  • "id": 10,
  • "identifier": "my-external-identifier",
  • "name": "My Project",
  • "client": {
    },
  • "owner": {
    },
  • "open": true,
  • "subject_to_vat": true,
  • "settlement": true,
  • "billing": "enabled",
  • "confidential": true,
  • "buyer_contact": "John Doe",
  • "buyer_contact_email": "john.doe@manor.is",
  • "participants": [ ],
  • "activities": [ ],
  • "subjects": [
    ],
  • "budget": 0,
  • "time_budget": 0,
  • "estimate": 0
}

Get project

Retrieves a single project

Authorizations:
BearerAuth
path Parameters
projectId
required
integer <int64>

ID of project to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": 10,
  • "identifier": "my-external-identifier",
  • "name": "My Project",
  • "client": {
    },
  • "owner": {
    },
  • "open": true,
  • "subject_to_vat": true,
  • "settlement": true,
  • "billing": "enabled",
  • "confidential": true,
  • "buyer_contact": "John Doe",
  • "buyer_contact_email": "john.doe@manor.is",
  • "participants": [ ],
  • "activities": [ ],
  • "subjects": [
    ],
  • "budget": 0,
  • "time_budget": 0,
  • "estimate": 0
}

Update project

Updates an existing project

Authorizations:
BearerAuth
path Parameters
projectId
required
integer <int64>

ID of project to update

Request Body schema: application/json

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.

open
boolean or null
Default: true

Whether the project is open or not. Defaults to true.

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" "suspended" "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

An array of project subjects.

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.

Responses

Request samples

Content type
application/json
{
  • "name": "My Project",
  • "client": {
    },
  • "owner": {
    },
  • "open": true,
  • "subject_to_vat": true,
  • "settlement": true,
  • "billing": "enabled",
  • "confidential": true,
  • "buyer_contact": "John Doe",
  • "buyer_contact_email": "john.doe@manor.is",
  • "participants": [ ],
  • "activities": [ ],
  • "subjects": [
    ],
  • "budget": 0,
  • "time_budget": 0,
  • "estimate": 0
}

Webhooks subscriptions

Set up callback URLs that handle events originating in Manor.

Create webhook subscription

Adds a new webhook subscription

Authorizations:
BearerAuth
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Get webhook subscription

Retrieves a single webhook subscription

Authorizations:
BearerAuth
path Parameters
webhookId
required
integer <int64>

ID of the webhook subscription to retrieve

Responses

Response samples

Content type
application/json
{}

Update webhook subscription

Updates an existing webhook subscription

Authorizations:
BearerAuth
path Parameters
webhookId
required
integer <int64>

ID of webhook subscription to update

Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{}

Delete webhook subscription

Deletes an existing webhook subscription

Authorizations:
BearerAuth
path Parameters
webhookId
required
integer <int64>

ID of webhook subscription to delete

Responses

Utility

Utility calls, not related to any particular database models.

Ping

Returns a simple message to test connectivity to the API.

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{ }

Project activities

Activities are used to group time entries and other billable items within a project.

Create activity for project

Adds a new project activity

Authorizations:
BearerAuth
path Parameters
projectId
required
integer <int64>

ID of project

Request Body schema: application/json

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

Responses

Request samples

Content type
application/json
{
  • "name": "My Activity",
  • "internal": false,
  • "description": "The description of my activity.",
  • "project_id": 10
}

Response samples

Content type
application/json
{
  • "id": 10,
  • "name": "My Activity",
  • "internal": false,
  • "description": "The description of my activity.",
  • "project_id": 10
}

Deprecated. Create activity for project Deprecated

Adds a new project activity

Authorizations:
BearerAuth
path Parameters
projectId
required
integer <int64>

ID of project

Request Body schema: application/json

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

Responses

Request samples

Content type
application/json
{
  • "name": "My Activity",
  • "internal": false,
  • "description": "The description of my activity.",
  • "project_id": 10
}

Response samples

Content type
application/json
{
  • "id": 10,
  • "name": "My Activity",
  • "internal": false,
  • "description": "The description of my activity.",
  • "project_id": 10
}

Update project activity

Updates an existing project activity

Authorizations:
BearerAuth
path Parameters
projectId
required
integer <int64>

ID of project

activityId
required
integer <int64>

ID of activity to update

Request Body schema: application/json

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

Responses

Request samples

Content type
application/json
{
  • "name": "My Activity",
  • "internal": false,
  • "description": "The description of my activity.",
  • "project_id": 10
}

Deprecated. Update project activity Deprecated

Updates an existing project activity

Authorizations:
BearerAuth
path Parameters
projectId
required
integer <int64>

ID of project

activityId
required
integer <int64>

ID of activity to update

Request Body schema: application/json

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

Responses

Request samples

Content type
application/json
{
  • "name": "My Activity",
  • "internal": false,
  • "description": "The description of my activity.",
  • "project_id": 10
}