Catalog
Everything the public site renders: financing programmes and their terms, the register of legal acts, the FAQ base, the citizens' reception schedule and the org chart.
All catalog endpoints are public — no authentication, no bearer token.
They return only rows whose status is active. Anonymous traffic is capped
by the api rate limiter (see Getting started).
Translatable fields (title, summary, body, question, answer,
label, note, position, address, name, duties) resolve to the
locale negotiated from Accept-Language. Send Accept-Language: uz (or
ru / uz_cyrl) — the default when nothing is sent is uz.
uz_cyrl is the Cyrillic script of Uzbek. Case and separator do not matter
(uz-Cyrl, UZ_CYRL all resolve) — the SetLocale middleware normalises
whatever the client sends back to the exact tag in
config('app.supported_locales').
Programmes
GET /api/v1/programs
Paginated list. Follows the list contract.
| Filter | Values | Notes |
|---|---|---|
filter[sector] |
cotton, wheat, seed_wheat, commodity_wheat, machinery, fruit, potato, greenhouse, oilseed, livestock, fishery |
exact match |
filter[kind] |
credit, leasing, subsidy |
exact match |
filter[search] |
free text | matches title in the current locale |
filter[search] ignores apostrophes on both sides of the comparison, so
jamg'arma, jamg‘arma, jamgʻarma and jamgarma all return the same rows.
Type whichever your keyboard produces.
sort: sort_order (default), id. Prefix with - to reverse.
Each item embeds terms[] and legal_document.
GET /api/v1/programs/{slug}
One programme with terms[], legal_document and its faqs[].
404 when the slug is unknown or the programme is inactive.
GET /api/v1/programs/match
Backs the "find the financing that fits you" wizard. All three parameters are optional; each one narrows the result.
| Parameter | Values |
|---|---|
borrower_type |
one or a comma-separated list of farmer, seed_farm, cluster, textile_enterprise, grain_receiver, leasing_organization, entrepreneur |
sector |
one or a comma-separated list of the sector values above |
kind |
credit, leasing, subsidy |
A list matches programmes open to ANY of the values (borrower_type=farmer,seed_farm
is how the site maps the answer "fermer"). When borrower_type is given, the
embedded terms[] are narrowed to those borrowers — so the client can render
the applicable rate directly. Programmes without any term for the given
borrowers are left out. An unknown value returns 422 with the field in errors.
Returns an unpaginated array (the wizard shows a handful of results).
Term object
The calculator reads its inputs from here — never hardcode a rate on the
client. Rates are what the borrower pays; the bank margin is already
inside annual_rate.
| Field | Meaning |
|---|---|
borrower_type |
who this term applies to |
label |
human description of the borrower |
share_percent |
maximum share of the crop/asset value that can be financed |
annual_rate |
annual rate the borrower pays, in percent |
bank_margin |
the bank's share of annual_rate |
rate_discount_a / rate_discount_b |
reduction for stability-rating class A / B |
term_months |
total term |
grace_months |
grace period before principal repayment starts |
note |
conditions that do not fit a number |
null means the source act does not fix that value — for example the seed-wheat
programme, whose rate tracks the Central Bank base rate. Render the note
in that case rather than a blank field.
Legal documents
GET /api/v1/legal-documents
| Filter | Values |
|---|---|
filter[doc_type] |
presidential_decree, presidential_resolution, cabinet_resolution, ministry_order, charter, internal |
filter[relevance] |
direct_primary, direct, related |
filter[state] |
in_force, amended, repealed |
filter[year] |
four-digit year of adoption |
filter[direction] |
exact direction label in the current locale (values from /legal-documents/directions) |
filter[search] |
free text over title, direction and number, in every locale and both Uzbek scripts — see Search |
sort: adopted_on (default -adopted_on), number, id.
GET /api/v1/legal-documents/directions
Distinct direction labels of active documents in the current locale, sorted — the values the site's direction filter offers.
{ "data": ["Chorvachilik", "Lizing", "Paxtachilik"] }
Each item carries revisions_count so a list can badge amended acts
without a second request.
GET /api/v1/legal-documents/{id}
The list item plus revisions[] (each with changed_on, summary and the
amending_document), content — the full text of the act in the current
locale when the Fund published it (null otherwise) — and files[], the
downloadable copies:
"files": [
{ "id": 12, "locale": "uz_cyrl", "format": "doc", "name": "PF-5095-uz_cyrl.doc", "size": 34147, "url": "http://…/storage/12/PF-5095-uz_cyrl.doc" }
]
One file per locale at most; locale tells which script/language the copy
is in. Seeded copies come from the old agrofin.uz register.
GET /api/v1/legal-documents/changes
Acts that were actually amended, most recently changed first. Backs the "latest legislative changes" block. Unpaginated, capped at 10.
FAQ
GET /api/v1/faqs
| Filter | Values |
|---|---|
filter[faq_category_id] |
category id |
filter[program_id] |
programme id |
filter[search] |
free text over question and answer, in every locale and both Uzbek scripts |
Default page size is 50, maximum 100. The base is larger than one page —
walk meta.pagination.last_page to show everything (the site does).
Categories: one general category (jamgarma-haqida, whose first five
questions are the canonical "term / rate / who / documents / banks" ones),
one per financing direction, and the subsidies split by subsidy type
(subsidiyalar, subsidiya-ehf, subsidiya-foiz, subsidiya-klaster-foiz,
subsidiya-klaster-xarid) so that the same question text ("Subsidiya
miqdori qancha?") never repeats inside one category.
GET /api/v1/faq-categories
Categories with faqs_count — active questions only.
Reception schedule
GET /api/v1/reception-slots
The citizens' reception timetable: who receives, in what capacity, on which
weekday and between which hours. starts_at / ends_at are HH:MM.
weekday is monday…friday — there is no weekend reception.
Unpaginated; there are seven officials.
Org chart
GET /api/v1/staff-units
A tree: root units, each with nested children[] two levels deep.
head_name is the person heading that unit. Backs the interactive
organogram.