Zum Hauptinhalt springen

Hoffnungsträger Sprachbrücke API Documentation (1.0.0)

Download OpenAPI specification:Download

API for the Hoffnungsträger Sprachbrücke interpretation service mediation platform. Connects clients (government offices, schools, healthcare) with qualified interpreters.

Authentication

Register a new user

Request Body schema: application/json
required
email
required
string

User's email address.

first_name
required
string

User's first name.

last_name
required
string

User's last name.

password
required
string

User's password (min 8 characters).

password_confirmation
required
string

Password confirmation.

phone
string or null

User's phone number.

role
required
string

User role. Must be either 'requester' or 'interpreter'.

Responses

Response Schema: application/json
message
string
token
string
object

Request samples

Content type
application/json
{
  • "first_name": "Maria",
  • "last_name": "Schmidt",
  • "email": "maria@example.com",
  • "password": "password123",
  • "phone": "+49 123 456789",
  • "role": "requester",
  • "password_confirmation": "password123"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "1|h5FXyc63mfRyEQ6ekJMB8mwSDGTr6JVddxRF9E4af7ec1907",
  • "message": "Registration successful. Please wait for account approval."
}

Register a new requester

Request Body schema: application/json
required
accept_license
required
boolean

Legal acceptance flags (must be accepted). Must be accepted.

accept_privacy
required
boolean

Must be accepted.

accept_terms
required
boolean

Must be accepted.

billing_email
string

Organization billing email.

billing_reference
string

Organization billing reference.

birth_date
date

Requester's birth date.

city
required
string

Das value darf nicht mehr als 255 Zeichen haben.

email
required
string

Requester's email address.

first_name
required
string

Requester's first name.

gender
string or null

Requester's gender. Must be one of: male, female, diverse.

house_number
required
string

Das value darf nicht mehr als 50 Zeichen haben.

last_name
required
string

Requester's last name.

notes
string

Additional notes.

organization_name
required
string

Organization name.

organization_type
required
string

Organization type. Must be one of: government, healthcare, education, social_services, legal, other.

password
required
string

Requester's password (min 8 characters).

password_confirmation
required
string

Password confirmation.

phone
string

Requester's phone number.

phone_country_code
string or null

Das value darf nicht mehr als 10 Zeichen haben.

postal_code
required
string

Must match the regex /^\d{5}$/. Das value muss 5 Zeichen haben.

salutation
string

Requester's salutation.

street
required
string

Address fields - REQUIRED for requesters. Das value darf nicht mehr als 255 Zeichen haben.

Responses

Response Schema: application/json
message
string
token
string
object

Request samples

Content type
application/json
{
  • "first_name": "Maria",
  • "last_name": "Schmidt",
  • "email": "maria@hospital.de",
  • "password": "password123",
  • "phone": "+49 123 456789",
  • "phone_country_code": "gzmiyv",
  • "salutation": "Dr.",
  • "birth_date": "1985-03-15",
  • "gender": "female",
  • "accept_license": true,
  • "accept_terms": true,
  • "accept_privacy": true,
  • "street": "l",
  • "house_number": "j",
  • "city": "n",
  • "postal_code": "ikhwa",
  • "organization_name": "Charité Berlin",
  • "organization_type": "healthcare",
  • "billing_email": "billing@hospital.de",
  • "password_confirmation": "password123",
  • "billing_reference": "REF-2024-001",
  • "notes": "Emergency contact available 24/7"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "1|h5FXyc63mfRyEQ6ekJMB8mwSDGTr6JVddxRF9E4af7ec1907",
  • "message": "Requester registration successful. Please wait for account approval."
}

Register a new interpreter

Request Body schema: application/json
required
accept_license
required
boolean

Legal acceptance flags (must be accepted). Must be accepted.

accept_privacy
required
boolean

Must be accepted.

accept_terms
required
boolean

Must be accepted.

available_for_selection
boolean or null

Keep both for compatibility.

bank_account_bic
string or null

BIC/SWIFT code.

bank_account_iban
string or null

IBAN for payments.

bank_account_owner
string

Bank account owner name.

bic
required
string

Keep both for compatibility. Must match the regex /^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$/i. Das value darf nicht mehr als 11 Zeichen haben.

billing_type
required
string
Enum: "business" "employment"

Keep both for compatibility.

birth_date
date

Interpreter's birth date.

city
required
string

Das value darf nicht mehr als 255 Zeichen haben.

email
required
string

Interpreter's email address.

experience_years
integer or null

Das value muss mindestens 0 sein. Das value darf nicht größer als 50 sein.

first_name
required
string

Interpreter's first name.

gender
string or null

Interpreter's gender. Must be one of: male, female, diverse.

house_number
required
string

Das value darf nicht mehr als 50 Zeichen haben.

iban
required
string

REQUIRED. Must match the regex /^[A-Z]{2}\d{2}[\dA-Z]+$/i. Das value darf nicht mehr als 34 Zeichen haben.

languages
Array of strings
last_name
required
string

Interpreter's last name.

max_distance_km
integer or null

Maximum travel distance in kilometers.

notes
string or null

Additional notes.

password
required
string

Interpreter's password (min 8 characters).

password_confirmation
required
string

Password confirmation.

phone
string

Interpreter's phone number.

phone_country_code
string or null

Das value darf nicht mehr als 10 Zeichen haben.

postal_code
required
string

Must match the regex /^\d{5}$/. Das value muss 5 Zeichen haben.

qualifications
string or null

Interpreter profile fields - REQUIRED.

salutation
string

Interpreter's salutation.

specializations
string or null
street
required
string

Address fields - REQUIRED for interpreters. Das value darf nicht mehr als 255 Zeichen haben.

tax_id
string or null

Tax ID for invoicing.

tax_number
required
string

Das value darf nicht mehr als 255 Zeichen haben.

topics
Array of strings
travel_radius
required
integer

REQUIRED. Das value muss mindestens 10 sein. Das value darf nicht größer als 100 sein.

Responses

Response Schema: application/json
message
string
token
string
object

Request samples

Content type
application/json
{
  • "first_name": "Sarah",
  • "last_name": "Johnson",
  • "email": "sarah@sprachbruecke.de",
  • "password": "password123",
  • "phone": "+49 123 456789",
  • "phone_country_code": "gzmiyv",
  • "salutation": "Ms.",
  • "birth_date": "1990-07-20",
  • "gender": "female",
  • "accept_license": true,
  • "accept_terms": true,
  • "accept_privacy": true,
  • "street": "l",
  • "house_number": "j",
  • "city": "n",
  • "postal_code": "ikhwa",
  • "qualifications": "architecto",
  • "experience_years": 22,
  • "specializations": "architecto",
  • "tax_number": "n",
  • "tax_id": "DE123456789",
  • "bank_account_owner": "Sarah Johnson",
  • "iban": "m",
  • "bank_account_iban": "DE89 3704 0044 0532 0130 00",
  • "bic": "yvdljn",
  • "bank_account_bic": "COBADEFFXXX",
  • "billing_type": "business",
  • "travel_radius": 18,
  • "max_distance_km": 50,
  • "available_for_selection": false,
  • "notes": "Available weekends",
  • "languages": [
    ],
  • "topics": [
    ],
  • "password_confirmation": "password123"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "1|h5FXyc63mfRyEQ6ekJMB8mwSDGTr6JVddxRF9E4af7ec1907",
  • "message": "Interpreter registration successful. Please wait for account approval."
}

Login user and create token

Request Body schema: application/json
required
email
required
string

User's email address.

password
required
string

User's password.

Responses

Response Schema: application/json
message
string
token
string
object

Request samples

Content type
application/json
{
  • "email": "admin@hoffnungstraeger.de",
  • "password": "password"
}

Response samples

Content type
application/json
{
  • "user": {
    },
  • "token": "1|h5FXyc63mfRyEQ6ekJMB8mwSDGTr6JVddxRF9E4af7ec1907",
  • "message": "Login successful"
}

Endpoints

Reset password

Authorizations:
default
Request Body schema: application/json
required
email
required
string

Das value muss eine gültige E-Mail-Adresse sein.

password
required
string
token
required
string

Request samples

Content type
application/json
{
  • "token": "architecto",
  • "email": "zbailey@example.net",
  • "password": "architecto"
}

Get languages optimized for frontend caching.

Returns a lightweight payload suitable for client-side storage.

Authorizations:
default

Responses

Response Schema: application/json
object
message
string
success
boolean

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    },
  • "message": "Frontend languages retrieved successfully"
}

Get all active languages.

Authorizations:
default

Responses

Response Schema: application/json
object
message
string
success
boolean

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    },
  • "message": "Languages retrieved successfully"
}

Get languages that are available from interpreters (for frontend client language selection).

Authorizations:
default

Responses

Response Schema: application/json
object
message
string
success
boolean

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    },
  • "message": "Available interpreter languages retrieved successfully"
}

Debug endpoint to investigate language availability issues.

This should be removed in production.

Authorizations:
default

Responses

Response Schema: application/json
object
message
string
success
boolean

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    },
  • "message": "Debug information retrieved successfully"
}

Get a specific language by ID or code.

Authorizations:
default
path Parameters
identifier
required
string
Example: architecto

Responses

Response samples

Content type
application/json
{
  • "success": false,
  • "message": "Language not found"
}

Get categories optimized for frontend caching.

Returns a lightweight payload suitable for client-side storage.

Authorizations:
default

Responses

Response Schema: application/json
object
message
string
success
boolean

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    },
  • "message": "Frontend categories retrieved successfully"
}

Get all active categories.

Authorizations:
default

Responses

Response Schema: application/json
object
message
string
success
boolean

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    },
  • "message": "Categories retrieved successfully"
}

Get a specific category by ID or slug.

Authorizations:
default
path Parameters
identifier
required
integer
Example: 2

Responses

Response Schema: application/json
object
message
string
success
boolean

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    },
  • "message": "Category retrieved successfully"
}

Handle profile deletion request

Authorizations:
default
Request Body schema: application/json
required
email
required
string

Das value muss eine gültige E-Mail-Adresse sein. Das value darf nicht mehr als 255 Zeichen haben.

reason
required
string

Das value muss mindestens 10 Zeichen haben. Das value darf nicht mehr als 1000 Zeichen haben.

Request samples

Content type
application/json
{
  • "email": "gbailey@example.net",
  • "reason": "m"
}

Logout user (revoke token)

Authorizations:
default

Logout from all devices (revoke all tokens)

Authorizations:
default

Get authenticated user profile

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Update user profile

Authorizations:
default
Request Body schema: application/json
optional
billing_email
string or null

Das value muss eine gültige E-Mail-Adresse sein. Das value darf nicht mehr als 255 Zeichen haben.

birth_date
string
city
string or null

Das value darf nicht mehr als 255 Zeichen haben.

email
string

Das value muss eine gültige E-Mail-Adresse sein. Das value darf nicht mehr als 255 Zeichen haben.

first_name
string

Das value darf nicht mehr als 255 Zeichen haben.

house_number
string or null

Das value darf nicht mehr als 255 Zeichen haben.

object

Interpreter profile fields (snake_case from middleware).

last_name
string

Das value darf nicht mehr als 255 Zeichen haben.

organization_name
string or null

Requester profile fields (for requesters). Das value darf nicht mehr als 255 Zeichen haben.

organization_type
string or null

Das value darf nicht mehr als 255 Zeichen haben.

phone
string or null

Das value darf nicht mehr als 255 Zeichen haben.

postal_code
string or null

Das value darf nicht mehr als 255 Zeichen haben.

salutation
string or null

Basic user fields.

street
string or null

Address fields (for both clients and interpreters). Das value darf nicht mehr als 255 Zeichen haben.

Request samples

Content type
application/json
{
  • "salutation": "architecto",
  • "first_name": "n",
  • "last_name": "g",
  • "email": "rowan.gulgowski@example.com",
  • "phone": "d",
  • "birth_date": null,
  • "organization_name": "l",
  • "organization_type": "j",
  • "billing_email": "lafayette.considine@example.com",
  • "street": "a",
  • "house_number": "y",
  • "city": "k",
  • "postal_code": "c",
  • "interpreter_profile": null
}

Change password

Authorizations:
default
Request Body schema: application/json
required
current_password
required
string
password
required
string

Request samples

Content type
application/json
{
  • "current_password": "architecto",
  • "password": "architecto"
}

Get user status

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Verify email address

Authorizations:
default

Resend email verification

Authorizations:
default

Display a listing of users with filtering and pagination

Authorizations:
default
Request Body schema: application/json
optional
email_verified
boolean
page
integer

Das value muss mindestens 1 sein.

per_page
integer

Das value muss mindestens 1 sein. Das value darf nicht größer als 100 sein.

role
string
Enum: "admin" "requester" "interpreter"
search
string

Das value darf nicht mehr als 255 Zeichen haben.

sort_by
string
Enum: "name" "email" "created_at" "last_login_at"
sort_direction
string
Enum: "asc" "desc"
status
string
Enum: "invited" "registered" "approved" "blocked"

Responses

Request samples

Content type
application/json
{
  • "per_page": 1,
  • "page": 22,
  • "search": "g",
  • "role": "requester",
  • "status": "blocked",
  • "sort_by": "email",
  • "sort_direction": "desc",
  • "email_verified": false
}

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Store a newly created user

Authorizations:
default
Request Body schema: application/json
required
email
required
string

Das value muss eine gültige E-Mail-Adresse sein.

first_name
required
string

Das value darf nicht mehr als 255 Zeichen haben.

last_name
required
string

Das value darf nicht mehr als 255 Zeichen haben.

password
required
string
phone
string or null

Das value darf nicht mehr als 255 Zeichen haben.

role
required
string
Enum: "admin" "requester" "interpreter"
status
string
Enum: "invited" "registered" "approved" "blocked"

Request samples

Content type
application/json
{
  • "first_name": "b",
  • "last_name": "n",
  • "email": "ashly64@example.com",
  • "password": "architecto",
  • "phone": "n",
  • "role": "admin",
  • "status": "registered"
}

Get user statistics

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Bulk operations on users

Authorizations:
default
Request Body schema: application/json
required
action
required
string
Enum: "approve" "block" "delete" "verify_email"
user_ids
Array of strings

The id of an existing record in the users table.

Request samples

Content type
application/json
{
  • "action": "verify_email",
  • "user_ids": null
}

Get available interpreters filtered by criteria

Authorizations:
default
Request Body schema: application/json
optional
accepts_longer_travel
string or null
Enum: "true" "false" "1" "0"
category_id
string or null
duration_hours
number or null

Das value muss mindestens 0.5 sein. Das value darf nicht größer als 24 sein.

location_lat
number or null

Das value muss zwischen -90 und 90 liegen.

location_lng
number or null

Das value muss zwischen -180 und 180 liegen.

preferred_gender
string or null
Enum: "Männlich" "Weiblich"
scheduled_at
string or null

Das value ist kein gültiges Datum.

source_languages
Array of strings

Das value darf nicht mehr als 255 Zeichen haben.

target_language
string or null

Das value darf nicht mehr als 255 Zeichen haben.

Responses

Request samples

Content type
application/json
{
  • "source_languages": [
    ],
  • "target_language": "n",
  • "preferred_gender": "Männlich",
  • "category_id": "architecto",
  • "location_lat": -89,
  • "location_lng": -180,
  • "accepts_longer_travel": "1",
  • "scheduled_at": "2025-10-30T10:17:52",
  • "duration_hours": 6
}

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Display the specified user

Authorizations:
default
path Parameters
user_id
required
string
Example: 019a074c-a59e-710e-9cf1-a2ce0a285769

The ID of the user.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Update the specified user

Authorizations:
default
path Parameters
user_id
required
string
Example: 019a074c-a59e-710e-9cf1-a2ce0a285769

The ID of the user.

Request Body schema: application/json
optional
email
string

Das value muss eine gültige E-Mail-Adresse sein.

first_name
string

Das value darf nicht mehr als 255 Zeichen haben.

last_name
string

Das value darf nicht mehr als 255 Zeichen haben.

password
string
phone
string or null

Das value darf nicht mehr als 255 Zeichen haben.

role
string
Enum: "admin" "requester" "interpreter"
status
string
Enum: "invited" "registered" "approved" "blocked"

Request samples

Content type
application/json
{
  • "first_name": "b",
  • "last_name": "n",
  • "email": "ashly64@example.com",
  • "password": null,
  • "phone": "v",
  • "role": "interpreter",
  • "status": "registered"
}

Remove the specified user

Authorizations:
default
path Parameters
user_id
required
string
Example: 019a074c-a59e-710e-9cf1-a2ce0a285769

The ID of the user.

Approve a user account

Authorizations:
default
path Parameters
user_id
required
string
Example: 019a074c-a59e-710e-9cf1-a2ce0a285769

The ID of the user.

Block a user account

Authorizations:
default
path Parameters
user_id
required
string
Example: 019a074c-a59e-710e-9cf1-a2ce0a285769

The ID of the user.

Verify user's email

Authorizations:
default
path Parameters
user_id
required
string
Example: 019a074c-a59e-710e-9cf1-a2ce0a285769

The ID of the user.

Get interpreter category preferences as whitelist (active categories = not blacklisted)

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Update interpreter category preferences from whitelist selection Stores as blacklist internally to auto-include future categories

Authorizations:
default
Request Body schema: application/json
required
whitelisted_category_ids
required
Array of integers

Das value muss mindestens 1 sein.

Request samples

Content type
application/json
{
  • "whitelisted_category_ids": [
    ]
}

getApiUser

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Display a listing of order requests

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Store a newly created order request

Authorizations:
default
Request Body schema: application/json
required
accepts_longer_travel
boolean or null
address_additional
string or null

Das value darf nicht mehr als 200 Zeichen haben.

budget_max
number or null

Das value muss mindestens 0 sein.

budget_min
number or null

Das value muss mindestens 0 sein.

category_id
string or null

Additional frontend fields.

client_country
string or null

Das value darf nicht mehr als 10 Zeichen haben.

client_first_name
string or null

Das value darf nicht mehr als 100 Zeichen haben.

client_id
string or null

The id of an existing record in the users table.

client_last_name
string or null

Das value darf nicht mehr als 100 Zeichen haben.

client_mobile
string or null

Das value darf nicht mehr als 20 Zeichen haben.

client_salutation
string or null

Client information fields. Das value darf nicht mehr als 50 Zeichen haben.

contact_method
string or null
Enum: "email" "phone" "both"
contact_person
string or null

Das value darf nicht mehr als 200 Zeichen haben.

description
string or null

Das value darf nicht mehr als 2000 Zeichen haben.

duration_hours
required
number

Das value muss mindestens 0.25 sein. Das value darf nicht größer als 24 sein.

estimated_duration
integer or null

Das value muss mindestens 1 sein. Das value darf nicht größer als 480 sein.

language_from
string or null

Legacy field names (for backward compatibility). Das value darf nicht mehr als 10 Zeichen haben.

language_to
string or null

Das value darf nicht mehr als 10 Zeichen haben.

location
required
string

Das value darf nicht mehr als 500 Zeichen haben.

notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

organization_name
string or null

Organization fields. Das value darf nicht mehr als 200 Zeichen haben.

preferred_date
string or null

Das value ist kein gültiges Datum. Das value muss ein Datum nach now sein.

preferred_gender
string or null

Accept category slug, not ID. Das value darf nicht mehr als 20 Zeichen haben.

preferred_time
string or null

Must be a valid date in the format H:i.

priority
string or null
Enum: "low" "medium" "high" "urgent"
scheduled_at
required
string

Das value ist kein gültiges Datum. Das value muss ein Datum nach now sein.

service_type
string or null
Enum: "interpretation" "translation" "both"
source_languages
required
Array of strings

Das value darf nicht mehr als 10 Zeichen haben.

special_requirements
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

target_language
required
string

Das value darf nicht mehr als 10 Zeichen haben.

title
string or null

Das value darf nicht mehr als 255 Zeichen haben.

Request samples

Content type
application/json
{
  • "title": "b",
  • "description": "Et animi quos velit et fugiat.",
  • "client_id": null,
  • "service_type": "both",
  • "source_languages": [
    ],
  • "target_language": "hwaykc",
  • "scheduled_at": "2051-11-23",
  • "duration_hours": 4,
  • "language_from": "gzmiyv",
  • "language_to": "dljnik",
  • "preferred_date": "2051-11-23",
  • "preferred_time": "10:17",
  • "estimated_duration": 22,
  • "location": "g",
  • "budget_min": 12,
  • "budget_max": 77,
  • "special_requirements": "i",
  • "priority": "urgent",
  • "contact_method": "phone",
  • "category_id": "architecto",
  • "preferred_gender": "ngzmiyvdljnikhwa",
  • "accepts_longer_travel": false,
  • "notes": "y",
  • "client_salutation": "k",
  • "client_first_name": "c",
  • "client_last_name": "m",
  • "client_mobile": "yuwpwlvqwrsitcps",
  • "client_country": "cqldzs",
  • "organization_name": "n",
  • "address_additional": "r",
  • "contact_person": "w"
}

Display the specified order request

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b836-728c-885a-3bfcfeec4593

The ID of the order request.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Update the specified order request

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b836-728c-885a-3bfcfeec4593

The ID of the order request.

Request Body schema: application/json
optional
assigned_to
string or null

The id of an existing record in the users table.

budget_max
number or null

Das value muss mindestens 0 sein.

budget_min
number or null

Das value muss mindestens 0 sein.

contact_method
string
Enum: "email" "phone" "both"
description
string

Das value darf nicht mehr als 2000 Zeichen haben.

estimated_duration
integer

Das value muss mindestens 1 sein. Das value darf nicht größer als 480 sein.

language_from
string

Das value darf nicht mehr als 10 Zeichen haben.

language_to
string

Das value darf nicht mehr als 10 Zeichen haben.

location
string

Das value darf nicht mehr als 500 Zeichen haben.

preferred_date
string

Das value ist kein gültiges Datum.

preferred_time
string or null

Must be a valid date in the format H:i.

priority
string
Enum: "low" "medium" "high" "urgent"
service_type
string
Enum: "interpretation" "translation" "both"
special_requirements
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

title
string

Das value darf nicht mehr als 255 Zeichen haben.

Request samples

Content type
application/json
{
  • "title": "b",
  • "description": "Et animi quos velit et fugiat.",
  • "service_type": "translation",
  • "language_from": "dljnik",
  • "language_to": "hwaykc",
  • "preferred_date": "2025-10-30T10:17:52",
  • "preferred_time": "10:17",
  • "estimated_duration": 24,
  • "location": "y",
  • "budget_min": 72,
  • "budget_max": 61,
  • "special_requirements": "p",
  • "priority": "medium",
  • "contact_method": "phone",
  • "assigned_to": null
}

Remove the specified order request

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b836-728c-885a-3bfcfeec4593

The ID of the order request.

Update order request status (for interpreter responses)

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b836-728c-885a-3bfcfeec4593

The ID of the order request.

Request Body schema: application/json
required
notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

rejection_reason
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

status
required
string
Enum: "accepted" "rejected" "requested"

Request samples

Content type
application/json
{
  • "status": "requested",
  • "rejection_reason": "b",
  • "notes": "n"
}

Convert order request to order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b836-728c-885a-3bfcfeec4593

The ID of the order request.

Request Body schema: application/json
required
end_time
required
string

Das value ist kein gültiges Datum. Das value muss ein Datum nach start_time sein.

hourly_rate
required
number

Das value muss mindestens 0 sein. Das value darf nicht größer als 9999.99 sein.

interpreter_id
string or null

The id of an existing record in the users table.

notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

start_time
required
string

Das value ist kein gültiges Datum. Das value muss ein Datum nach now sein.

Request samples

Content type
application/json
{
  • "interpreter_id": null,
  • "hourly_rate": 1,
  • "start_time": "2051-11-23",
  • "end_time": "2051-11-23",
  • "notes": "n"
}

Get order request statistics

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Display a listing of orders

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Store a newly created order

Authorizations:
default
Request Body schema: application/json
required
client_country
required
string

Das value darf nicht mehr als 2 Zeichen haben.

client_first_name
required
string

Das value darf nicht mehr als 255 Zeichen haben.

client_last_name
required
string

Das value darf nicht mehr als 255 Zeichen haben.

client_mobile
required
string

Das value darf nicht mehr als 20 Zeichen haben.

client_salutation
required
string

Das value darf nicht mehr als 10 Zeichen haben.

description
required
string

Das value darf nicht mehr als 1000 Zeichen haben.

estimated_duration_minutes
required
integer

Das value muss mindestens 15 sein. Das value darf nicht größer als 480 sein.

is_urgent
boolean
location
required
string

Das value darf nicht mehr als 500 Zeichen haben.

notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

requested_end_time
required
string

Das value ist kein gültiges Datum. Das value muss ein Datum nach requested_start_time sein.

requested_start_time
required
string

Das value ist kein gültiges Datum. Das value muss ein Datum nach now sein.

requirements
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

service_type
required
string
Enum: "interpretation" "translation" "both"
source_language_id
required
string

The id of an existing record in the system_languages table.

target_language_id
required
string

The id of an existing record in the system_languages table.

Request samples

Content type
application/json
{
  • "service_type": "translation",
  • "source_language_id": "architecto",
  • "target_language_id": "architecto",
  • "description": "Et animi quos velit et fugiat.",
  • "location": "d",
  • "requested_start_time": "2051-11-23",
  • "requested_end_time": "2051-11-23",
  • "estimated_duration_minutes": 22,
  • "is_urgent": true,
  • "requirements": "g",
  • "notes": "z",
  • "client_salutation": "miyvdl",
  • "client_first_name": "j",
  • "client_last_name": "n",
  • "client_mobile": "ikhwaykcmyuwpwlv",
  • "client_country": "qw"
}

Store a newly created order from request-mediator form

Authorizations:
default
Request Body schema: application/json
required
accepts_longer_travel
boolean
address_additional
string or null

Das value darf nicht mehr als 255 Zeichen haben.

category_id
string or null
client_country
required
string

Das value darf nicht mehr als 2 Zeichen haben.

client_first_name
required
string

Das value darf nicht mehr als 255 Zeichen haben.

client_last_name
required
string

Das value darf nicht mehr als 255 Zeichen haben.

client_mobile
required
string

Das value darf nicht mehr als 20 Zeichen haben.

client_salutation
required
string

Das value darf nicht mehr als 10 Zeichen haben.

contact_person
string or null

Das value darf nicht mehr als 255 Zeichen haben.

desired_interpreter_id
string or null

The id of an existing record in the users table.

duration_hours
required
number

Das value muss mindestens 0.5 sein. Das value darf nicht größer als 8 sein.

location
required
string

Das value darf nicht mehr als 500 Zeichen haben.

notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

organization_name
string or null

Das value darf nicht mehr als 255 Zeichen haben.

preferred_gender
string or null
scheduled_at
required
string

Das value ist kein gültiges Datum. Das value muss ein Datum nach now sein.

source_languages
required
Array of strings
target_language
required
string

Request samples

Content type
application/json
{
  • "source_languages": [
    ],
  • "target_language": "architecto",
  • "scheduled_at": "2051-11-23",
  • "duration_hours": 4,
  • "location": "g",
  • "category_id": "architecto",
  • "preferred_gender": "architecto",
  • "accepts_longer_travel": false,
  • "client_salutation": "ngzmiy",
  • "client_first_name": "v",
  • "client_last_name": "d",
  • "client_mobile": "ljnikhwaykcmyuwp",
  • "client_country": "wl",
  • "organization_name": "v",
  • "address_additional": "q",
  • "contact_person": "w",
  • "notes": "r",
  • "desired_interpreter_id": null
}

Get all invoices for the authenticated user

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Get order statistics

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Display the specified order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Update the specified order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Request Body schema: application/json
required
actual_duration
integer or null

Das value muss mindestens 1 sein. Das value darf nicht größer als 480 sein.

client_country
required
string

Das value darf nicht mehr als 2 Zeichen haben.

client_first_name
required
string

Das value darf nicht mehr als 255 Zeichen haben.

client_id
string

The id of an existing record in the users table.

client_last_name
required
string

Das value darf nicht mehr als 255 Zeichen haben.

client_mobile
required
string

Das value darf nicht mehr als 20 Zeichen haben.

client_salutation
required
string

Das value darf nicht mehr als 10 Zeichen haben.

end_time
string

Das value ist kein gültiges Datum. Das value muss ein Datum nach start_time sein.

estimated_duration
integer

Das value muss mindestens 1 sein. Das value darf nicht größer als 480 sein.

hourly_rate
number

Das value muss mindestens 0 sein. Das value darf nicht größer als 9999.99 sein.

interpreter_id
string or null

The id of an existing record in the users table.

language_from
string

Das value darf nicht mehr als 10 Zeichen haben.

language_to
string

Das value darf nicht mehr als 10 Zeichen haben.

location
string

Das value darf nicht mehr als 500 Zeichen haben.

notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

service_type
string
Enum: "interpretation" "translation" "both"
special_requirements
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

start_time
string

Das value ist kein gültiges Datum.

status
string
Enum: "pending" "confirmed" "in_progress" "completed" "cancelled"

Request samples

Content type
application/json
{
  • "client_id": null,
  • "interpreter_id": null,
  • "start_time": "2025-10-30T10:17:52",
  • "end_time": "2051-11-23",
  • "location": "n",
  • "service_type": "interpretation",
  • "language_from": "gzmiyv",
  • "language_to": "dljnik",
  • "status": "in_progress",
  • "hourly_rate": 14,
  • "estimated_duration": 18,
  • "actual_duration": 22,
  • "special_requirements": "y",
  • "notes": "k",
  • "client_salutation": "cmyuwp",
  • "client_first_name": "w",
  • "client_last_name": "l",
  • "client_mobile": "vqwrsitcpscqldzs",
  • "client_country": "nr"
}

Remove the specified order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Update order status

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Request Body schema: application/json
required
notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

status
required
string
Enum: "pending" "open" "assigned" "in_progress" "completed" … 4 more

Request samples

Content type
application/json
{
  • "status": "payment_instructed",
  • "notes": "b"
}

Cancel order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Request Body schema: application/json
required
reason
required
string

Das value darf nicht mehr als 1000 Zeichen haben.

Request samples

Content type
application/json
{
  • "reason": "b"
}

Assign interpreter to order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Request Body schema: application/json
required
interpreter_id
required
string

The id of an existing record in the users table.

notes
string or null

Das value darf nicht mehr als 500 Zeichen haben.

Request samples

Content type
application/json
{
  • "interpreter_id": "architecto",
  • "notes": "n"
}

Check in to an order Only the assigned interpreter can check in and only at the appropriate time

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Check out from an order Only the assigned interpreter can check out and only after checking in

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Manual check-in/out for past orders Allows setting both times directly for orders that weren't properly checked in/out

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Update check-in and check-out times for an order Only allowed for interpreters and only before invoice creation

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Request invoice creation (interpreter role only)

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Create assignment (for tests compatibility)

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Request Body schema: application/json
required
hourly_rate
required
number

Das value muss mindestens 0 sein.

interpreter_id
required
string

The id of an existing record in the users table.

notes
string or null

Das value darf nicht mehr als 500 Zeichen haben.

Request samples

Content type
application/json
{
  • "interpreter_id": "architecto",
  • "hourly_rate": 39,
  • "notes": "g"
}

Get assignments for order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Add additional cost to order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Request Body schema: application/json
required
amount
required
number

Das value muss mindestens 0 sein.

category
required
string
Enum: "travel" "accommodation" "meal" "equipment" "other"
description
required
string

Das value darf nicht mehr als 500 Zeichen haben.

notes
string or null

Das value darf nicht mehr als 500 Zeichen haben.

receipt_url
string or null

Must be a valid URL.

Request samples

Content type
application/json
{}

Get additional costs for order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Get invoices for an order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Create invoice for completed order (transition to InvoiceCreated state)

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Regenerate invoice for an order in invoice_created state Allows creating a new invoice with updated costs/times while in invoice_created state

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Get specific invoice details

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

invoiceId
required
string
Example: 019a074c-e76f-73f1-adb1-96e8366b5bf4

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Update invoice notes

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

invoiceId
required
string
Example: 019a074c-e76f-73f1-adb1-96e8366b5bf4

Download invoice Receipt

Authorizations:
default
path Parameters
additionalCostsId
required
string
Example: architecto
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

invoiceId
required
string
Example: 019a074c-e76f-73f1-adb1-96e8366b5bf4

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Download invoice PDF

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

invoiceId
required
string
Example: 019a074c-e76f-73f1-adb1-96e8366b5bf4

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Submit invoice for approval

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

invoiceId
required
string
Example: 019a074c-e76f-73f1-adb1-96e8366b5bf4

Create new invoice revision after rejection

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Preview invoice costs without creating invoice

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Instruct payment for an invoice (change status to payment_instructed)

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

invoiceId
required
string
Example: 019a074c-e76f-73f1-adb1-96e8366b5bf4

Dispute an invoice with a message

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

invoiceId
required
string
Example: 019a074c-e76f-73f1-adb1-96e8366b5bf4

Get check-in/check-out status for an order

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Cancel an order by the assigned interpreter Only the assigned interpreter can cancel their order within certain conditions

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Check if an order can be cancelled by the assigned interpreter

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Generate failure fee invoice manually (for interpreters)

Authorizations:
default
path Parameters
id
required
string
Example: 019a074c-b51c-7191-ac19-922640bdb6f3

The ID of the order.

Get single additional cost

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the additional cost.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Update additional cost

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the additional cost.

Request Body schema: application/json
required
amount
required
number

Das value muss mindestens 0 sein.

category
required
string
Enum: "travel" "accommodation" "meal" "equipment" "other"
description
required
string

Das value darf nicht mehr als 255 Zeichen haben.

notes
string or null
receipt_url
string or null

Request samples

Content type
application/json
{}

Delete additional cost

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the additional cost.

Approve additional cost

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the additional cost.

Request Body schema: application/json
optional
notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

Request samples

Content type
application/json
{
  • "notes": "b"
}

Reject additional cost

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the additional cost.

Request Body schema: application/json
optional
notes
string or null

Das value darf nicht mehr als 1000 Zeichen haben.

Request samples

Content type
application/json
{
  • "notes": "b"
}

Upload a receipt image for additional costs Uses the default S3 disk for general uploads

Authorizations:
default
Request Body schema: multipart/form-data
required
receipt
required
string <binary>

Das value muss ein Bild sein. Das value darf nicht größer als 5120 Kilobytes sein.

Delete a receipt image

Authorizations:
default
Request Body schema: application/json
required
disk
string or null
Enum: "s3" "public" "local" "invoices"
path
required
string

Request samples

Content type
application/json
{
  • "path": "architecto",
  • "disk": "invoices"
}

Test endpoint to check if device API is accessible

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

List user's registered devices

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Register a device for push notifications

Authorizations:
default

Unregister a device (deactivate)

Authorizations:
default

Update device activity (heartbeat)

Authorizations:
default

Remove inactive devices

Authorizations:
default

Get paginated notifications for the authenticated user

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Get only unread notifications for the authenticated user

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Get notification statistics for the authenticated user

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Get notification types and their counts

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Mark all notifications as read for the authenticated user

Authorizations:
default

Bulk operations on notifications

Authorizations:
default
Request Body schema: application/json
required
action
required
string
Enum: "read" "unread" "delete"
notification_ids
required
Array of strings

Das value muss eine gültige UUID sein. The id of an existing record in the system_notifications table.

Request samples

Content type
application/json
{
  • "action": "unread",
  • "notification_ids": [
    ]
}

Get notification preferences for the authenticated user

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Update notification preferences for the authenticated user

Authorizations:
default
Request Body schema: application/json
required
required
Array of objects
Array
required
object
notification_type
required
string
settings
object

Request samples

Content type
application/json
{
  • "preferences": [
    ]
}

Update a single notification preference

Authorizations:
default
Request Body schema: application/json
required
required
object
notification_type
required
string
settings
object

Request samples

Content type
application/json
{
  • "notification_type": "architecto",
  • "channels": [ ],
  • "settings": null
}

Get device push notification status

Authorizations:
default

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Get a specific notification

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the notification.

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthenticated."
}

Delete a notification

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the notification.

Mark a notification as read

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the notification.

Mark a notification as unread

Authorizations:
default
path Parameters
id
required
string
Example: architecto

The ID of the notification.

Get rating details by token (for web rating page)

Authorizations:
default
path Parameters
token
required
string
Example: architecto

The token.

Responses

Response samples

Content type
application/json
{
  • "success": false,
  • "message": "Bewertungslink ungültig oder nicht gefunden."
}

Submit rating

Authorizations:
default
path Parameters
token
required
string
Example: architecto

The token.