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