Contratti API Backend
Ultimo aggiornamento: 2026-04-27
Scopo
Questo documento descrive i contratti API core esposti dal backend Logeon.
Include:
- convenzioni di trasporto e sicurezza;
- contratto errori;
- mappa completa degli endpoint runtime (game + admin) presenti in
app/routes/api.php; - note operative sui flussi core piu sensibili.
Non include:
- API funzionali interne dei moduli opzionali;
- checklist o cronologia di sviluppo interna.
Convenzioni comuni
Trasporto
- Metodo standard:
POST. - Content-Type standard:
application/x-www-form-urlencoded. - Payload applicativo nel campo
datacontenente un JSON object. - CSRF: token in payload (
_csrf) e headerX-CSRF-Token.
Esempio body form:
data={"thread_id":12,"limit":30,"_csrf":"..."}
Autenticazione
- Quasi tutti gli endpoint richiedono sessione valida.
- Molti endpoint gameplay richiedono anche personaggio attivo (
requireCharacter). - Le policy vengono sempre applicate lato backend, non solo lato UI.
Contratto errore
- Formato minimo:
{"error":"Messaggio"}. - Formato esteso:
{"error":"Messaggio","error_code":"codice_stabile"}. - HTTP status tipici:
400: validazione/policy/rate-limit applicativo;403: non autorizzato;404: risorsa non trovata.
Codici base ricorrenti:
validation_errorunauthorizednot_foundsystem_errorcsrf_invalidsession_missingsession_expiredsession_revoked
Codici business principali
Economy / Inventory
shop_unavailable,shop_item_invalid,shop_item_unavailablequantity_invalid,quantity_unavailablestock_insufficient,shop_limit_reached,shop_daily_limit_reachedinsufficient_funds,currency_unavailable,character_invaliditem_not_found,item_equipped,item_not_sellable,sell_price_invalid,sell_faileditem_invalid,item_not_equippable,item_not_usable,item_cooldown_activeslot_unavailable,slot_required,slot_invalidinventory_capacity_reached,inventory_stack_limit_reached
Social / Location
message_empty,message_too_long,subject_required,subject_too_longdm_rate_limited,message_type_invalid,thread_invalid,thread_forbiddenlocation_invalid,location_access_deniedlocation_chat_rate_limited,location_whisper_rate_limitedcommand_invalid,command_argument_invalid,dice_format_invalidwhisper_invalid,whisper_empty,whisper_too_longrecipient_invalid,recipient_self_not_allowed,recipient_not_in_locationinvite_payload_invalid,invite_self_not_allowedlocation_invite_rate_limited,location_invite_respond_rate_limitedinvite_owner_required,invite_private_only,invite_limit_reached,invite_not_found_or_expired
Character / Profile
character_invalid,character_not_found,profile_forbiddenpayload_missing,password_invalid,character_delete_already_scheduledsocial_status_invalidprofile_url_invalid,profile_height_invalid,profile_weight_invalidavailability_invalid,dm_policy_invalid,invite_policy_invalidcharacter_name_invalid,character_name_too_longcharacter_name_same_as_current,character_name_already_usedcharacter_name_request_pending,character_name_request_cooldownevent_required_fields,event_forbidden,event_invalid,event_not_foundprofile_logs_forbidden,profile_session_logs_forbidden
Moduli (core orchestrazione)
module_not_found,module_not_installedmodule_dependency_missing,module_incompatible_coremodule_activation_failed,module_deactivation_failedmodule_deactivation_requires_confirmationmodule_uninstall_requires_inactive,module_uninstall_failedmodule_bundled_no_purge— modulo Classe A (bundled standard), uninstall non supportatomodule_audit_failed
Attributi personaggio
attributes_system_disabledattribute_definition_not_found,attribute_slug_conflictattribute_range_invalid,attribute_default_out_of_rangeattribute_rule_invalid,attribute_rule_step_invalidattribute_override_not_allowed,attribute_update_forbiddenattribute_recompute_failed
Stati narrativi
state_not_found,state_conflict_blockedstate_apply_failed,state_remove_failed
Eventi di sistema
system_event_not_found,system_event_invalid_statesystem_event_schedule_invalidsystem_event_participation_forbidden,system_event_participation_conflictsystem_event_reward_invalid,system_event_effect_unsupportedsystem_event_feature_disabled
Quest
quest_not_found,quest_definition_invalidquest_instance_invalid_statequest_participation_forbidden,quest_participation_conflictquest_condition_invalid,quest_outcome_invalid,quest_trigger_unsupportedquest_feature_disabledquest_closure_invalid,quest_closure_forbiddenquest_reward_invalid,quest_reward_unsupported,quest_history_forbidden
Auth / accesso account
google_auth_disabled,google_auth_not_configured,google_oauth_deniedauth_google_client_id_invalid,auth_google_client_secret_invalid,auth_google_redirect_uri_invalidmulti_character_max_per_user_invalid
Mappa completa endpoint core
Accesso account
POST /signinPOST /signin/characters/listPOST /signin/character/selectPOST /signoutPOST /forgot-passwordPOST /reset-passwordGET /auth/google/start(flusso web auth)GET /auth/google/callback(flusso web auth)
Messaggi privati
POST /message/threadsPOST /message/threadPOST /message/sendPOST /message/unreadPOST /message/reports/create
Lavori
POST /jobs/availablePOST /jobs/assignPOST /jobs/leavePOST /jobs/currentPOST /jobs/task/complete
Gilde (gameplay)
POST /guilds/listPOST /guilds/character/listPOST /guilds/getPOST /guilds/applyPOST /guilds/membersPOST /guilds/rolesPOST /guilds/requirements/optionsPOST /guilds/requirements/upsertPOST /guilds/requirements/deletePOST /guilds/applicationsPOST /guilds/application/decidePOST /guilds/kick/requestPOST /guilds/kick/decidePOST /guilds/kickPOST /guilds/promotePOST /guilds/salary/claimPOST /guilds/primaryPOST /guilds/logsPOST /guilds/announcementsPOST /guilds/announcement/createPOST /guilds/announcement/deletePOST /guilds/eventsPOST /guilds/event/createPOST /guilds/event/delete
Luogo, chat, sussurri, inviti, drop
POST /location/invitesPOST /location/invitePOST /location/invite/respondPOST /location/invite/owner-updatesPOST /location/messages/listPOST /location/messages/sendPOST /location/whispers/listPOST /location/whispers/threadsPOST /location/whispers/unreadPOST /location/whispers/sendPOST /location/whispers/policyPOST /location/drops/listPOST /location/drops/dropPOST /location/drops/pick
Shop
POST /shop/sellablesPOST /shop/sellPOST /shop/itemsPOST /shop/buy
Banca
POST /bank/summaryPOST /bank/depositPOST /bank/withdrawPOST /bank/transfer
Settings gameplay
POST /settings/uploadPOST /settings/passwordPOST /settings/sessions/revoke
Eventi personaggio
POST /events/listPOST /events/createPOST /events/updatePOST /events/delete
Conflitti
POST /conflicts/listPOST /conflicts/getPOST /conflicts/openPOST /conflicts/proposePOST /conflicts/proposal/respondPOST /conflicts/location/feedPOST /conflicts/participants/upsertPOST /conflicts/action/addPOST /conflicts/action/executePOST /conflicts/status/setPOST /conflicts/rollPOST /conflicts/resolvePOST /conflicts/close
Inventario ed equip
POST /inventory/slotsPOST /inventory/availablePOST /inventory/equippedPOST /inventory/equipPOST /inventory/unequipPOST /inventory/destroyPOST /inventory/swapPOST /inventory/categoriesPOST /items/use
Profilo e relazioni
POST /profile/updatePOST /profile/availabilityPOST /profile/visibilityPOST /profile/settingsPOST /profile/name-requestPOST /profile/loanface-requestPOST /profile/identity-requestPOST /profile/deletePOST /profile/delete/cancelPOST /profile/relationships/html/getPOST /profile/relationships/html/updatePOST /profile/bonds/listPOST /profile/bonds/requestPOST /profile/bonds/request/respondPOST /profile/logs/experiencePOST /profile/logs/economyPOST /profile/logs/sessionsPOST /profile/master-notes/updatePOST /profile/health/updatePOST /profile/experience/assignPOST /profile/attributes/listPOST /profile/attributes/update-valuesPOST /profile/attributes/recompute
Archetipi e creazione personaggio
POST /character/createPOST /archetypes/listPOST /archetypes/my
Tag narrativi (game)
POST /narrative-tags/entity
Endpoint lista (/list/*)
POST /list/nationalitiesPOST /list/narrative-tagsPOST /list/mapsPOST /list/locationsPOST /list/profile/bagPOST /list/onlinesPOST /list/onlines/completePOST /list/characters/searchPOST /list/forum-typesPOST /list/forumPOST /list/newsPOST /list/forum/threadsPOST /list/items
Endpoint get (/get/*)
POST /get/weatherPOST /get/profilePOST /get/bagPOST /get/forumPOST /get/forum/thread
Meteo e clima
POST /weather/optionsPOST /weather/global/setPOST /weather/global/clearPOST /weather/world/optionsPOST /weather/world/setPOST /weather/world/clearPOST /weather/location/setPOST /weather/location/clearPOST /weather/climate-areasPOST /weather/climate-areas/createPOST /weather/climate-areas/updatePOST /weather/climate-areas/deletePOST /weather/climate-areas/assignPOST /weather/typesPOST /weather/types/createPOST /weather/types/updatePOST /weather/types/deletePOST /weather/seasonsPOST /weather/seasons/createPOST /weather/seasons/updatePOST /weather/seasons/deletePOST /weather/zonesPOST /weather/zones/createPOST /weather/zones/updatePOST /weather/zones/deletePOST /weather/profilesPOST /weather/profiles/upsertPOST /weather/profiles/deletePOST /weather/profiles/weightsPOST /weather/profiles/weights/syncPOST /weather/assignmentsPOST /weather/assignments/upsertPOST /weather/assignments/deletePOST /weather/overridesPOST /weather/overrides/upsertPOST /weather/overrides/delete
Stati narrativi (core)
POST /narrative-states/catalogPOST /narrative-states/applyPOST /narrative-states/removePOST /admin/narrative-states/listPOST /admin/narrative-states/createPOST /admin/narrative-states/updatePOST /admin/narrative-states/delete
Upload file
POST /uploader
Registro eventi narrativi (core)
POST /narrative-events/listPOST /narrative-events/getPOST /admin/narrative-events/listPOST /admin/narrative-events/getPOST /admin/narrative-events/createPOST /admin/narrative-events/updatePOST /admin/narrative-events/attachPOST /admin/narrative-events/delete
Eventi di sistema (core)
POST /system-events/listPOST /system-events/getPOST /system-events/participation/joinPOST /system-events/participation/leave
Quest (core)
POST /quests/listPOST /quests/getPOST /quests/history/listPOST /quests/history/getPOST /quests/participation/joinPOST /quests/participation/leavePOST /quests/staff/instances/listPOST /quests/staff/step/confirmPOST /quests/staff/instance/status-setPOST /quests/staff/instance/force-progressPOST /quests/staff/closure/getPOST /quests/staff/closure/finalize
Lifecycle personaggio (core)
POST /lifecycle/currentPOST /lifecycle/historyPOST /admin/lifecycle/phases/listPOST /admin/lifecycle/phases/createPOST /admin/lifecycle/phases/updatePOST /admin/lifecycle/phases/deletePOST /admin/lifecycle/characters/currentPOST /admin/lifecycle/characters/historyPOST /admin/lifecycle/characters/transition
Fazioni (core)
POST /factions/listPOST /factions/getPOST /factions/myPOST /admin/factions/listPOST /admin/factions/getPOST /admin/factions/createPOST /admin/factions/updatePOST /admin/factions/deletePOST /admin/factions/members/listPOST /admin/factions/members/addPOST /admin/factions/members/updatePOST /admin/factions/members/removePOST /admin/factions/relations/listPOST /admin/factions/relations/setPOST /admin/factions/relations/remove
Notifiche
POST /notifications/listPOST /notifications/readPOST /notifications/read-deletePOST /notifications/deletePOST /notifications/read-allPOST /notifications/respondPOST /notifications/unread-count
Admin: mappa completa endpoint
Dashboard, utenti, personaggi, blacklist
POST /admin/dashboard/summaryPOST /admin/users/listPOST /admin/users/reset-passwordPOST /admin/users/permissionsPOST /admin/users/disconnectPOST /admin/users/restrictPOST /admin/characters/listPOST /admin/characters/getPOST /admin/characters/logs/experiencePOST /admin/characters/logs/economyPOST /admin/characters/logs/sessionsPOST /admin/blacklist/listPOST /admin/blacklist/createPOST /admin/blacklist/updatePOST /admin/blacklist/delete
Cataloghi oggetti, equip, categorie
POST /admin/items/listPOST /admin/items/typesPOST /admin/items/rarities/listPOST /admin/items/rarities/admin-listPOST /admin/items/rarities/createPOST /admin/items/rarities/updatePOST /admin/items/rarities/deletePOST /admin/items/createPOST /admin/items/updatePOST /admin/items/deletePOST /admin/equipment-slots/listPOST /admin/equipment-slots/createPOST /admin/equipment-slots/updatePOST /admin/equipment-slots/deletePOST /admin/item-equipment-rules/listPOST /admin/item-equipment-rules/createPOST /admin/item-equipment-rules/updatePOST /admin/item-equipment-rules/deletePOST /admin/categories/listPOST /admin/categories/createPOST /admin/categories/updatePOST /admin/categories/delete
Valute, negozi, inventario negozi
POST /admin/currencies/listPOST /admin/currencies/createPOST /admin/currencies/updatePOST /admin/currencies/deletePOST /admin/shops/listPOST /admin/shops/createPOST /admin/shops/updatePOST /admin/shops/deletePOST /admin/inventory/listPOST /admin/inventory/createPOST /admin/inventory/updatePOST /admin/inventory/delete
Mappe e luoghi
POST /admin/maps/listPOST /admin/maps/createPOST /admin/maps/updatePOST /admin/maps/deletePOST /admin/locations/listPOST /admin/locations/createPOST /admin/locations/editPOST /admin/locations/deletePOST /admin/locations/update
Contenuti
POST /admin/storyboards/listPOST /admin/storyboards/createPOST /admin/storyboards/updatePOST /admin/storyboards/deletePOST /admin/rules/listPOST /admin/rules/createPOST /admin/rules/updatePOST /admin/rules/deletePOST /admin/how-to-play/listPOST /admin/how-to-play/createPOST /admin/how-to-play/updatePOST /admin/how-to-play/deletePOST /admin/news/listPOST /admin/news/createPOST /admin/news/updatePOST /admin/news/delete
Social status e richieste personaggio
POST /admin/characters/social-statusPOST /admin/social-status/listPOST /admin/social-status/admin-listPOST /admin/social-status/createPOST /admin/social-status/updatePOST /admin/social-status/deletePOST /admin/characters/name-requests/listPOST /admin/characters/loanface-requests/listPOST /admin/characters/identity-requests/listPOST /admin/characters/admin-edit-identityPOST /admin/characters/admin-edit-narrativePOST /admin/characters/admin-edit-statsPOST /admin/characters/admin-edit-economyPOST /admin/characters/admin-edit-notesPOST /admin/characters/name-request/decidePOST /admin/characters/loanface-request/decidePOST /admin/characters/identity-request/decide
Lavori admin
POST /admin/jobs/listPOST /admin/jobs/createPOST /admin/jobs/updatePOST /admin/jobs/deletePOST /admin/jobs-levels/listPOST /admin/jobs-levels/createPOST /admin/jobs-levels/updatePOST /admin/jobs-levels/deletePOST /admin/jobs-tasks/listPOST /admin/jobs-tasks/getPOST /admin/jobs-tasks/createPOST /admin/jobs-tasks/updatePOST /admin/jobs-tasks/delete
Gilde admin e cataloghi correlati
POST /admin/guild-alignments/listPOST /admin/guild-alignments/createPOST /admin/guild-alignments/updatePOST /admin/guild-alignments/deletePOST /admin/guilds/listPOST /admin/guilds/createPOST /admin/guilds/updatePOST /admin/guilds/deletePOST /admin/guilds/admin-listPOST /admin/guilds/admin-createPOST /admin/guilds/admin-updatePOST /admin/guilds/admin-deletePOST /admin/guilds/roles-listPOST /admin/guilds/roles-createPOST /admin/guilds/roles-updatePOST /admin/guilds/roles-deletePOST /admin/guilds/events-listPOST /admin/guilds/events-createPOST /admin/guilds/events-updatePOST /admin/guilds/events-deletePOST /admin/guild-roles/listPOST /admin/guild-roles/createPOST /admin/guild-roles/updatePOST /admin/guild-roles/deletePOST /admin/guild-role-scopes/listPOST /admin/guild-role-scopes/createPOST /admin/guild-role-scopes/updatePOST /admin/guild-role-scopes/deletePOST /admin/guild-requirements/listPOST /admin/guild-requirements/createPOST /admin/guild-requirements/updatePOST /admin/guild-requirements/deletePOST /admin/guild-role-locations/listPOST /admin/guild-role-locations/createPOST /admin/guild-role-locations/updatePOST /admin/guild-role-locations/delete
Forum admin
POST /admin/forums/listPOST /admin/forums/types-listPOST /admin/forums/createPOST /admin/forums/updatePOST /admin/forums/deletePOST /admin/forum-types/listPOST /admin/forum-types/createPOST /admin/forum-types/updatePOST /admin/forum-types/delete
Settings admin
POST /admin/settings/uploadPOST /admin/settings/getPOST /admin/settings/update
Moduli (core governance)
POST /admin/modules/listPOST /admin/modules/activatePOST /admin/modules/deactivatePOST /admin/modules/uninstallPOST /admin/modules/audit
Attributi personaggio (core)
POST /admin/character-attributes/settings/getPOST /admin/character-attributes/settings/updatePOST /admin/character-attributes/definitions/listPOST /admin/character-attributes/definitions/createPOST /admin/character-attributes/definitions/updatePOST /admin/character-attributes/definitions/deactivatePOST /admin/character-attributes/definitions/reorderPOST /admin/character-attributes/rules/getPOST /admin/character-attributes/rules/upsertPOST /admin/character-attributes/rules/deletePOST /admin/character-attributes/recompute
Log amministrativi
POST /admin/logs/conflicts/listPOST /admin/logs/currency/listPOST /admin/logs/experience/listPOST /admin/logs/fame/listPOST /admin/logs/guild/listPOST /admin/logs/job/listPOST /admin/logs/location-access/listPOST /admin/logs/sys/list
Archetipi admin
POST /admin/archetypes/listPOST /admin/archetypes/createPOST /admin/archetypes/updatePOST /admin/archetypes/deletePOST /admin/archetypes/config/getPOST /admin/archetypes/config/updatePOST /admin/archetypes/character/listPOST /admin/archetypes/character/assignPOST /admin/archetypes/character/remove
Segnalazioni messaggi
POST /admin/message-reports/listPOST /admin/message-reports/getPOST /admin/message-reports/update-statusPOST /admin/message-reports/assign
Tag narrativi admin
POST /admin/narrative-tags/listPOST /admin/narrative-tags/createPOST /admin/narrative-tags/updatePOST /admin/narrative-tags/deletePOST /admin/narrative-tags/entity/getPOST /admin/narrative-tags/entity/syncPOST /admin/narrative-tags/entity/search
Conflitti admin
POST /admin/conflicts/settings/getPOST /admin/conflicts/settings/updatePOST /admin/conflicts/force-openPOST /admin/conflicts/force-closePOST /admin/conflicts/edit-logPOST /admin/conflicts/override-roll
Eventi di sistema admin
POST /admin/system-events/listPOST /admin/system-events/getPOST /admin/system-events/createPOST /admin/system-events/updatePOST /admin/system-events/deletePOST /admin/system-events/status/setPOST /admin/system-events/effects/listPOST /admin/system-events/effects/upsertPOST /admin/system-events/effects/deletePOST /admin/system-events/participations/listPOST /admin/system-events/participations/upsertPOST /admin/system-events/participations/removePOST /admin/system-events/rewards/assignPOST /admin/system-events/rewards/logPOST /admin/system-events/maintenance/run
Quest admin
POST /admin/quests/definitions/listPOST /admin/quests/definitions/createPOST /admin/quests/definitions/updatePOST /admin/quests/definitions/publishPOST /admin/quests/definitions/archivePOST /admin/quests/definitions/deletePOST /admin/quests/definitions/reorderPOST /admin/quests/steps/listPOST /admin/quests/steps/upsertPOST /admin/quests/steps/deletePOST /admin/quests/steps/reorderPOST /admin/quests/conditions/listPOST /admin/quests/conditions/upsertPOST /admin/quests/conditions/deletePOST /admin/quests/outcomes/listPOST /admin/quests/outcomes/upsertPOST /admin/quests/outcomes/deletePOST /admin/quests/instances/listPOST /admin/quests/instances/getPOST /admin/quests/instances/assignPOST /admin/quests/instances/status/setPOST /admin/quests/instances/step/setPOST /admin/quests/closures/listPOST /admin/quests/closures/getPOST /admin/quests/closures/upsertPOST /admin/quests/rewards/listPOST /admin/quests/rewards/assignPOST /admin/quests/rewards/removePOST /admin/quests/links/listPOST /admin/quests/links/upsertPOST /admin/quests/links/deletePOST /admin/quests/logs/listPOST /admin/quests/maintenance/run
Contratti operativi dettagliati (core)
Questa sezione aggiunge il dettaglio operativo ai gruppi endpoint principali:
- scopo dell'endpoint;
- request principali;
- response principali;
- errori funzionali ricorrenti.
Le route restano quelle elencate nella mappa completa sopra.
Accesso account, OAuth Google, multi-personaggio
POST /signin
Scopo:
- autenticazione account;
- instradamento flusso verso gioco, creazione personaggio o selezione personaggio.
Response tipiche:
- login completo:
user,character; - creazione personaggio richiesta:
error_character(title,body,user); - selezione personaggio richiesta:
error_character_select(title,body,user,characters,max_characters); - errore autenticazione:
error_auth.
POST /signin/characters/list
Scopo:
- elenco personaggi associati all'account autenticato in sessione.
Response:
characters[]con record sanitizzati (id,name,surname,gender,availability,last_map,last_location,date_last_signin);max_characters.
POST /signin/character/select
Request:
character_id(obbligatorio).
Response:
- login finalizzato con
user+character; - errore auth su personaggio non appartenente all'account.
GET /auth/google/start e GET /auth/google/callback
Regole:
- abilitazione runtime tramite
auth_google_enabled=1; - configurazione su
/admin/settings/get|update:
auth_google_enabledauth_google_client_idauth_google_client_secretauth_google_redirect_uri;
- il pulsante Google in UI appare solo se il backend espone la feature attiva.
Multi-personaggio
Chiavi runtime (sys_configs):
multi_character_enabled(0|1);multi_character_max_per_user(1..10).
Comportamento:
- se
multi_character_enabled=0, il flusso resta single-character; - se
multi_character_enabled=1, login puo richiedere selezione personaggio.
Messaggi privati e segnalazioni messaggi
POST /message/threads
Scopo:
- elenco thread DM del personaggio.
Request principali:
- filtri opzionali di pagina/limite.
Response:
- dataset thread con metadati unread/timestamp.
POST /message/thread
Scopo:
- dettaglio singolo thread DM.
Request:
thread_id(obbligatorio).
POST /message/send
Request principali:
to_character_id;message;- opzionale
subject.
Errori ricorrenti:
message_empty,message_too_long,subject_required,subject_too_long;dm_rate_limited,thread_forbidden,character_invalid.
POST /message/unread
Scopo:
- conteggio/estrazione DM non lette.
POST /message/reports/create
Scopo:
- apertura segnalazione moderazione su messaggio.
Request:
message_id(obbligatorio);reason_code(obbligatorio);reason_text(opzionale).
Errori:
message_not_found;message_report_invalid_reason.
Lavori (/jobs/*)
POST /jobs/available
Scopo:
- elenco lavori disponibili per il personaggio corrente.
POST /jobs/assign
Request:
job_id(obbligatorio).
POST /jobs/leave
Scopo:
- uscita dal lavoro attivo.
POST /jobs/current
Scopo:
- dettaglio lavoro corrente e avanzamento.
POST /jobs/task/complete
Request tipica:
job_task_id;- eventuale scelta/contesto (
job_choice,location_id) in base al task.
Errori ricorrenti:
job_task_invalid,job_task_not_available,job_choice_invalid,job_location_required.
Gilde gameplay (/guilds/*)
Endpoint e scopo:
/guilds/list: elenco pubblico gilde;/guilds/character/list: gilde del personaggio;/guilds/get: dettaglio gilda;/guilds/apply: candidatura;/guilds/members: membri e ruoli;/guilds/roles: ruoli disponibili;/guilds/requirements/options|upsert|delete: requisiti di ingresso;/guilds/applications+/guilds/application/decide: gestione candidature;/guilds/kick/request|decide|kick: rimozione membri;/guilds/promote: promozione/cambio ruolo;/guilds/salary/claim: riscossione stipendio;/guilds/primary: gilda primaria;/guilds/logs: log gilda;/guilds/announcements+announcement/create|delete: annunci;/guilds/events+event/create|delete: eventi gilda.
Errori ricorrenti:
guild_not_found,guild_forbidden,guild_membership_required;guild_application_already_pending;guild_leader_required,guild_role_scope_forbidden;guild_salary_already_claimed.
Luogo/chat/sussurri/inviti/drop (/location/*)
Inviti luogo
/location/invites: elenco inviti ricevuti;/location/invite: invio invito (target_character_id,location_id);/location/invite/respond: risposta invito (invite_id,decision);/location/invite/owner-updates: feed aggiornamenti inviti del proprietario.
Errori:
invite_payload_invalid,invite_self_not_allowed;invite_private_only,invite_limit_reached,invite_not_found_or_expired.
Messaggi luogo
/location/messages/list: timeline location;/location/messages/send: invio messaggio o comando.
Request comuni:
location_id;thread_id/before_id/after_id/limit(quando previsti dal feed);message.
Errori:
location_invalid,location_access_denied;location_chat_rate_limited;command_invalid,dice_format_invalid.
Sussurri
/location/whispers/list: feed sussurri;/location/whispers/threads: elenco thread sussurri;/location/whispers/unread: conteggio non letti;/location/whispers/send: invio sussurro (recipient_character_id,message);/location/whispers/policy: policy DM/sussurri personaggio.
Errori:
whisper_invalid,whisper_empty,whisper_too_long;recipient_not_in_location,recipient_self_not_allowed;location_whisper_rate_limited.
Drop oggetti
/location/drops/list: elenco drop nel luogo;/location/drops/drop: rilascio oggetto;/location/drops/pick: raccolta oggetto.
Errori:
item_not_droppable,item_equipped_remove_first;drop_not_available,drop_not_in_location.
Shop, inventario e uso oggetti
POST /shop/items
Scopo:
- catalogo shop risolto per
shop_idolocation_id.
Response:
shop,items,categories,currencies,balances,social_discount.
POST /shop/buy
Request:
shop_item_id(obbligatorio);quantity(opzionale, default 1).
Response:
success;balancesaggiornati.
POST /shop/sellables
Scopo:
- elenco oggetti del personaggio vendibili nello shop corrente.
POST /shop/sell
Request:
- identificatore item stack/istanza (
character_item_instance_idocharacter_item_ido fallbackitem_id); quantityopzionale;shop_id/location_idopzionali.
Inventory runtime
/inventory/slots: slot equip disponibili;/inventory/available: inventario disponibile;/inventory/equipped: oggetti equipaggiati;/inventory/equip: equip item;/inventory/unequip: rimozione equip;/inventory/destroy: distruzione item;/inventory/swap: scambio slot equip;/inventory/categories: elenco categorie inventario (inclusa categoria vuota senza oggetti).
POST /items/use
Scopo:
- uso oggetto inventario (consumo/cooldown/effetti supportati dal core).
Errori economy/inventory:
insufficient_funds,stock_insufficient;item_not_equippable,slot_required,slot_invalid;item_not_usable,item_cooldown_active;inventory_capacity_reached,inventory_stack_limit_reached.
Banca (/bank/*)
POST /bank/summary
Request:
limitopzionale (default 20).
Response:
- riepilogo saldo wallet/banca;
- movimenti recenti.
POST /bank/deposit
Request:
amount(obbligatorio, > 0).
Response:
dataset.operation = deposit;dataset.result;dataset.summaryaggiornato.
POST /bank/withdraw
Request:
amount(obbligatorio, > 0).
Response:
dataset.operation = withdraw;dataset.result;dataset.summaryaggiornato.
POST /bank/transfer
Request:
- target accettati:
target_character_idoppurerecipient_character_idoppureto_character_id; amount(obbligatorio, > 0);note(opzionale).
Response:
dataset.operation = transfer;dataset.result;dataset.summaryaggiornato.
Profilo personaggio (/profile/*)
Endpoint principali:
/profile/update: aggiornamento anagrafica/narrativa;/profile/availability: stato disponibilita;/profile/visibility: visibilita personaggio (staff con regole gerarchiche);/profile/settings: preferenze DM/inviti;/profile/name-request|loanface-request|identity-request: richieste moderabili in admin;/profile/delete+/profile/delete/cancel: cancellazione schedulata;/profile/relationships/html/get|update: conoscenze/relazioni html;/profile/bonds/list|request|request/respond: legami tra personaggi;/profile/logs/experience|economy|sessions: log personali;/profile/master-notes/update: note staff;/profile/health/update: HP;/profile/experience/assign: assegnazione esperienza;/profile/attributes/list|update-values|recompute: attributi personaggio core.
Errori ricorrenti:
profile_forbidden,availability_invalid,dm_policy_invalid;character_name_already_used,character_name_request_pending.
Archetipi (/character/create, /archetypes/, /admin/archetypes/)
POST /character/create
Scopo:
- creazione personaggio guidata dal runtime archetipi.
Request principali:
name(obbligatorio);gender(obbligatorio);- archetipi:
archetype_id(singolo) oppurearchetype_ids[](multipla, se consentita da config).
Regole:
archetypes_enabledpuo disattivare completamente la selezione;archetype_requiredimpone selezione obbligatoria;multiple_archetypes_allowedabilita multi-selezione;- rispetto limite personaggi per account (
multi_character_*).
Errori:
character_name_required,character_creation_failed;archetype_required,archetype_not_selectable,archetype_assignment_failed;character_limit_reached,character_already_exists.
Game archetypes
/archetypes/list: catalogo archetipi attivi/selezionabili;/archetypes/my: archetipi del personaggio corrente.
Admin archetypes
/admin/archetypes/config/get|update: toggle sistema, obbligatorieta, multi-selezione;/admin/archetypes/list|create|update|delete: CRUD catalogo;/admin/archetypes/character/list|assign|remove: gestione assegnazioni su personaggio.
Tag narrativi (/narrative-tags/, /admin/narrative-tags/)
Game
/list/narrative-tags: catalogo tag attivi (filtro opzionaleentity_type);/narrative-tags/entity: tag assegnati a specifica entita (entity_type,entity_id).
Admin catalogo
/admin/narrative-tags/list: datagrid (search,category,is_active, paginazione/sort);/admin/narrative-tags/create|update|delete: CRUD tag.
Admin assegnazioni
/admin/narrative-tags/entity/get: tag correnti entita;/admin/narrative-tags/entity/sync: sincronizzazione completa set tag (tag_ids[]);/admin/narrative-tags/entity/search: ricerca entita per widget (entity_type,query,limit).
Errori:
missing_params,missing_idsui campi obbligatori.
Endpoint lista/get aggregati
/list/*
Scopo:
- endpoint read-only rapidi per popolamento UI (dropdown, datagrid game, sidebar).
Set attuale:
nationalities,maps,locations,items,forum-types,forum,forum/threads,news;profile/bag,onlines,onlines/complete,characters/search;archetypes,narrative-tags.
/get/*
Scopo:
- dettaglio rapido singola risorsa.
Set attuale:
weather,profile,bag,forum,forum/thread.
Meteo e clima (/weather/*)
Blocchi endpoint:
- opzioni e override globali/mondo/luogo:
/weather/options/weather/global/set|clear/weather/world/options|set|clear/weather/location/set|clear;
- cataloghi:
/weather/types/*/weather/seasons/*/weather/zones/*;
- climatologia:
/weather/climate-areas/weather/climate-areas/create|update|delete|assign;
- profili e pesi:
/weather/profiles/weather/profiles/upsert|delete/weather/profiles/weights/weather/profiles/weights/sync;
- assegnazioni e override runtime:
/weather/assignments/weather/assignments/upsert|delete/weather/overrides/weather/overrides/upsert|delete.
Errori ricorrenti:
weather_invalid,weather_forbidden;temperature_invalid,temperature_out_of_range;climate_area_invalid,climate_area_code_required,climate_area_name_required.
Stati narrativi (/narrative-states/, /admin/narrative-states/)
Game
/narrative-states/catalog: catalogo stati runtime;/narrative-states/apply: applicazione stato (targetcharacter|scene);/narrative-states/remove: rimozione stato.
Campi frequenti apply/remove:
state_idostate_code;target_type,target_id,scene_id;- opzionali
intensity,duration_value,duration_unit,reason.
Admin
/admin/narrative-states/list|create|update|delete: CRUD catalogo.
Campi principali:
code,name,description,category,scope;stack_mode,max_stacks,conflict_group,priority;is_active,visible_to_players,metadata_json(tecnico).
Upload file (POST /uploader)
Scopo:
- upload file autenticato con utente+personaggio validi.
Regole:
- endpoint protetto da
requireUserCharacter; - usa le policy upload attive in settings (
/admin/settings/upload).
Registro eventi, eventi di sistema, quest, lifecycle, fazioni
Registro eventi (/narrative-events/*)
- game:
/narrative-events/list|get; - admin:
/admin/narrative-events/list|get|create|update|attach|delete.
Eventi di sistema (/system-events/, /admin/system-events/)
- game:
list|get|participation/join|participation/leave; - admin:
- CRUD evento:
list|get|create|update|delete|status/set; - effetti:
effects/list|upsert|delete; - partecipazioni:
participations/list|upsert|remove; - ricompense:
rewards/assign|log; - manutenzione:
maintenance/run.
Quest (/quests/, /admin/quests/)
- game:
list|get|history/list|history/get|participation/join|participation/leave; - staff in-game:
staff/instances/liststaff/step/confirmstaff/instance/status-setstaff/instance/force-progressstaff/closure/getstaff/closure/finalize;
- admin completo:
- definizioni:
definitions/* - step:
steps/* - condizioni:
conditions/* - outcome:
outcomes/* - istanze:
instances/* - chiusure:
closures/* - ricompense:
rewards/* - link:
links/* - log:
logs/list - manutenzione:
maintenance/run.
Lifecycle (/lifecycle/, /admin/lifecycle/)
- game:
current,history; - admin fasi:
phases/list|create|update|delete; - admin personaggi:
characters/current|history|transition.
Fazioni (/factions/, /admin/factions/)
- game:
list|get|my; - admin fazioni:
list|get|create|update|delete; - admin membri:
members/list|add|update|remove; - admin relazioni:
relations/list|set|remove.
Notifiche (/notifications/*)
POST /notifications/list
Request principali:
page,results;unread_only(0|1);pending_only(0|1);kind(opzionale).
Response:
- dataset paginato notifiche per utente/character corrente.
POST /notifications/read
Request:
notification_idoid.
Response:
- esito mark-read.
POST /notifications/read-delete
Scopo:
- segna letta e rimuove notifica.
POST /notifications/delete
Scopo:
- elimina notifica senza marcatura lettura.
POST /notifications/read-all
Scopo:
- segna lette tutte le notifiche correnti, con filtri opzionali (
kind,pending_only).
POST /notifications/respond
Scopo:
- risposta ad azione pendente (
decision).
Request:
notification_idoid;decision(obbligatorio per notifiche azionabili).
POST /notifications/unread-count
Response:
unread_count.
Errori:
notification_invalid;character_invalidquando la risposta richiede personaggio valido.
Admin: dettagli operativi per famiglia
Utenti, personaggi, blacklist
- utenti:
users/list: datagrid (query.search,query.status,page,results,orderBy);users/reset-password:user_id;users/permissions:user_id,is_administrator,is_moderator,is_master;users/disconnect:user_id;users/restrict:user_id,is_restricted;
- personaggi:
characters/list|get;- log:
characters/logs/experience|economy|sessions;
- blacklist:
blacklist/list|create|update|delete.
Cataloghi contenuto/economia
- items:
list|types|rarities/*|create|update|delete; - equipment slots:
list|create|update|delete; - regole equip:
item-equipment-rules/list|create|update|delete; - categorie:
categories/list|create|update|delete; - valute:
currencies/list|create|update|delete; - negozi:
shops/list|create|update|delete; - inventario negozi:
inventory/list|create|update|delete.
Geografia e contenuti testuali
- mappe:
maps/list|create|update|delete; - luoghi:
locations/list|create|edit|update|delete; - storyboards/rules/how-to-play/news: endpoint CRUD list/create/update/delete.
Social status e richieste identita
- social status catalogo:
social-status/admin-list|create|update|delete; - social status personaggio:
characters/social-status,social-status/list; - richieste:
characters/name-requests/list,loanface-requests/list,identity-requests/list; - decisioni/modifiche:
name-request/decide,loanface-request/decide,identity-request/decide; - editing staff diretto:
admin-edit-identity|narrative|stats|economy|notes.
Lavori e gilde admin
- jobs:
jobs/,jobs-levels/,jobs-tasks/*; - gilde:
- cataloghi:
guild-alignments/,guild-roles/,guild-role-scopes/,guild-role-locations/,guild-requirements/*; - gestione gilda:
guilds/,guilds/admin-,guilds/roles-,guilds/events-.
Forum admin
- forum:
forums/list|types-list|create|update|delete; - tipi forum:
forum-types/list|create|update|delete.
Settings admin
settings/get|update: configurazioni applicative core;settings/upload: limiti/policy upload file.
Moduli (solo orchestrazione core)
modules/list: stato, compatibilita, dipendenze;modules/activate: attivazione con validazione dipendenze/compat;modules/deactivate: disattivazione con eventuale cascata;modules/uninstall: disinstallazionesafe|purge;modules/audit: verifica residui/moduli incoerenti.
Nota:
- il contratto API core include solo questi endpoint moduli;
- le API funzionali dei moduli opzionali vanno in documentazione modulo dedicata.
Attributi personaggio admin
- settings:
character-attributes/settings/get|update; - definizioni:
definitions/list|create|update|deactivate|reorder; - regole:
rules/get|upsert|delete; - ricalcolo:
recompute.
Log amministrativi
logs/conflicts/listlogs/currency/listlogs/experience/listlogs/fame/listlogs/guild/listlogs/job/listlogs/location-access/listlogs/sys/list
Tutti espongono datagrid con filtri/paginazione/sort.
Archetipi admin
archetypes/config/get|update;archetypes/list|create|update|delete;archetypes/character/list|assign|remove.
Segnalazioni messaggi admin
message-reports/list:
- filtri:
status,priority,location_id,reported_character_id,reporter_character_id;
message-reports/get:report_id;message-reports/update-status:report_id,status, opzionalireview_note,resolution_code;message-reports/assign:report_id, opzionaleassigned_to_user_id.
Tag narrativi admin
- catalogo:
narrative-tags/list|create|update|delete; - assegnazioni:
narrative-tags/entity/get|sync|search.
Conflitti admin
- settings:
admin/conflicts/settings/get|update; - azioni staff:
admin/conflicts/force-open|force-close|edit-log|override-roll.
Eventi di sistema admin
- CRUD e lifecycle:
list|get|create|update|delete|status/set; - effetti:
effects/list|upsert|delete; - partecipazioni:
participations/list|upsert|remove; - reward:
rewards/assign|log; - manutenzione:
maintenance/run.
Quest admin
- definizioni:
definitions/*; - step:
steps/*; - condizioni:
conditions/*; - outcome:
outcomes/*; - istanze:
instances/*; - chiusure:
closures/*; - ricompense:
rewards/*; - link:
links/*; - log/manutenzione:
logs/list,maintenance/run.
Stabilita del documento
- Questo file rappresenta il riferimento pubblico dei contratti API core correnti.
- Ogni modifica a endpoint, payload o
error_codecore richiede aggiornamento contestuale di questo documento.