24.05 23.11 23.05 22.11 22.05 21.11 21.05 20.11 20.05 19.11 Development

Koha REST API (1)

Download OpenAPI specification:Download

Introduction

This API is documented in OpenAPI format.

Authentication

The API supports the following authentication mechanisms

  • HTTP Basic authentication
  • OAuth2 (client credentials grant)
  • Cookie-based

Both Basic authentication and the OAuth2 flow, need to be enabled by system preferences.

Errors

The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:

{
  "error": "patron not found"
}

Note: Some routes might offer additional attributes in their error responses but that's subject to change and thus not documented.

Filtering responses

The API allows for some advanced response filtering using a JSON based query syntax. The query can be added to the requests:

  • as a query parameter q=
  • in the request body
  • in a special header x-koha-query

For simple field equality matches we can use { "fieldname": "value" } where the fieldname matches one of the fields as described in the particular endpoints response object.

We can refine that with more complex matching clauses by nesting a the clause into the object; { "fieldname": { "clause": "value" } }.

Available matching clauses include ">", "<", ">=", "<=", "-like", and "-not_like".

We can filter on multiple fields by adding them to the JSON respresentation. Adding at HASH level will result in an 'AND' query, whilst combinding them in an ARRAY wilth result in an 'OR' query: { "field1": 'value2', "field2": "value2" } will filter the response to only those results with both field1 containing value2 AND field2 containing value2 for example.

Examples

The following request would return any patron with firstname "Henry" and lastname "Acevedo";

curl -u koha:koha --request GET 'http://127.0.0.1:8081/api/v1/patrons/' --data-raw '{ "surname": "Acevedo", "firstname": "Henry" }'

The following request would return any patron whose lastname begins with "Ace";

curl -u koha:koha --request GET 'http://127.0.0.1:8081/api/v1/patrons/' --data-raw '{ "surname": { "-like": "Ace%" }'

The following request would return any patron whilse lastname is 'Acevedo' OR 'Bernardo'

curl -u koha:koha --request GET 'http://127.0.0.1:8081/api/v1/patrons/' --data-raw '{ "surname": [ "Acevedo", "Bernardo" ] }'

Special headers

x-koha-library

This optional header should be passed to give your api request a library context; If it is not included in the request, then the request context will default to using your api comsumer's assigned home library.

Article requests

Manage article requests

Cancel article requests

koha-authorization: {"permissions":{"circulate":"circulate_remaining_permissions"}}
path Parameters
article_request_id
required
integer

Article request identifier

query Parameters
cancellation_reason
string

Article request cancellation reason

notes
string

Article request custom cancellation reason

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Cancel patron's article requests

koha-authorization: {"allow-owner":true}
path Parameters
patron_id
required
integer

Internal patron identifier

article_request_id
required
integer

Article request identifier

query Parameters
cancellation_reason
string

Article request cancellation reason

notes
string

Article request custom cancellation reason

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Biblios

Manage bibliographic records

Get biblio

koha-authorization: {"permissions":{"catalogue":"1"}}
path Parameters
biblio_id
required
integer

Record internal identifier

Responses

Response samples

Content type
{
  • "error": "string"
}

Delete biblio

koha-authorization: {"permissions":{"editcatalogue":"edit_catalogue"}}
path Parameters
biblio_id
required
integer

Record internal identifier

Responses

Response samples

Content type
application/json
"string"

Get items for a biblio

koha-authorization: {"permissions":{"catalogue":"1"}}
path Parameters
biblio_id
required
integer

Record internal identifier

query Parameters
_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get valid pickup locations for a biblio

koha-authorization: {"permissions":{"reserveforothers":"place_holds"}}
path Parameters
biblio_id
required
integer

Record internal identifier

query Parameters
patron_id
required
integer

Internal patron identifier

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get biblio (public)

path Parameters
biblio_id
required
integer

Record internal identifier

Responses

Response samples

Content type
No sample

getBiblioItemsPublic

path Parameters
biblio_id
required
integer

Record internal identifier

query Parameters
_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Cashups

Manage cash register cashups

List cashups for the cash register

koha-authorization: {"permissions":{"cash_management":"cashup"}}
path Parameters
cash_register_id
required
integer

Cash register internal identifier

query Parameters
_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get cashup

koha-authorization: {"permissions":{"cash_management":"cashup"}}
path Parameters
cashup_id
required
integer

Cashup internal identifier

Responses

Response samples

Content type
application/json
{
  • "cashup_id": 0,
  • "cash_register_id": 0,
  • "manager_id": 0,
  • "manager": { },
  • "amount": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "summary": { }
}

Checkouts

Manage checkouts

List checkouts for a biblio

koha-authorization: {"permissions":{"circulate":"circulate_remaining_permissions"}}
path Parameters
biblio_id
required
integer

Record internal identifier

query Parameters
_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

q
Array of strings

Query filter sent as a request parameter

checked_in
boolean

By default, current checkouts are returned, when this is true then checked in checkouts are returned as result.

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

List checkouts

koha-authorization: {"permissions":{"circulate":"circulate_remaining_permissions"}}
query Parameters
patron_id
integer

Internal patron identifier

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

q
Array of strings

Query filter sent as a request parameter

checked_in
boolean

By default, current checkouts are returned, when this is true then checked in checkouts are returned as result.

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get checkout

koha-authorization: {"permissions":{"circulate":"circulate_remaining_permissions"}}
path Parameters
checkout_id
required
integer

Internal checkout identifier

Responses

Response samples

Content type
application/json
{
  • "checkout_id": 0,
  • "patron_id": 0,
  • "item_id": 0,
  • "due_date": "2019-08-24T14:15:22Z",
  • "library_id": "string",
  • "issuer_id": 0,
  • "checkin_date": "2019-08-24T14:15:22Z",
  • "last_renewed_date": "2019-08-24T14:15:22Z",
  • "renewals": 0,
  • "unseen_renewals": 0,
  • "auto_renew": true,
  • "auto_renew_error": "string",
  • "timestamp": "string",
  • "checkout_date": "2019-08-24T14:15:22Z",
  • "onsite_checkout": true,
  • "note": "string",
  • "note_date": "2019-08-24",
  • "note_seen": true,
  • "issuer": { },
  • "item": { },
  • "library": { },
  • "patron": { }
}

Renew a checkout

koha-authorization: {"permissions":{"circulate":"circulate_remaining_permissions"}}
path Parameters
checkout_id
required
integer

Internal checkout identifier

query Parameters
seen
integer

Item was seen flag

Responses

Response samples

Content type
application/json
{
  • "checkout_id": 0,
  • "patron_id": 0,
  • "item_id": 0,
  • "due_date": "2019-08-24T14:15:22Z",
  • "library_id": "string",
  • "issuer_id": 0,
  • "checkin_date": "2019-08-24T14:15:22Z",
  • "last_renewed_date": "2019-08-24T14:15:22Z",
  • "renewals": 0,
  • "unseen_renewals": 0,
  • "auto_renew": true,
  • "auto_renew_error": "string",
  • "timestamp": "string",
  • "checkout_date": "2019-08-24T14:15:22Z",
  • "onsite_checkout": true,
  • "note": "string",
  • "note_date": "2019-08-24",
  • "note_seen": true,
  • "issuer": { },
  • "item": { },
  • "library": { },
  • "patron": { }
}

Get renewability for a checkout

koha-authorization: {"permissions":{"circulate":"circulate_remaining_permissions"}}
path Parameters
checkout_id
required
integer

Internal checkout identifier

Responses

Response samples

Content type
application/json
{
  • "allows_renewal": true,
  • "max_renewals": 0,
  • "current_renewals": 0,
  • "unseen_renewals": 0,
  • "error": "string"
}

Circulation rules

Manage circulation rules

Get circulation rules kinds

Responses

Response samples

Content type
application/json
{
  • "property1": {
    },
  • "property2": {
    }
}

Cities

Manage cities

List cities

koha-authorization: {"permissions":{"catalogue":"1"}}
query Parameters
name
string

Case insensative search on city name

state
string

Case insensative search on city state

country
string

Case insensative search on city country

postal_code
string

Case Insensative search on city postal code

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Add city

koha-authorization: {"permissions":{"parameters":"manage_cities"}}
Request Body schema: application/json
required

A JSON object containing informations about the new hold

name
required
string

city name

state
required
string or null

city state

postal_code
required
string or null

city postal code

country
required
string or null

city country

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "state": "string",
  • "postal_code": "string",
  • "country": "string"
}

Response samples

Content type
application/json
{
  • "city_id": 0,
  • "name": "string",
  • "state": "string",
  • "postal_code": "string",
  • "country": "string"
}

Get city

koha-authorization: {"permissions":{"catalogue":"1"}}
path Parameters
city_id
required
integer

City internal identifier

Responses

Response samples

Content type
application/json
{
  • "city_id": 0,
  • "name": "string",
  • "state": "string",
  • "postal_code": "string",
  • "country": "string"
}

Update city

koha-authorization: {"permissions":{"parameters":"manage_cities"}}
path Parameters
city_id
required
integer

City internal identifier

Request Body schema: application/json
required

A city object

name
required
string

city name

state
required
string or null

city state

postal_code
required
string or null

city postal code

country
required
string or null

city country

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "state": "string",
  • "postal_code": "string",
  • "country": "string"
}

Response samples

Content type
application/json
{
  • "city_id": 0,
  • "name": "string",
  • "state": "string",
  • "postal_code": "string",
  • "country": "string"
}

Delete city

koha-authorization: {"permissions":{"parameters":"manage_cities"}}
path Parameters
city_id
required
integer

City internal identifier

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Clubs

Manage patron clubs

Add a club hold

koha-authorization: {"permissions":{"reserveforothers":"1"}}
path Parameters
club_id
required
integer

Internal club identifier

Request Body schema: application/json
required

A JSON object containing informations about the new hold

biblio_id
integer or null

Internal biblio identifier

item_id
integer or null

Internal item identifier

pickup_library_id
required
string

Internal library identifier for the pickup library

expiration_date
string or null <date>

Hold end date

notes
string or null

Notes related to this hold

item_type
string or null

Limit hold on one itemtype (ignored for item-level holds)

default_patron_home
integer

For each patron, set pickup location to patron's home library if possible

Responses

Request samples

Content type
application/json
{
  • "biblio_id": 0,
  • "item_id": 0,
  • "pickup_library_id": "string",
  • "expiration_date": "2019-08-24",
  • "notes": "string",
  • "item_type": "string",
  • "default_patron_home": 0
}

Response samples

Content type
application/json
{
  • "club_hold_id": 0,
  • "club_id": 0,
  • "biblio_id": 0,
  • "item_id": "string",
  • "date_created": "2019-08-24T14:15:22Z"
}

Funds

Manage funds for the acquisitions module

List funds

koha-authorization: {"permissions":{"acquisition":"budget_manage_all"}}
query Parameters
name
string

Case insensitive search on fund name

fund_owner_id
integer

Display only the funds that belongs to the given patron ID

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Holds

Manage holds

List holds

koha-authorization: {"permissions":{"borrowers":"edit_borrowers"}}
query Parameters
hold_id
integer

Internal hold identifier

patron_id
integer

Internal patron identifier

hold_date
string <date>

Hold

biblio_id
integer

Internal biblio identifier

pickup_library_id
string

Internal library identifier for the pickup library

cancellation_date
string <date>

The date the hold was cancelled

notes
string

Notes related to this hold

priority
integer

Where in the queue the patron sits

status
string

Found status

timestamp
string

Time of latest update

item_id
integer

Internal item identifier

waiting_date
string

Date the item was marked as waiting for the patron

expiration_date
string

Date the hold expires

lowest_priority
boolean

Lowest priority

suspended
boolean

Suspended

suspended_until
string

Suspended until

non_priority
boolean

Non priority hold

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Place hold

koha-authorization: {"permissions":{"reserveforothers":"1"}}
header Parameters
x-koha-override
string

Comma-separated list of overrides (valid values: any)

Request Body schema: application/json
required

A JSON object containing informations about the new hold

patron_id
required
integer

Internal patron identifier

biblio_id
integer or null

Internal biblio identifier

hold_date
string or null <date>

The date the hold was placed

item_id
integer or null

Internal item identifier

pickup_library_id
required
string

Internal library identifier for the pickup library

expiration_date
string or null <date>

Hold end date

notes
string or null

Notes related to this hold

item_type
string or null

Limit hold on one itemtype (ignored for item-level holds)

non_priority
boolean or null

Set this hold as non priority

Responses

Request samples

Content type
application/json
{
  • "patron_id": 0,
  • "biblio_id": 0,
  • "hold_date": "2019-08-24",
  • "item_id": 0,
  • "pickup_library_id": "string",
  • "expiration_date": "2019-08-24",
  • "notes": "string",
  • "item_type": "string",
  • "non_priority": true
}

Response samples

Content type
application/json
{
  • "hold_id": 0,
  • "patron_id": 0,
  • "hold_date": "2019-08-24",
  • "biblio_id": 0,
  • "pickup_library_id": "string",
  • "desk_id": 0,
  • "cancellation_date": "2019-08-24",
  • "cancellation_reason": "string",
  • "notes": "string",
  • "priority": 0,
  • "status": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "item_id": "string",
  • "waiting_date": "2019-08-24",
  • "expiration_date": "2019-08-24",
  • "lowest_priority": true,
  • "suspended": true,
  • "suspended_until": "2019-08-24T14:15:22Z",
  • "non_priority": true,
  • "item_type": "string",
  • "item_level": true
}

Update hold

koha-authorization: {"permissions":{"reserveforothers":"1"}}
path Parameters
hold_id
required
integer

Internal hold identifier

Request Body schema: application/json
required

A JSON object containing fields to modify

priority
integer >= 1

Position in waiting queue

pickup_library_id
string

Internal library identifier for the pickup library

suspended_until
string <date-time>

Date until which the hold has been suspended

Responses

Request samples

Content type
application/json
{
  • "priority": 1,
  • "pickup_library_id": "string",
  • "suspended_until": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "hold_id": 0,
  • "patron_id": 0,
  • "hold_date": "2019-08-24",
  • "biblio_id": 0,
  • "pickup_library_id": "string",
  • "desk_id": 0,
  • "cancellation_date": "2019-08-24",
  • "cancellation_reason": "string",
  • "notes": "string",
  • "priority": 0,
  • "status": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "item_id": "string",
  • "waiting_date": "2019-08-24",
  • "expiration_date": "2019-08-24",
  • "lowest_priority": true,
  • "suspended": true,
  • "suspended_until": "2019-08-24T14:15:22Z",
  • "non_priority": true,
  • "item_type": "string",
  • "item_level": true
}

Update hold

This route is being deprecated and will be removed in future releases. Please migrate your project to use PATCH /holds/{hold_id} instead.

koha-authorization: {"permissions":{"reserveforothers":"1"}}
path Parameters
hold_id
required
integer

Internal hold identifier

Request Body schema: application/json
required

A JSON object containing fields to modify

priority
integer >= 1

Position in waiting queue

pickup_library_id
string

Internal library identifier for the pickup library

suspended_until
string <date-time>

Date until which the hold has been suspended

Responses

Request samples

Content type
application/json
{
  • "priority": 1,
  • "pickup_library_id": "string",
  • "suspended_until": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "hold_id": 0,
  • "patron_id": 0,
  • "hold_date": "2019-08-24",
  • "biblio_id": 0,
  • "pickup_library_id": "string",
  • "desk_id": 0,
  • "cancellation_date": "2019-08-24",
  • "cancellation_reason": "string",
  • "notes": "string",
  • "priority": 0,
  • "status": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "item_id": "string",
  • "waiting_date": "2019-08-24",
  • "expiration_date": "2019-08-24",
  • "lowest_priority": true,
  • "suspended": true,
  • "suspended_until": "2019-08-24T14:15:22Z",
  • "non_priority": true,
  • "item_type": "string",
  • "item_level": true
}

Cancel hold

koha-authorization: {"permissions":{"reserveforothers":"1"}}
path Parameters
hold_id
required
integer

Internal hold identifier

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Update priority for the hold

koha-authorization: {"permissions":{"reserveforothers":"modify_holds_priority"}}
path Parameters
hold_id
required
integer

Internal hold identifier

Request Body schema: application/json
required

An integer representing the new priority to be set for the hold

integer

Responses

Request samples

Content type
application/json
0
0

Response samples

Content type
application/json
0
0

Suspend the hold

koha-authorization: {"permissions":{"reserveforothers":"1"}}
path Parameters
hold_id
required
integer

Internal hold identifier

Request Body schema: application/json

A JSON object containing fields to modify

end_date
string <date>

Date the hold suspension expires

Responses

Request samples

Content type
application/json
{
  • "end_date": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "error": "string"
}

Resume hold

koha-authorization: {"permissions":{"reserveforothers":"1"}}
path Parameters
hold_id
required
integer

Internal hold identifier

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Get valid pickup locations for hold

koha-authorization: {"permissions":{"reserveforothers":"place_holds"}}
path Parameters
hold_id
required
integer

Internal hold identifier

query Parameters
_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-override
string

Comma-separated list of overrides (valid values: any)

x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Update pickup location for the hold

Set a new pickup location for the hold

koha-authorization: {"permissions":{"reserveforothers":"place_holds"}}
path Parameters
hold_id
required
integer

Internal hold identifier

Request Body schema: application/json
required

Pickup location

pickup_library_id
string

Internal identifier for the pickup library

Responses

Request samples

Content type
application/json
{
  • "pickup_library_id": "string"
}

Response samples

Content type
application/json
{
  • "pickup_library_id": "string"
}

List holds for a patron

koha-authorization: {"permissions":{"borrowers":"edit_borrowers"}}
path Parameters
patron_id
required
integer

Internal patron identifier

query Parameters
_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

ILL backends

Manage ILL module backends

List ILL backends

koha-authorization: {"permissions":{"ill":"1"}}

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get ILL backend

koha-authorization: {"permissions":{"ill":"1"}}
path Parameters
ill_backend_id
required
string

ILL backend id/name

Responses

Response samples

Content type
application/json
{
  • "ill_backend_id": "string",
  • "capabilities": { }
}

ILL requests

Manage ILL requests

List ILL requests

koha-authorization: {"permissions":{"ill":"1"}}
query Parameters
embed
Array of strings
Items Enum: "patron" "library" "capabilities" "metadata" "requested_partners" "comments" "status_alias"

Additional objects that should be embedded in the response

backend
string

The name of a ILL backend

orderid
string

The order ID of a request

biblionumber
integer

Internal biblio identifier

borrowernumber
integer

Internal patron identifier

completed
string

The date the request was considered completed

completed_formatted
string

The date the request was considered complete formatted

status
string

A full status string e.g. REQREV

cost
number

The quoted cost of the request

price_paid
number

The final cost of the request

medium
string

The medium of the requested item

updated
string

The last updated date of the request

updated_formatted
string

The last updated date of the request formatted

placed
string

The date the request was placed

placed_formatted
string

The date the request was placed formatted

branchcode
string

Library ID

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Items

Manage items

List items

koha-authorization: {"permissions":{"catalogue":"1"}}
query Parameters
external_id
string

Search on the item's barcode

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get item

koha-authorization: {"permissions":{"catalogue":"1"}}
path Parameters
item_id
required
integer

Internal item identifier

Responses

Response samples

Content type
application/json
{
  • "item_id": 0,
  • "biblio_id": 0,
  • "external_id": "string",
  • "acquisition_date": "2019-08-24",
  • "acquisition_source": "string",
  • "home_library_id": "string",
  • "purchase_price": 0,
  • "replacement_price": 0,
  • "replacement_price_date": "2019-08-24",
  • "last_checkout_date": "2019-08-24",
  • "last_seen_date": "2019-08-24",
  • "not_for_loan_status": 0,
  • "damaged_status": 0,
  • "damaged_date": "string",
  • "lost_status": 0,
  • "lost_date": "2019-08-24T14:15:22Z",
  • "withdrawn": 0,
  • "withdrawn_date": "2019-08-24T14:15:22Z",
  • "callnumber": "string",
  • "coded_location_qualifier": "string",
  • "checkouts_count": 0,
  • "renewals_count": 0,
  • "holds_count": 0,
  • "restricted_status": 0,
  • "public_notes": "string",
  • "internal_notes": "string",
  • "holding_library_id": "string",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "location": "string",
  • "permanent_location": "string",
  • "checked_out_date": "2019-08-24",
  • "call_number_source": "string",
  • "call_number_sort": "string",
  • "collection_code": "string",
  • "materials_notes": "string",
  • "uri": "string",
  • "item_type_id": "string",
  • "effective_item_type_id": "string",
  • "extended_subfields": "string",
  • "serial_issue_number": "string",
  • "copy_number": "string",
  • "inventory_number": "string",
  • "new_status": "string",
  • "exclude_from_local_holds_priority": true
}

Get valid pickup locations for an item

koha-authorization: {"permissions":{"reserveforothers":"place_holds"}}
path Parameters
item_id
required
integer

Internal item identifier

query Parameters
patron_id
required
integer

Internal patron identifier

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

getBiblioItemsPublic

path Parameters
biblio_id
required
integer

Record internal identifier

query Parameters
_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Libraries

Manage libraries

List libraries

koha-authorization: {"permissions":{"catalogue":"1"}}
query Parameters
name
string

Case insensitive 'starts-with' search on name

address1
string

Case insensitive 'starts-with' search on address1

address2
string

Case insensitive 'starts-with' search on address2

address3
string

Case insensitive 'starts-with' search on address3

postal_code
string

Case insensitive 'starts-with' search on postal code

city
string

Case insensitive 'starts-with' search on city

state
string

Case insensitive 'starts-with' search on state

country
string

Case insensitive 'starts_with' search on country

phone
string

Case insensitive 'starts_with' search on phone number

fax
string

Case insensitive 'starts_with' search on fax number

email
string

Case insensitive 'starts_with' search on email address

reply_to_email
string

Case insensitive 'starts_with' search on Reply-To email address

return_path_email
string

Case insensitive 'starts_with' search on Return-Path email address

url
string

Case insensitive 'starts_with' search on website URL

ip
string

Case insensitive 'starts_with' search on IP address

notes
string

Case insensitive 'starts_with' search on notes

opac_info
string

Case insensitive 'starts-with' search on OPAC info

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Add library

koha-authorization: {"permissions":{"parameters":"manage_libraries"}}
Request Body schema: application/json
required

A JSON object containing informations about the new library

library_id
required
string (library_id) [ 1 .. 10 ] characters

internally assigned library identifier

name
required
string

Printable name of library

address1
string or null

the first address line of the library

address2
string or null

the second address line of the library

address3
string or null

the third address line of the library

postal_code
string or null

the postal code of the library

city
string or null

the city or province of the library

state
string or null

the reqional state of the library

country
string or null

the county of the library

phone
string or null

the primary phone of the library

fax
string or null

the fax number of the library

email
string or null

the primary email address of the library

illemail
string or null

the ILL staff email address of the library

reply_to_email
string or null

the email to be used as a Reply-To

return_path_email
string or null

the email to be used as Return-Path

url
string or null

the URL for your library or branch's website

ip
string or null

the IP address for your library or branch

notes
string or null

notes related to your library or branch

opac_info
string or null

HTML that displays in OPAC

geolocation
string or null

geolocation of your library

marc_org_code
string or null

MARC Organization Code, see http://www.loc.gov/marc/organizations/orgshome.html, when empty defaults to syspref MARCOrgCode

pickup_location
boolean

If the library can act as a pickup location

public
boolean

If the library is visible to the public

smtp_server
object or null

The library effective SMTP server

needs_override
boolean

If the library needs an override to act as pickup location for a hold

Responses

Request samples

Content type
application/json
{
  • "library_id": "string",
  • "name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "postal_code": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "phone": "string",
  • "fax": "string",
  • "email": "string",
  • "illemail": "string",
  • "reply_to_email": "string",
  • "return_path_email": "string",
  • "url": "string",
  • "ip": "string",
  • "notes": "string",
  • "opac_info": "string",
  • "geolocation": "string",
  • "marc_org_code": "string",
  • "pickup_location": true,
  • "public": true,
  • "smtp_server": { },
  • "needs_override": true
}

Response samples

Content type
application/json
{
  • "library_id": "string",
  • "name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "postal_code": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "phone": "string",
  • "fax": "string",
  • "email": "string",
  • "illemail": "string",
  • "reply_to_email": "string",
  • "return_path_email": "string",
  • "url": "string",
  • "ip": "string",
  • "notes": "string",
  • "opac_info": "string",
  • "geolocation": "string",
  • "marc_org_code": "string",
  • "pickup_location": true,
  • "public": true,
  • "smtp_server": { },
  • "needs_override": true
}

Get library

koha-authorization: {"permissions":{"catalogue":"1"}}
path Parameters
library_id
required
string

Internal library identifier

Responses

Response samples

Content type
application/json
{
  • "library_id": "string",
  • "name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "postal_code": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "phone": "string",
  • "fax": "string",
  • "email": "string",
  • "illemail": "string",
  • "reply_to_email": "string",
  • "return_path_email": "string",
  • "url": "string",
  • "ip": "string",
  • "notes": "string",
  • "opac_info": "string",
  • "geolocation": "string",
  • "marc_org_code": "string",
  • "pickup_location": true,
  • "public": true,
  • "smtp_server": { },
  • "needs_override": true
}

Update library

koha-authorization: {"permissions":{"parameters":"manage_libraries"}}
path Parameters
library_id
required
string

Internal library identifier

Request Body schema: application/json
required

A JSON object containing information on the library

library_id
required
string (library_id) [ 1 .. 10 ] characters

internally assigned library identifier

name
required
string

Printable name of library

address1
string or null

the first address line of the library

address2
string or null

the second address line of the library

address3
string or null

the third address line of the library

postal_code
string or null

the postal code of the library

city
string or null

the city or province of the library

state
string or null

the reqional state of the library

country
string or null

the county of the library

phone
string or null

the primary phone of the library

fax
string or null

the fax number of the library

email
string or null

the primary email address of the library

illemail
string or null

the ILL staff email address of the library

reply_to_email
string or null

the email to be used as a Reply-To

return_path_email
string or null

the email to be used as Return-Path

url
string or null

the URL for your library or branch's website

ip
string or null

the IP address for your library or branch

notes
string or null

notes related to your library or branch

opac_info
string or null

HTML that displays in OPAC

geolocation
string or null

geolocation of your library

marc_org_code
string or null

MARC Organization Code, see http://www.loc.gov/marc/organizations/orgshome.html, when empty defaults to syspref MARCOrgCode

pickup_location
boolean

If the library can act as a pickup location

public
boolean

If the library is visible to the public

smtp_server
object or null

The library effective SMTP server

needs_override
boolean

If the library needs an override to act as pickup location for a hold

Responses

Request samples

Content type
application/json
{
  • "library_id": "string",
  • "name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "postal_code": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "phone": "string",
  • "fax": "string",
  • "email": "string",
  • "illemail": "string",
  • "reply_to_email": "string",
  • "return_path_email": "string",
  • "url": "string",
  • "ip": "string",
  • "notes": "string",
  • "opac_info": "string",
  • "geolocation": "string",
  • "marc_org_code": "string",
  • "pickup_location": true,
  • "public": true,
  • "smtp_server": { },
  • "needs_override": true
}

Response samples

Content type
application/json
{
  • "library_id": "string",
  • "name": "string",
  • "address1": "string",
  • "address2": "string",
  • "address3": "string",
  • "postal_code": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "phone": "string",
  • "fax": "string",
  • "email": "string",
  • "illemail": "string",
  • "reply_to_email": "string",
  • "return_path_email": "string",
  • "url": "string",
  • "ip": "string",
  • "notes": "string",
  • "opac_info": "string",
  • "geolocation": "string",
  • "marc_org_code": "string",
  • "pickup_location": true,
  • "public": true,
  • "smtp_server": { },
  • "needs_override": true
}

Delete library

koha-authorization: {"permissions":{"parameters":"manage_libraries"}}
path Parameters
library_id
required
string

Internal library identifier

Responses

Response samples

Content type
application/json
"string"

List libraries

query Parameters
_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Get library (public)

path Parameters
library_id
required
string

Internal library identifier

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Macros

Manage macros

List advanced editor macros

koha-authorization: {"permissions":{"editcatalogue":"advanced_editor"}}
query Parameters
name
string

Case insensative search on macro name

macro_text
string

Case insensative search on macro text

patron_id
string

Search on internal patron_id

shared
string

Search on shared macros

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Add advanced editor macros

koha-authorization: {"permissions":{"editcatalogue":"advanced_editor"}}
Request Body schema: application/json
required

A JSON object containing informations about the new macro

name
required
string

macro name

macro_text
required
string or null

macro text

patron_id
required
integer or null

borrower number

shared
required
boolean or null

is macro shared

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Response samples

Content type
application/json
{
  • "macro_id": 0,
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Get advanced editor macro

koha-authorization: {"permissions":{"editcatalogue":"advanced_editor"}}
path Parameters
advancededitormacro_id
required
integer

Advanced editor macro internal identifier

Responses

Response samples

Content type
application/json
{
  • "macro_id": 0,
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Update advanced editor macro

koha-authorization: {"permissions":{"editcatalogue":"advanced_editor"}}
path Parameters
advancededitormacro_id
required
integer

Advanced editor macro internal identifier

Request Body schema: application/json
required

An advanced editor macro object

name
required
string

macro name

macro_text
required
string or null

macro text

patron_id
required
integer or null

borrower number

shared
required
boolean or null

is macro shared

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Response samples

Content type
application/json
{
  • "macro_id": 0,
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Delete advanced editor macro

koha-authorization: {"permissions":{"editcatalogue":"advanced_editor"}}
path Parameters
advancededitormacro_id
required
integer

Advanced editor macro internal identifier

Responses

Response samples

Content type
application/json
"string"

Add shared advanced editor macros

koha-authorization: {"permissions":{"editcatalogue":{"advanced_editor":1,"create_shared_macros":1}}}
Request Body schema: application/json
required

A JSON object containing informations about the new macro

name
required
string

macro name

macro_text
required
string or null

macro text

patron_id
required
integer or null

borrower number

shared
required
boolean or null

is macro shared

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Response samples

Content type
application/json
{
  • "macro_id": 0,
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Get shared advanced editor macro

koha-authorization: {"permissions":{"editcatalogue":"advanced_editor"}}
path Parameters
advancededitormacro_id
required
integer

Advanced editor macro internal identifier

Responses

Response samples

Content type
application/json
{
  • "macro_id": 0,
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Update shared advanced editor macro

koha-authorization: {"permissions":{"editcatalogue":{"advanced_editor":1,"create_shared_macros":1}}}
path Parameters
advancededitormacro_id
required
integer

Advanced editor macro internal identifier

Request Body schema: application/json
required

An advanced editor macro object

name
required
string

macro name

macro_text
required
string or null

macro text

patron_id
required
integer or null

borrower number

shared
required
boolean or null

is macro shared

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Response samples

Content type
application/json
{
  • "macro_id": 0,
  • "name": "string",
  • "macro_text": "string",
  • "patron_id": 0,
  • "shared": true
}

Delete shared advanced editor macro

koha-authorization: {"permissions":{"editcatalogue":{"advanced_editor":1,"delete_shared_macros":1}}}
path Parameters
advancededitormacro_id
required
integer

Advanced editor macro internal identifier

Responses

Response samples

Content type
application/json
"string"

Orders

Manage acquisition orders

List orders

koha-authorization: {"permissions":{"acquisition":["order_manage","order_manage_all"]}}
query Parameters
biblio_id
integer

Identifier for a linked bibliographic record

basket_id
integer

Identifier for a linked acquisition basket

fund_id
integer

Identifier for the fund the order goes against

status
string

Current status for the order. Can be 'new', 'ordered', 'partial', 'complete' or 'cancelled'

only_active
boolean

If only active orders should be listed

_match
string
Enum: "contains" "exact" "starts_with" "ends_with"

Matching criteria

_order_by
Array of strings

Sorting criteria

_page
integer

Page number, for paginated object listing

_per_page
integer

Page size, for paginated object listing

q
Array of strings

Query filter sent as a request parameter

header Parameters
x-koha-query
string

Query filter sent as a request header

Request Body schema: application/json

Query filter sent through request's body

One of
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
[
  • {
    }
]

Add order

koha-authorization: {"permissions":{"acquisition":"order_manage"}}
Request Body schema: application/json
required

A JSON object representing an order

order_id
integer

Internally assigned order identifier

biblio_id
integer or null

Identifier for the linked bibliographic record

created_by
integer or null

Interal patron identifier of the order line creator

entry_date
string or null <date>

Date the bib was added to the basket

quantity
integer or null

Ordered quantity

currency
string or null

Currency used for the purchase

list_price
number or null

Vendor price for the line item

replacement_price
number or null

Replacement cost for this item

date_received
string or null <date>

Date the order was received

invoice_id
integer or null

Id of the order invoice

shipping_cost
number or null

Shipping cost

unit_price
number or null

The actual cost entered when receiving this line item

unit_price_tax_excluded
number or null

Unit price excluding tax (on receiving)

unit_price_tax_included
number or null

Unit price including tax (on receiving)

quantity_received
integer

Quantity received so far

cancellation_date
string or null <date>

Date the line item was deleted

cancellation_reason
string or null

Reason of cancellation

internal_note
string or null

Notes related to this order line, made for staff

vendor_note
string or null

Notes related to this order line, made for vendor

basket_id
integer or null

Basket this order is linked to

timestamp
string <date-time>

Date and time this order line was last modified

rrp
number or null

Retail cost for this item

rrp_tax_excluded
number or null

Replacement cost for this item (tax excluded)

rrp_tax_included
number or null

Replacement cost for this item (tax included)

ecost
number or null

Effective cost

ecost_tax_excluded
number or null

Effective cost (tax excluded)

ecost_tax_included
number or null

Effective cost (tax included)

tax_rate_on_ordering
number or null

Tax rate on ordering (%)

tax_rate_on_receiving
number or null

Tax rate on receiving (%)

tax_value_on_ordering
number or null

Tax value on ordering

tax_value_on_receiving
number or null

Tax value on receiving

discount_rate
number or null

Discount rate

fund_id
integer

Internal identifier for the fund this order goes against

statistics_1
string or null

Statistical field

statistics_2
string or null

Statistical field (2)

statistics_1_authcat
string or null

Statistical category for this order

statistics_2_authcat
string or null

Statistical category for this order (2)

uncertain_price
boolean

If this price was uncertain

claims_count
integer

Generated claim letters count

last_claim_date
string or null <date>

Last date a claim letter was generated

subscription_id
integer or null

Subscription ID linking the order to a subscription

parent_order_id
integer or null

Order ID of parent order line if exists

status
string
Enum: "new" "ordered" "partial" "complete" "cancelled"

The current order status

basket
object or null
biblio
object or null
current_item_level_holds_count
integer

Current holds count for associated items

fund
object or null
invoice
object or null
items
Array of any
subscription
object or null

Responses

Request samples

Content type
application/json
{
  • "order_id": 0,
  • "biblio_id": 0,
  • "created_by": 0,
  • "entry_date": "2019-08-24",
  • "quantity": 0,
  • "currency": "string",
  • "list_price": 0,
  • "replacement_price": 0,
  • "date_received": "2019-08-24",
  • "invoice_id": 0,
  • "shipping_cost": 0,
  • "unit_price": 0,
  • "unit_price_tax_excluded": 0,
  • "unit_price_tax_included": 0,
  • "quantity_received": 0,
  • "cancellation_date": "2019-08-24",
  • "cancellation_reason": "string",
  • "internal_note": "string",
  • "vendor_note": "string",
  • "basket_id": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "rrp": 0,
  • "rrp_tax_excluded": 0,
  • "rrp_tax_included": 0,
  • "ecost": 0,
  • "ecost_tax_excluded": 0,
  • "ecost_tax_included": 0,
  • "tax_rate_on_ordering": 0,
  • "tax_rate_on_receiving": 0,
  • "tax_value_on_ordering": 0,
  • "tax_value_on_receiving": 0,
  • "discount_rate": 0,
  • "fund_id": 0,
  • "statistics_1": "string",
  • "statistics_2": "string",
  • "statistics_1_authcat": "string",
  • "statistics_2_authcat": "string",
  • "uncertain_price": true,
  • "claims_count": 0,
  • "last_claim_date": "2019-08-24",
  • "subscription_id": 0,
  • "parent_order_id": 0,
  • "status": "new",
  • "basket": { },
  • "biblio": { },
  • "current_item_level_holds_count": 0,
  • "fund": { },
  • "invoice": { },
  • "items": [
    ],
  • "subscription": { }
}

Response samples

Content type
application/json
{
  • "order_id": 0,
  • "biblio_id": 0,
  • "created_by": 0,
  • "entry_date": "2019-08-24",
  • "quantity": 0,
  • "currency": "string",
  • "list_price": 0,
  • "replacement_price": 0,
  • "date_received": "2019-08-24",
  • "invoice_id": 0,
  • "shipping_cost": 0,
  • "unit_price": 0,
  • "unit_price_tax_excluded": 0,
  • "unit_price_tax_included": 0,
  • "quantity_received": 0,
  • "cancellation_date": "2019-08-24",
  • "cancellation_reason": "string",
  • "internal_note": "string",
  • "vendor_note": "string",
  • "basket_id": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "rrp": 0,
  • "rrp_tax_excluded": 0,
  • "rrp_tax_included": 0,
  • "ecost": 0,
  • "ecost_tax_excluded": 0,
  • "ecost_tax_included": 0,
  • "tax_rate_on_ordering": 0,
  • "tax_rate_on_receiving": 0,
  • "tax_value_on_ordering": 0,
  • "tax_value_on_receiving": 0,
  • "discount_rate": 0,
  • "fund_id": 0,
  • "statistics_1": "string",
  • "statistics_2": "string",
  • "statistics_1_authcat": "string",
  • "statistics_2_authcat": "string",
  • "uncertain_price": true,
  • "claims_count": 0,
  • "last_claim_date": "2019-08-24",
  • "subscription_id": 0,
  • "parent_order_id": 0,
  • "status": "new",
  • "basket": { },
  • "biblio": { },
  • "current_item_level_holds_count": 0,
  • "fund": { },
  • "invoice": { },
  • "items": [
    ],
  • "subscription": { }
}

Get order

koha-authorization: {"permissions":{"acquisition":"order_manage"}}
path Parameters
order_id
required
integer

Internal order identifier

Responses

Response samples

Content type
application/json
{
  • "order_id": 0,
  • "biblio_id": 0,
  • "created_by": 0,
  • "entry_date": "2019-08-24",
  • "quantity": 0,
  • "currency": "string",
  • "list_price": 0,
  • "replacement_price": 0,
  • "date_received": "2019-08-24",
  • "invoice_id": 0,
  • "shipping_cost": 0,
  • "unit_price": 0,
  • "unit_price_tax_excluded": 0,
  • "unit_price_tax_included": 0,
  • "quantity_received": 0,
  • "cancellation_date": "2019-08-24",
  • "cancellation_reason": "string",
  • "internal_note": "string",
  • "vendor_note": "string",
  • "basket_id": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "rrp": 0,
  • "rrp_tax_excluded": 0,
  • "rrp_tax_included": 0,
  • "ecost": 0,
  • "ecost_tax_excluded": 0,
  • "ecost_tax_included": 0,
  • "tax_rate_on_ordering": 0,
  • "tax_rate_on_receiving": 0,
  • "tax_value_on_ordering": 0,
  • "tax_value_on_receiving": 0,
  • "discount_rate": 0,
  • "fund_id": 0,
  • "statistics_1": "string",
  • "statistics_2": "string",
  • "statistics_1_authcat": "string",
  • "statistics_2_authcat": "string",
  • "uncertain_price": true,
  • "claims_count": 0,
  • "last_claim_date": "2019-08-24",
  • "subscription_id": 0,
  • "parent_order_id": 0,
  • "status": "new",
  • "basket": { },
  • "biblio": { },
  • "current_item_level_holds_count": 0,
  • "fund": { },
  • "invoice": { },
  • "items": [
    ],
  • "subscription": { }
}

Update order

koha-authorization: {"permissions":{"acquisition":"order_manage"}}
path Parameters
order_id
required
integer

Internal order identifier

Request Body schema: application/json
required

A JSON object representing an order

order_id
integer

Internally assigned order identifier

biblio_id
integer or null

Identifier for the linked bibliographic record

created_by
integer or null

Interal patron identifier of the order line creator

entry_date
string or null <date>

Date the bib was added to the basket

quantity
integer or null

Ordered quantity

currency
string or null

Currency used for the purchase

list_price
number or null

Vendor price for the line item

replacement_price
number or null

Replacement cost for this item

date_received
string or null <date>

Date the order was received

invoice_id
integer or null

Id of the order invoice

shipping_cost
number or null

Shipping cost

unit_price
number or null

The actual cost entered when receiving this line item

unit_price_tax_excluded
number or null

Unit price excluding tax (on receiving)

unit_price_tax_included
number or null

Unit price including tax (on receiving)

quantity_received
integer

Quantity received so far

cancellation_date
string or null <date>

Date the line item was deleted

cancellation_reason
string or null

Reason of cancellation

internal_note
string or null

Notes related to this order line, made for staff

vendor_note
string or null

Notes related to this order line, made for vendor

basket_id
integer or null

Basket this order is linked to

timestamp
string <date-time>

Date and time this order line was last modified

rrp
number or null

Retail cost for this item

rrp_tax_excluded
number or null

Replacement cost for this item (tax excluded)

rrp_tax_included
number or null

Replacement cost for this item (tax included)

ecost
number or null

Effective cost

ecost_tax_excluded
number or null

Effective cost (tax excluded)

ecost_tax_included
number or null

Effective cost (tax included)

tax_rate_on_ordering
number or null

Tax rate on ordering (%)

tax_rate_on_receiving
number or null

Tax rate on receiving (%)

tax_value_on_ordering
number or null

Tax value on ordering

tax_value_on_receiving
number or null

Tax value on receiving

discount_rate
number or null

Discount rate

fund_id
integer

Internal identifier for the fund this order goes against

statistics_1
string or null

Statistical field

statistics_2
string or null

Statistical field (2)

statistics_1_authcat
string or null

Statistical category for this order

statistics_2_authcat
string or null

Statistical category for this order (2)

uncertain_price
boolean

If this price was uncertain

claims_count
integer

Generated claim letters count

last_claim_date
string or null <date>

Last date a claim letter was generated

subscription_id
integer or null

Subscription ID linking the order to a subscription

parent_order_id
integer or null

Order ID of parent order line if exists

status
string
Enum: "new" "ordered" "partial" "complete" "cancelled"

The current order status

basket
object or null
biblio
object or null
current_item_level_holds_count
integer

Current holds count for associated items

fund
object or null
invoice
object or null
items
Array of any
subscription
object or null

Responses

Request samples

Content type
application/json
{
  • "order_id": 0,
  • "biblio_id": 0,
  • "created_by": 0,
  • "entry_date": "2019-08-24",
  • "quantity": 0,
  • "currency": "string",
  • "list_price": 0,
  • "replacement_price": 0,
  • "date_received": "2019-08-24",
  • "invoice_id": 0,
  • "shipping_cost": 0,
  • "unit_price": 0,
  • "unit_price_tax_excluded": 0,
  • "unit_price_tax_included": 0,
  • "quantity_received": 0,
  • "cancellation_date": "2019-08-24",
  • "cancellation_reason": "string",
  • "internal_note": "string",
  • "vendor_note": "string",
  • "basket_id": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "rrp": 0,
  • "rrp_tax_excluded": 0,
  • "rrp_tax_included": 0,
  • "ecost": 0,
  • "ecost_tax_excluded": 0,
  • "ecost_tax_included": 0,
  • "tax_rate_on_ordering": 0,
  • "tax_rate_on_receiving": 0,
  • "tax_value_on_ordering": 0,
  • "tax_value_on_receiving": 0,
  • "discount_rate": 0,
  • "fund_id": 0,
  • "statistics_1": "string",
  • "statistics_2": "string",
  • "statistics_1_authcat": "string",
  • "statistics_2_authcat": "string",
  • "uncertain_price": true,
  • "claims_count": 0,
  • "last_claim_date": "2019-08-24",
  • "subscription_id": 0,
  • "parent_order_id": 0,
  • "status": "new",
  • "basket": { },
  • "biblio": { },
  • "current_item_level_holds_count": 0,
  • "fund": { },
  • "invoice": { },
  • "items": [
    ],
  • "subscription": { }
}

Response samples

Content type
application/json
{
  • "order_id": 0,
  • "biblio_id": 0,
  • "created_by": 0,
  • "entry_date": "2019-08-24",
  • "quantity": 0,
  • "currency": "string",
  • "list_price": 0,
  • "replacement_price": 0,
  • "date_received": "2019-08-24",
  • "invoice_id": 0,
  • "shipping_cost": 0,
  • "unit_price": 0,
  • "unit_price_tax_excluded": 0,
  • "unit_price_tax_included": 0,
  • "quantity_received": 0,
  • "cancellation_date": "2019-08-24",
  • "cancellation_reason": "string",
  • "internal_note": "string",
  • "vendor_note": "string",
  • "basket_id": 0,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "rrp": 0,
  • "rrp_tax_excluded": 0,
  • "rrp_tax_included": 0,
  • "ecost": 0,
  • "ecost_tax_excluded": 0,
  • "ecost_tax_included": 0,
  • "tax_rate_on_ordering": 0,
  • "tax_rate_on_receiving": 0,
  • "tax_value_on_ordering": 0,
  • "tax_value_on_receiving": 0,
  • "discount_rate": 0,
  • "fund_id": 0,
  • "statistics_1": "string",
  • "statistics_2": "string",
  • "statistics_1_authcat": "string",
  • "statistics_2_authcat": "string",
  • "uncertain_price": true,
  • "claims_count": 0,
  • "last_claim_date": "2019-08-24",
  • "subscription_id": 0,
  • "parent_order_id": 0,
  • "status": "new",
  • "basket": { },
  • "biblio": { },
  • "current_item_level_holds_count": 0,
  • "fund": { },
  • "invoice": { },
  • "items": [
    ],
  • "subscription": { }
}

Delete order

koha-authorization: {"permissions":{"acquisition":"order_manage"}}
path Parameters
order_id
required
integer

Internal order identifier

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

OAuth

Handle OAuth flows

Get access token

Request Body schema: application/x-www-form-urlencoded
required
grant_type
required
string

grant type (client_credentials)

client_id
string

client id

client_secret
string

client secret

Responses

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "token_type": "string",
  • "expires_in": 0
}

Patrons

Manage patrons

List patrons

koha-authorization: {"permissions":{"borrowers":"1"}}
query Parameters
patron_id
string

Search on patron_id

cardnumber
string

Case insensitive search on cardnumber

surname
string

Case insensitive search on surname

firstname
string

Case insensitive search on firstname

title
string

Case insensitive search on title

other_name
string

Case insensitive search on othernames

initials
string

Case insensitive search on initials

street_number
string

Case insensitive search on streetnumber

street_type
string

Case insensitive search on streettype

address
string

Case insensitive search on address

address2
string

Case insensitive search on address2

city
string

Case insensitive search on city

state
string

Case insensitive search on state

postal_code
</