Bug 31799: Add REST endpoint to modify a biblio's item
[koha.git] / api / v1 / swagger / swagger.yaml
1 ---
2 swagger: "2.0"
3 basePath: /api/v1
4 definitions:
5   account_line:
6     $ref: ./definitions/account_line.yaml
7   advancededitormacro:
8     $ref: ./definitions/advancededitormacro.yaml
9   allows_renewal:
10     $ref: ./definitions/allows_renewal.yaml
11   authorised_value:
12     $ref: ./definitions/authorised_value.yaml
13   authorised_value_category:
14     $ref: ./definitions/authorised_value_category.yaml
15   identity_provider:
16     "$ref": ./definitions/identity_provider.yaml
17   identity_provider_domain:
18     "$ref": ./definitions/identity_provider_domain.yaml
19   basket:
20     $ref: ./definitions/basket.yaml
21   bundle_link:
22     $ref: ./definitions/bundle_link.yaml
23   cashup:
24     $ref: ./definitions/cashup.yaml
25   checkout:
26     $ref: ./definitions/checkout.yaml
27   checkouts:
28     $ref: ./definitions/checkouts.yaml
29   circ-rule-kind:
30     $ref: ./definitions/circ-rule-kind.yaml
31   city:
32     $ref: ./definitions/city.yaml
33   credit:
34     $ref: ./definitions/credit.yaml
35   debit:
36     $ref: ./definitions/debit.yaml
37   erm_agreement:
38     $ref: ./definitions/erm_agreement.yaml
39   erm_eholdings_title:
40     $ref: ./definitions/erm_eholdings_title.yaml
41   erm_eholdings_package:
42     $ref: ./definitions/erm_eholdings_package.yaml
43   erm_eholdings_resource:
44     $ref: ./definitions/erm_eholdings_resource.yaml
45   erm_license:
46     $ref: ./definitions/erm_license.yaml
47   error:
48     $ref: ./definitions/error.yaml
49   fund:
50     $ref: ./definitions/fund.yaml
51   hold:
52     $ref: ./definitions/hold.yaml
53   holds:
54     $ref: ./definitions/holds.yaml
55   ill_backend:
56     $ref: ./definitions/ill_backend.yaml
57   ill_backends:
58     $ref: ./definitions/ill_backends.yaml
59   ill_status:
60     $ref: ./definitions/ill_status.yaml
61   ill_request:
62     $ref: ./definitions/ill_request.yaml
63   import_batch_profile:
64     $ref: ./definitions/import_batch_profile.yaml
65   import_batch_profiles:
66     $ref: ./definitions/import_batch_profiles.yaml
67   import_record_match:
68     $ref: ./definitions/import_record_match.yaml
69   invoice:
70     $ref: ./definitions/invoice.yaml
71   item:
72     $ref: ./definitions/item.yaml
73   item_group:
74     $ref: ./definitions/item_group.yaml
75   job:
76     $ref: ./definitions/job.yaml
77   library:
78     $ref: ./definitions/library.yaml
79   order:
80     $ref: ./definitions/order.yaml
81   patron:
82     $ref: ./definitions/patron.yaml
83   patron_account_credit:
84     $ref: ./definitions/patron_account_credit.yaml
85   patron_balance:
86     $ref: ./definitions/patron_balance.yaml
87   patron_extended_attribute:
88     $ref: ./definitions/patron_extended_attribute.yaml
89   quote:
90     $ref: ./definitions/quote.yaml
91   renewal:
92     $ref: ./definitions/renewal.yaml
93   renewals:
94     $ref: ./definitions/renewals.yaml
95   return_claim:
96     $ref: ./definitions/return_claim.yaml
97   search_filter:
98     $ref: ./definitions/search_filter.yaml
99   smtp_server:
100     $ref: ./definitions/smtp_server.yaml
101   suggestion:
102     $ref: ./definitions/suggestion.yaml
103   ticket:
104     $ref: ./definitions/ticket.yaml
105   ticket_update:
106     $ref: ./definitions/ticket_update.yaml
107   transfer_limit:
108     $ref: ./definitions/transfer_limit.yaml
109   vendor:
110     $ref: ./definitions/vendor.yaml
111 paths:
112   /acquisitions/baskets/managers:
113     $ref: paths/acquisitions_baskets.yaml#/~1acquisitions~1baskets~1managers
114   /acquisitions/funds:
115     $ref: ./paths/acquisitions_funds.yaml#/~1acquisitions~1funds
116   /acquisitions/funds/owners:
117     $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1owners
118   /acquisitions/funds/users:
119     $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1users
120   /acquisitions/orders:
121     $ref: ./paths/acquisitions_orders.yaml#/~1acquisitions~1orders
122   "/acquisitions/orders/{order_id}":
123     $ref: "./paths/acquisitions_orders.yaml#/~1acquisitions~1orders~1{order_id}"
124   /acquisitions/vendors:
125     $ref: ./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors
126   "/acquisitions/vendors/{vendor_id}":
127     $ref: "./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors~1{vendor_id}"
128   /advanced_editor/macros:
129     $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros
130   /advanced_editor/macros/shared:
131     $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared
132   /search_filters:
133     $ref: ./paths/search_filters.yaml#/~1search_filters
134   "/search_filters/{search_filter_id}":
135     $ref: "./paths/search_filters.yaml#/~1search_filters~1{search_filter_id}"
136   "/advanced_editor/macros/shared/{advancededitormacro_id}":
137     $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared~1{advancededitormacro_id}"
138   "/advanced_editor/macros/{advancededitormacro_id}":
139     $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1{advancededitormacro_id}"
140   "/article_requests/{article_request_id}":
141     $ref: "./paths/article_requests.yaml#/~1article_requests~1{article_request_id}"
142   /auth/otp/token_delivery:
143     $ref: paths/auth.yaml#/~1auth~1otp~1token_delivery
144   "/auth/password/validation":
145     $ref: "./paths/auth.yaml#/~1auth~1password~1validation"
146   /auth/two-factor/registration:
147     $ref: paths/auth.yaml#/~1auth~1two-factor~1registration
148   /auth/two-factor/registration/verification:
149     $ref: paths/auth.yaml#/~1auth~1two-factor~1registration~1verification
150   /auth/identity_providers:
151     $ref: paths/auth.yaml#/~1auth~1identity_providers
152   "/auth/identity_providers/{identity_provider_id}":
153     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}
154   "/auth/identity_providers/{identity_provider_id}/domains":
155     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}~1domains
156   "/auth/identity_providers/{identity_provider_id}/domains/{identity_provider_domain_id}":
157     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}~1domains~1{identity_provider_domain_id}
158   /authorised_value_categories:
159     $ref: paths/authorised_value_categories.yaml#/~1authorised_value_categories
160   "/authorised_value_categories/{authorised_value_category_name}/authorised_values":
161     $ref: "./paths/authorised_values.yaml#/~1authorised_value_categories~1{authorised_value_category_name}~1authorised_values"
162   "/authorities":
163     $ref: paths/authorities.yaml#/~1authorities
164   "/authorities/{authority_id}":
165     $ref: paths/authorities.yaml#/~1authorities~1{authority_id}
166   "/biblios":
167     $ref: "./paths/biblios.yaml#/~1biblios"
168   "/biblios/{biblio_id}":
169     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}"
170   "/biblios/{biblio_id}/checkouts":
171     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1checkouts"
172   "/biblios/{biblio_id}/items":
173     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items"
174   "/biblios/{biblio_id}/items/{item_id}":
175     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items~1{item_id}"
176   "/biblios/{biblio_id}/pickup_locations":
177     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1pickup_locations"
178   "/biblios/{biblio_id}/item_groups":
179     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups"
180   "/biblios/{biblio_id}/item_groups/{item_group_id}":
181     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}"
182   "/biblios/{biblio_id}/item_groups/{item_group_id}/items":
183     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}~1items"
184   "/biblios/{biblio_id}/item_groups/{item_group_id}/items/{item_id}":
185     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}~1items~1{item_id}"
186   "/cash_registers/{cash_register_id}/cashups":
187     $ref: "./paths/cash_registers.yaml#/~1cash_registers~1{cash_register_id}~1cashups"
188   "/cashups/{cashup_id}":
189     $ref: "./paths/cash_registers.yaml#/~1cashups~1{cashup_id}"
190   /checkouts:
191     $ref: ./paths/checkouts.yaml#/~1checkouts
192   "/checkouts/{checkout_id}":
193     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}"
194   "/checkouts/{checkout_id}/allows_renewal":
195     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1allows_renewal"
196   "/checkouts/{checkout_id}/renewals":
197     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewals"
198   "/checkouts/{checkout_id}/renewal":
199     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
200   /circulation-rules/kinds:
201     $ref: ./paths/circulation-rules.yaml#/~1circulation-rules~1kinds
202   /cities:
203     $ref: ./paths/cities.yaml#/~1cities
204   "/cities/{city_id}":
205     $ref: "./paths/cities.yaml#/~1cities~1{city_id}"
206   "/clubs/{club_id}/holds":
207     $ref: "./paths/clubs.yaml#/~1clubs~1{club_id}~1holds"
208   /config/smtp_servers:
209     $ref: ./paths/config_smtp_servers.yaml#/~1config~1smtp_servers
210   "/config/smtp_servers/{smtp_server_id}":
211     $ref: "./paths/config_smtp_servers.yaml#/~1config~1smtp_servers~1{smtp_server_id}"
212   /erm/agreements:
213     $ref: ./paths/erm_agreements.yaml#/~1erm~1agreements
214   "/erm/agreements/{agreement_id}":
215     $ref: "./paths/erm_agreements.yaml#/~1erm~1agreements~1{agreement_id}"
216   "/erm/documents/{document_id}/file/content":
217     $ref: "./paths/erm_documents.yaml#/~1erm~1documents~1{document_id}~1file~1content"
218   "/erm/eholdings/{provider}/titles":
219     $ref: "./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1{provider}~1titles"
220   /erm/eholdings/local/titles/import:
221     $ref: ./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1local~1titles~1import
222   "/erm/eholdings/{provider}/titles/{title_id}":
223     $ref: "./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1{provider}~1titles~1{title_id}"
224   "/erm/eholdings/{provider}/titles/{title_id}/resources":
225     $ref: "./paths/erm_eholdings_titles_resources.yaml#/~1erm~1eholdings~1{provider}~1titles~1{title_id}~1resources"
226   "/erm/eholdings/{provider}/packages":
227     $ref: "./paths/erm_eholdings_packages.yaml#/~1erm~1eholdings~1{provider}~1packages"
228   "/erm/eholdings/{provider}/resources":
229     $ref: "./paths/erm_eholdings_resources.yaml#/~1erm~1eholdings~1{provider}~1resources"
230   "/erm/eholdings/{provider}/resources/{resource_id}":
231     $ref: "./paths/erm_eholdings_resources.yaml#/~1erm~1eholdings~1{provider}~1resources~1{resource_id}"
232   "/erm/eholdings/{provider}/packages/{package_id}":
233     $ref: "./paths/erm_eholdings_packages.yaml#/~1erm~1eholdings~1{provider}~1packages~1{package_id}"
234   "/erm/eholdings/{provider}/packages/{package_id}/resources":
235     $ref: "./paths/erm_eholdings_packages_resources.yaml#/~1erm~1eholdings~1{provider}~1packages~1{package_id}~1resources"
236   /erm/licenses:
237     $ref: ./paths/erm_licenses.yaml#/~1erm~1licenses
238   "/erm/licenses/{license_id}":
239     $ref: "./paths/erm_licenses.yaml#/~1erm~1licenses~1{license_id}"
240   /erm/users:
241     $ref: ./paths/erm_users.yaml#/~1erm~1users
242   /holds:
243     $ref: ./paths/holds.yaml#/~1holds
244   "/holds/{hold_id}":
245     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}"
246   "/holds/{hold_id}/pickup_location":
247     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_location"
248   "/holds/{hold_id}/pickup_locations":
249     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_locations"
250   "/holds/{hold_id}/priority":
251     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1priority"
252   "/holds/{hold_id}/suspension":
253     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1suspension"
254   /ill/backends:
255     $ref: ./paths/ill_backends.yaml#/~1ill~1backends
256   "/ill/backends/{ill_backend_id}":
257     $ref: "./paths/ill_backends.yaml#/~1ill~1backends~1{ill_backend_id}"
258   /ill/requests:
259     $ref: ./paths/ill_requests.yaml#/~1ill~1requests
260   "/import_batches/{import_batch_id}/records/{import_record_id}/matches/chosen":
261     $ref: "./paths/import_batches.yaml#/~1import_batches~1{import_batch_id}~1records~1{import_record_id}~1matches~1chosen"
262   /import_batch_profiles:
263     $ref: ./paths/import_batch_profiles.yaml#/~1import_batch_profiles
264   "/import_batch_profiles/{import_batch_profile_id}":
265     $ref: "./paths/import_batch_profiles.yaml#/~1import_batch_profiles~1{import_batch_profile_id}"
266   /items:
267     $ref: ./paths/items.yaml#/~1items
268   "/items/{item_id}":
269     $ref: "./paths/items.yaml#/~1items~1{item_id}"
270   "/items/{item_id}/bundled_items":
271     $ref: ./paths/items.yaml#/~1items~1{item_id}~1bundled_items
272   "/items/{item_id}/bundled_items/{bundled_item_id}":
273     $ref: ./paths/items.yaml#/~1items~1{item_id}~1bundled_items~1{bundled_item_id}
274   "/items/{item_id}/pickup_locations":
275     $ref: "./paths/items.yaml#/~1items~1{item_id}~1pickup_locations"
276   /jobs:
277     $ref: ./paths/jobs.yaml#/~1jobs
278   "/jobs/{job_id}":
279     $ref: "./paths/jobs.yaml#/~1jobs~1{job_id}"
280   /libraries:
281     $ref: ./paths/libraries.yaml#/~1libraries
282   "/libraries/{library_id}":
283     $ref: "./paths/libraries.yaml#/~1libraries~1{library_id}"
284   /oauth/token:
285     $ref: ./paths/oauth.yaml#/~1oauth~1token
286   /patrons:
287     $ref: ./paths/patrons.yaml#/~1patrons
288   "/patrons/{patron_id}":
289     $ref: "./paths/patrons.yaml#/~1patrons~1{patron_id}"
290   "/patrons/{patron_id}/account":
291     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account"
292   "/patrons/{patron_id}/account/credits":
293     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1credits"
294   "/patrons/{patron_id}/account/debits":
295     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1debits"
296   "/patrons/{patron_id}/extended_attributes":
297     $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes"
298   "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}":
299     $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes~1{extended_attribute_id}"
300   "/patrons/{patron_id}/holds":
301     $ref: "./paths/patrons_holds.yaml#/~1patrons~1{patron_id}~1holds"
302   "/patrons/{patron_id}/password":
303     $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password"
304   "/patrons/{patron_id}/password/expiration_date":
305     $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password~1expiration_date"
306   "/public/biblios/{biblio_id}":
307     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}"
308   "/public/items":
309     $ref: "./paths/items.yaml#/~1public~1items"
310   "/public/biblios/{biblio_id}/items":
311     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1items"
312   "/public/biblios/{biblio_id}/ratings":
313     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1ratings"
314   /public/libraries:
315     $ref: ./paths/libraries.yaml#/~1public~1libraries
316   "/public/libraries/{library_id}":
317     $ref: "./paths/libraries.yaml#/~1public~1libraries~1{library_id}"
318   "/public/oauth/login/{provider_code}/{interface}":
319     $ref: ./paths/public_oauth.yaml#/~1public~1oauth~1login~1{provider_code}~1{interface}
320   "/public/patrons/{patron_id}/article_requests/{article_request_id}":
321     $ref: "./paths/article_requests.yaml#/~1public~1patrons~1{patron_id}~1article_requests~1{article_request_id}"
322   "/public/patrons/{patron_id}/guarantors/can_see_charges":
323     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_charges"
324   "/public/patrons/{patron_id}/guarantors/can_see_checkouts":
325     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_checkouts"
326   "/public/patrons/{patron_id}/password":
327     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1password"
328   "/public/tickets":
329     $ref: "./paths/tickets.yaml#/~1public~1tickets"
330   /quotes:
331     $ref: ./paths/quotes.yaml#/~1quotes
332   "/quotes/{quote_id}":
333     $ref: "./paths/quotes.yaml#/~1quotes~1{quote_id}"
334   /return_claims:
335     $ref: ./paths/return_claims.yaml#/~1return_claims
336   "/return_claims/{claim_id}":
337     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}"
338   "/return_claims/{claim_id}/notes":
339     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1notes"
340   "/return_claims/{claim_id}/resolve":
341     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1resolve"
342   "/rotas/{rota_id}/stages/{stage_id}/position":
343     $ref: "./paths/rotas.yaml#/~1rotas~1{rota_id}~1stages~1{stage_id}~1position"
344   /suggestions:
345     $ref: ./paths/suggestions.yaml#/~1suggestions
346   "/suggestions/{suggestion_id}":
347     $ref: "./paths/suggestions.yaml#/~1suggestions~1{suggestion_id}"
348   /suggestions/managers:
349     $ref: paths/suggestions.yaml#/~1suggestions~1managers
350   "/tickets":
351     $ref: "./paths/tickets.yaml#/~1tickets"
352   "/tickets/{ticket_id}":
353     $ref: "./paths/tickets.yaml#/~1tickets~1{ticket_id}"
354   "/tickets/{ticket_id}/updates":
355     $ref: "./paths/tickets.yaml#/~1tickets~1{ticket_id}~1updates"
356   /transfer_limits:
357     $ref: ./paths/transfer_limits.yaml#/~1transfer_limits
358   /transfer_limits/batch:
359     $ref: ./paths/transfer_limits.yaml#/~1transfer_limits~1batch
360   "/transfer_limits/{limit_id}":
361     $ref: "./paths/transfer_limits.yaml#/~1transfer_limits~1{limit_id}"
362 parameters:
363   advancededitormacro_id_pp:
364     description: Advanced editor macro internal identifier
365     in: path
366     name: advancededitormacro_id
367     required: true
368     type: integer
369   agreement_id_pp:
370     description: Agreement internal identifier
371     in: path
372     name: agreement_id
373     required: true
374     type: integer
375   agreement_period_id_pp:
376     description: Agreement period internal identifier
377     in: path
378     name: agreement_period_id
379     required: true
380     type: integer
381   authorised_value_id_pp:
382     description: Authorised value internal identifier
383     in: path
384     name: authorised_value_id
385     required: true
386     type: integer
387   authority_id_pp:
388     description: Authority identifier
389     in: path
390     name: authority_id
391     required: true
392     type: integer
393   authority_type_header:
394     description: Authority type code. Use when content type is not application/json
395     name: x-authority-type
396     in: header
397     required: false
398     type: string
399   framework_id_header:
400     description: Framework id. Use when content type is not application/json
401     name: x-framework-id
402     in: header
403     required: false
404     type: string
405   marc_schema_header:
406     description: March schema. One of MARC21 or UNIMARC
407     name: x-record-schema
408     in: header
409     required: false
410     type: string
411     enum:
412       - MARC21
413       - UNIMARC
414   confirm_not_duplicate_header:
415     description: Confirm the posted element is not a duplicate
416     name: x-confirm-not-duplicate
417     in: header
418     required: false
419     type: integer
420   identity_provider_id_pp:
421     description: Authentication provider internal identifier
422     in: path
423     name: identity_provider_id
424     required: true
425     type: integer
426   identity_provider_domain_id_pp:
427     description: Authentication provider domain internal identifier
428     in: path
429     name: identity_provider_domain_id
430     required: true
431     type: integer
432   biblio_id_pp:
433     description: Record internal identifier
434     in: path
435     name: biblio_id
436     required: true
437     type: integer
438   candidate_match_id_pp:
439     description: Internal import record match identifier
440     in: path
441     name: candidate_match_id
442     required: true
443     type: integer
444   cash_register_id_pp:
445     description: Cash register internal identifier
446     in: path
447     name: cash_register_id
448     required: true
449     type: integer
450   cashup_id_pp:
451     description: Cashup internal identifier
452     in: path
453     name: cashup_id
454     required: true
455     type: integer
456   checkout_id_pp:
457     description: Internal checkout identifier
458     in: path
459     name: checkout_id
460     required: true
461     type: integer
462   city_id_pp:
463     description: City internal identifier
464     in: path
465     name: city_id
466     required: true
467     type: integer
468   club_id_pp:
469     description: Internal club identifier
470     in: path
471     name: club_id
472     required: true
473     type: integer
474   eholdings_title_id_pp:
475     description: Title internal identifier
476     in: path
477     name: title_id
478     required: true
479     type: integer
480   eholdings_package_id_pp:
481     description: Package internal identifier
482     in: path
483     name: package_id
484     required: true
485     type: string
486   eholdings_resource_id_pp:
487     description: Resource internal identifier
488     in: path
489     name: resource_id
490     required: true
491     type: string
492   fund_id_pp:
493     description: Fund id
494     in: path
495     name: fund_id
496     required: true
497     type: integer
498   hold_id_pp:
499     description: Internal hold identifier
500     in: path
501     name: hold_id
502     required: true
503     type: integer
504   import_batch_profile_id_pp:
505     description: Internal profile identifier
506     in: path
507     name: import_batch_profile_id
508     required: true
509     type: integer
510   import_record_id_pp:
511     description: Internal import record identifier
512     in: path
513     name: import_record_id
514     required: true
515     type: integer
516   item_id_pp:
517     description: Internal item identifier
518     in: path
519     name: item_id
520     required: true
521     type: integer
522   job_id_pp:
523     description: Job internal identifier
524     in: path
525     name: job_id
526     required: true
527     type: integer
528   library_id_pp:
529     description: Internal library identifier
530     in: path
531     name: library_id
532     required: true
533     type: string
534   license_id_pp:
535     description: License internal identifier
536     in: path
537     name: license_id
538     required: true
539     type: integer
540   match:
541     description: Matching criteria
542     enum:
543       - contains
544       - exact
545       - starts_with
546       - ends_with
547     in: query
548     name: _match
549     required: false
550     type: string
551   order_by:
552     collectionFormat: csv
553     description: Sorting criteria
554     in: query
555     items:
556       type: string
557     name: _order_by
558     required: false
559     type: array
560   order_id_pp:
561     description: Internal order identifier
562     in: path
563     name: order_id
564     required: true
565     type: integer
566   page:
567     description: "Page number, for paginated object listing"
568     in: query
569     name: _page
570     required: false
571     type: integer
572   patron_id_pp:
573     description: Internal patron identifier
574     in: path
575     name: patron_id
576     required: true
577     type: integer
578   patron_id_qp:
579     description: Internal patron identifier
580     in: query
581     name: patron_id
582     type: integer
583   per_page:
584     description: "Page size, for paginated object listing"
585     in: query
586     name: _per_page
587     required: false
588     type: integer
589   q_body:
590     description: Query filter sent through request"s body
591     in: body
592     name: query
593     required: false
594     schema:
595       type: object
596   q_header:
597     description: Query filter sent as a request header
598     in: header
599     name: x-koha-query
600     required: false
601     type: string
602   q_param:
603     description: Query filter sent as a request parameter
604     in: query
605     name: q
606     required: false
607     type: array
608     items:
609       type: string
610     collectionFormat: multi
611   quote_id_pp:
612     description: Quote internal identifier
613     in: path
614     name: quote_id
615     required: true
616     type: integer
617   request_id_header:
618     description: Request id header
619     in: header
620     name: x-koha-request-id
621     required: false
622     type: integer
623   search_filter_id_pp:
624     name: search_filter_id
625     in: path
626     description: Search filter internal identifier
627     required: true
628     type: integer
629   seen_pp:
630     description: Item was seen flag
631     in: query
632     name: seen
633     required: false
634     type: integer
635   smtp_server_id_pp:
636     description: SMTP server internal identifier
637     in: path
638     name: smtp_server_id
639     required: true
640     type: integer
641   suggestion_id_pp:
642     description: Internal suggestion identifier
643     in: path
644     name: suggestion_id
645     required: true
646     type: integer
647   ticket_id_pp:
648     description: Internal ticket identifier
649     in: path
650     name: ticket_id
651     required: true
652     type: integer
653   transfer_limit_id_pp:
654     description: Internal transfer limit identifier
655     in: path
656     name: limit_id
657     required: true
658     type: string
659   vendor_id_pp:
660     description: Vendor id
661     in: path
662     name: vendor_id
663     required: true
664     type: integer
665 info:
666   title: Koha REST API
667   version: "1"
668   license:
669     name: "GPL v3,"
670     url: http://www.gnu.org/licenses/gpl.txt
671   contact:
672     name: Koha Development Team
673     url: https://koha-community.org/
674   description: |
675     ## Introduction
676
677     This API is documented in **OpenAPI format**.
678
679     ## Authentication
680
681     The API supports the following authentication mechanisms
682
683     * HTTP Basic authentication
684     * OAuth2 (client credentials grant)
685     * Cookie-based
686
687     Both _Basic authentication_ and the _OAuth2_ flow, need to be enabled
688     by system preferences.
689
690     ## Errors
691
692     The API uses standard HTTP status codes to indicate the success or failure
693     of the API call. The body of the response will be JSON in the following format:
694
695     ```
696     {
697       "error": "Current settings prevent the passed due date to be applied",
698       "error_code": "invalid_due_date"
699     }
700     ```
701
702     Note: Some routes might offer additional attributes in their error responses but that"s
703     subject to change and thus not documented.
704
705     ## Filtering responses
706
707     The API allows for some advanced response filtering using a JSON based query syntax. The
708     query can be added to the requests:
709
710     * as a query parameter `q=`
711     * in the request body
712     * in a special header `x-koha-query`
713
714     For simple field equality matches we can use `{ "fieldname": "value" }` where the fieldname
715     matches one of the fields as described in the particular endpoints response object.
716
717     We can refine that with more complex matching clauses by nesting a the clause into the
718     object; `{ "fieldname": { "clause": "value" } }`.
719
720     Available matching clauses include ">", "<", ">=", "<=", "-like", and "-not_like".
721
722     We can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`
723     level will result in an "AND" query, whilst combinding them in an `ARRAY` wilth result in an
724     "OR" query: `{ "field1": "value2", "field2": "value2" }` will filter the response to only those
725     results with both field1 containing value2 AND field2 containing value2 for example.
726
727     Additionally, if you are requesting related data be embedded into the response one can query
728     on the related data using dot notation in the field names.
729
730     ### Examples
731
732     The following request would return any patron with firstname "Henry" and lastname "Acevedo";
733
734     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": "Acevedo", "firstname": "Henry" }"`
735
736     The following request would return any patron whose lastname begins with "Ace";
737
738     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": { "-like": "Ace%" }"`
739
740     The following request would return any patron whose lastname is "Acevedo" OR "Bernardo"
741
742     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": [ "Acevedo", "Bernardo" ] }"`
743
744     The following request embeds the related patron extended attributes data and filters on it.
745
746     `curl -u koha:koha =--request GET 'http://127.0.0.1:8081/api/v1/patrons/' --header 'x-koha-embed: extended_attributes' --data-raw '{ "extended_attributes.code": "internet", "extended_attributes.attribute": "1" }'`
747
748     ## Special headers
749
750     ### x-koha-embed
751
752     This optional header allows the api consumer to request additional related data
753     to be returned in the api response.  It also allows for cross referencing in the
754     queries as described above. It accepts a comma delimited list of relation names.
755
756     Relations may on occasion also support dot delimited nesting to allow traversal.
757
758     ### x-koha-library
759
760     This optional header should be passed to give your api request a library
761     context; If it is not included in the request, then the request context
762     will default to using your api comsumer"s assigned home library.
763 tags:
764   - description: "Handle two factor authentication flows\n"
765     name: 2fa
766     x-displayName: Two factor authentication
767   - description: "Manage article requests\n"
768     name: article_requests
769     x-displayName: Article requests
770   - description: "Manage identity providers\n"
771     name: identity_providers
772     x-displayName: Identity providers
773   - description: "Manage baskets for the acquisitions module\n"
774     name: baskets
775     x-displayName: Baskets
776   - description: "Manage Authority records\n"
777     name: authorities
778     x-displayName: Authorities
779   - description: "Manage bibliographic records\n"
780     name: biblios
781     x-displayName: Biblios
782   - description: "Manage cash register cashups\n"
783     name: cashups
784     x-displayName: Cashups
785   - description: "Manage checkouts\n"
786     name: checkouts
787     x-displayName: Checkouts
788   - description: "Manage circulation rules\n"
789     name: circulation_rules
790     x-displayName: Circulation rules
791   - description: "Manage cities\n"
792     name: cities
793     x-displayName: Cities
794   - description: "Manage patron clubs\n"
795     name: clubs
796     x-displayName: Clubs
797   - description: "Manage funds for the acquisitions module\n"
798     name: funds
799     x-displayName: Funds
800   - description: "Manage holds\n"
801     name: holds
802     x-displayName: Holds
803   - description: "Manage ILL module backends\n"
804     name: ill_backends
805     x-displayName: ILL backends
806   - description: "Manage ILL requests\n"
807     name: ill_requests
808     x-displayName: ILL requests
809   - description: "Manage import batches\n"
810     name: import_batches
811     x-display-name: Import batches
812   - description: "Manage item groups\n"
813     name: item_groups
814     x-displayName: Item groups
815   - description: "Manage items\n"
816     name: items
817     x-displayName: Items
818   - description: "Manage jobs\n"
819     name: jobs
820     x-displayName: Jobs
821   - description: "Manage libraries\n"
822     name: libraries
823     x-displayName: Libraries
824   - description: "Manage macros\n"
825     name: macros
826     x-displayName: Macros
827   - description: "Manage acquisition orders\n"
828     name: orders
829     x-displayName: Orders
830   - description: "Handle OAuth flows\n"
831     name: oauth
832     x-displayName: OAuth
833   - description: "Manage patrons\n"
834     name: patrons
835     x-displayName: Patrons
836   - description: "Manage quotes\n"
837     name: quotes
838     x-displayName: Quotes
839   - description: "Manage return claims\n"
840     name: return_claims
841     x-displayName: Return claims
842   - description: "Manage rotas\n"
843     name: rotas
844     x-displayName: Rotas
845   - description: "Manage SMTP servers configurations\n"
846     name: smtp_servers
847     x-displayName: SMTP servers
848   - description: "Manage transfer limits\n"
849     name: transfer
850     x-displayName: Transfer limits
851   - description: "Manage purchase suggestions\n"
852     name: suggestions
853     x-displayName: Purchase suggestions
854   - description: "Manage vendors for the acquisitions module\n"
855     name: vendors
856     x-displayName: Vendors
857   - description: "Manage batch import profiles\n"
858     name: batch_import_profiles
859     x-displayName: Batch import profiles