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

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.

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 (Segment)
Default: []

An array of project segments.

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": [ ],
  • "segments": [ ],
  • "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": [ ],
  • "segments": [ ],
  • "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": [ ],
  • "segments": [ ],
  • "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 (Segment)
Default: []

An array of project segments.

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": [ ],
  • "segments": [ ],
  • "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" "segment_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" "segment_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 segments

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

Create segment for project

Adds a new project segment

Authorizations:
BearerAuth
path Parameters
projectId
required
integer <int64>

ID of project

Request Body schema: application/json

Create a new project segment

name
string or null

Segment name. Required when creating a segment.

internal
boolean or null
Default: false

Whether a segment is internal.

description
string or null

Segment description.

project_id
integer or null

Responses

Request samples

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

Response samples

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

Update project segment

Updates an existing project segment

Authorizations:
BearerAuth
path Parameters
projectId
required
integer <int64>

ID of project

segmentId
required
integer <int64>

ID of segment to update

Request Body schema: application/json

Update an existing project segment

name
string or null

Segment name. Required when creating a segment.

internal
boolean or null
Default: false

Whether a segment is internal.

description
string or null

Segment description.

project_id
integer or null

Responses

Request samples

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