Articles and categories
Finance · 4 operations
GET
List finance articles
/api/articleIncome and expense articles with the operation types each applies to.
list_finance_articles
Query parameters · 6
pagemin 1 · default 1pageSize1–250 · default 20nameOfArticlelength max 150isArchivaldefault falsearticleIds—typeOfOperationOne of: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFERResponse · 200
application/json
statusCodeexample 200message—data4 fields
total—totalPages—currentPage—articles8 fields
articleId—nameOfArticle—typesOfFinanceOperation—note—order—isArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl "https://your-school.rist.pro/api/article?nameOfArticle=string&isArchival=false&articleIds=1" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/article?nameOfArticle=string&isArchival=false&articleIds=1", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/article",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"nameOfArticle": "string",
"isArchival": False,
"articleIds": [
1
]
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"total": 0,
"totalPages": 0,
"currentPage": 0,
"articles": [
{
"articleId": 1,
"nameOfArticle": "string",
"typesOfFinanceOperation": {},
"note": "string",
"order": 0,
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
]
}
}GET
List finance categories
/api/categoryCategories of finance operations.
list_finance_categories
Query parameters · 6
pagemin 1 · default 1pageSize1–250 · default 20categoryIds—typeOne of: INCOME EXPENSESnameOfCategorylength max 150isArchivaldefault falseResponse · 200
application/json
statusCodeexample 200message—data4 fields
total—totalPages—currentPage—categories8 fields
categoryId—nameOfCategory—typeOne of: INCOME EXPENSESnote—order—isArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl "https://your-school.rist.pro/api/category?nameOfCategory=string&isArchival=false" \
-H "Authorization: Bearer $RIST_API_KEY"const response = await fetch("https://your-school.rist.pro/api/category?nameOfCategory=string&isArchival=false", {
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
},
});
const { data } = await response.json();import os
import requests
response = requests.get(
"https://your-school.rist.pro/api/category",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
params={
"nameOfCategory": "string",
"isArchival": False
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"total": 0,
"totalPages": 0,
"currentPage": 0,
"categories": [
{
"categoryId": 1,
"nameOfCategory": "string",
"type": "INCOME",
"note": "string",
"order": 0,
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
]
}
}POST
Create finance article
/api/articleAdd an income or expense article (name, operation types it applies to, optional note).
create_finance_article
Request body
application/json · object
nameOfArticlelength 1–150typesOfFinanceOperationOne of: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFERitems min 1notelength max 1500Response · 201
application/json
statusCodeexample 201message—data8 fields
articleId—nameOfArticle—typesOfFinanceOperation—note—order—isArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl -X POST "https://your-school.rist.pro/api/article" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nameOfArticle": "string",
"typesOfFinanceOperation": [
"INCOME"
],
"note": "string"
}'const response = await fetch("https://your-school.rist.pro/api/article", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"nameOfArticle": "string",
"typesOfFinanceOperation": [
"INCOME"
],
"note": "string"
}),
});
const { data } = await response.json();import os
import requests
response = requests.post(
"https://your-school.rist.pro/api/article",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"nameOfArticle": "string",
"typesOfFinanceOperation": [
"INCOME"
],
"note": "string"
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 201
{
"statusCode": 201,
"message": "Operation completed successfully",
"data": {
"articleId": 1,
"nameOfArticle": "string",
"typesOfFinanceOperation": {},
"note": "string",
"order": 0,
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}PUT
Update finance article
/api/article/{id}Change a finance article; name and operation types are always required, the types list is replaced.
update_finance_article
Path parameters · 1
id—Request body
application/json · object
nameOfArticlelength 1–150typesOfFinanceOperationOne of: INCOME TRANSFER ADJUSTMENT EXPENSES REFUND ACCOUNT_TRANSFERitems min 1notelength max 1500Response · 200
application/json
statusCodeexample 200message—data8 fields
articleId—nameOfArticle—typesOfFinanceOperation—note—order—isArchival—updatedAtformat YYYY-MM-DDTHH:mm:sscreatedAtformat YYYY-MM-DDTHH:mm:sscurl -X PUT "https://your-school.rist.pro/api/article/1" \
-H "Authorization: Bearer $RIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nameOfArticle": "string",
"typesOfFinanceOperation": [
"INCOME"
],
"note": "string"
}'const response = await fetch("https://your-school.rist.pro/api/article/1", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.RIST_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"nameOfArticle": "string",
"typesOfFinanceOperation": [
"INCOME"
],
"note": "string"
}),
});
const { data } = await response.json();import os
import requests
response = requests.put(
"https://your-school.rist.pro/api/article/1",
headers={"Authorization": f"Bearer {os.environ['RIST_API_KEY']}"},
json={
"nameOfArticle": "string",
"typesOfFinanceOperation": [
"INCOME"
],
"note": "string"
},
)
response.raise_for_status()
data = response.json()["data"]Response example · 200
{
"statusCode": 200,
"message": "Operation completed successfully",
"data": {
"articleId": 1,
"nameOfArticle": "string",
"typesOfFinanceOperation": {},
"note": "string",
"order": 0,
"isArchival": false,
"updatedAt": "2026-11-09T14:30:00",
"createdAt": "2026-11-09T14:30:00"
}
}