VPS.org API

Pagina officialis Documentationis

API Servitorum

Creare, inspectare, potentiare, redimensionare et deletae sunt servorum VPS. Servitores per uuid identificati sunt.

Extrema 15
Via Basis /api/v1/servers
ACQUIRE /api/v1/servers/

Omnes Servientes Enumera

Serviles in tuo contu restituit, novam primum, 25 per paginam. Serviles qui eliminati sunt non inclusi sunt.

Permissio necesse: servers:list

Parametri Quaestionis

Parametrus Typus Requisitum Descriptio
page integer No Numerus paginarum, a 1 incipiens
page_size integer No Numerus paginarum (default 25, maximum 100)

Exemplum Petitionis

cURL
Python
JavaScript
PHP
curl -X GET "https://admin.vps.org/api/v1/servers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
import requests

url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.get(url, headers=headers)
for server in response.json()["results"]:
    print(server["uuid"], server["hostname"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }
});

const data = await response.json();
console.log(data.results);
$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_API_TOKEN']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$data = json_decode(curl_exec($ch), true);
curl_close($ch);

foreach ($data['results'] as $server) {
    echo $server['hostname'] . ' ' . $server['status'] . "\n";
}

Exemplum Responsionis

{
  "count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
      "hostname": "web-01",
      "status": "on",
      "error_description": null,
      "location_name": "New Jersey",
      "plan_name": "1 vCPU / 2 GB RAM / 10 GB",
      "os_name": "Ubuntu",
      "ipv4_addresses": ["203.0.113.10"],
      "ipv6_addresses": ["2001:db8:2:dd::f9:6b"],
      "created_at": "2026-07-30T03:54:14.914364Z",
      "deployed": true
    },
    {
      "uuid": "2d7e9b40-6c1a-4f3e-8b5d-9a0c1e2f3b4d",
      "hostname": "db-01",
      "status": "queue",
      "error_description": null,
      "location_name": "New Jersey",
      "os_name": "Debian",
      "ipv4_addresses": [],
      "ipv6_addresses": [],
      "created_at": "2026-09-14T19:33:49.426508Z",
      "deployed": false
    }
  ]
}

Campi Responsorum

Campo Typus Descriptio
uuid string Servitor identificatio in hoc servitore in hoc servitore
hostname string Nomen hostium quod tu in creatione servitii electus es
status string Status hodiernus. Vide Servitor Status Valores infra.
error_description string | null Descriptio ultimae faulis cum status error sit, aliquando null
location_name string Nomen loci in quo servitor in executione est
os_name string Nomen systematis operandi, versio non esse
plan_name string Readable plan summary, for example 1 vCPU / 2 GB RAM / 10 GB
ipv4_addresses array IPv4 adressae ut stringhi. Vacuus usque ad servitum deployatum, et in planibus IPv4 non habentibus.
ipv6_addresses array IPv6 adressae ut stringhi. Vacuus usque ad servitum deployendum.
created_at datetime Tempore UTC (ISO 8601)
deployed boolean Verum cum provisionatio finita est

Codices Status Responsorum

200 Index servorum feliciter recuperatus est
403 Token API mancant vel invalidus, aut token permissum necesse non habet
Post /api/v1/servers/

Crea Novum Servitorem

Inquerit novum servitum ad deploymentum et immediate cum status queue restituit. Provisionatio in background continuat: status finalis punctum interrogationem usque ad deployment est vera. Cum servitum praebetur, eius conectionis descriptio proprietario conti per e-mail est.

Tuus conatus methodam pagorum conservatam necessitat. Dependens de historia tuus conatus, temporaria preautorizationis rete circa unam sectam planis premiis (minimum 1 USD) in tuum cartum posita potest antequam servitor creatus est.

Permissio necesse: servers:create

Parametri Corporis Petitionis

Parametrus Typus Requisitum Descriptio
hostname string Ita At minima 3 caracteres. Letteras, numerales, conjunctiones et puncta solum.
location_id integer Ita Id loci activi ex API Locationis
plan_uuid string Ita Uuid planis activi ex API Planum
operating_system_version_uuid string Ita Uuid activae inscriptionis in systemate operandi versionum lista
ssh_key_uuids array No Pagina interretialis de S.E.S. in pagina de S.E.S. in pagina de S.E.S. in pagina de S.E.S.
ssh_key_ids array No Integer IDs SSH clavis, ut alternativa ad ssh_key_uuids. Si ambo sunt mandata, ssh_key_ids est utitur.
ssh_key_uuid, ssh_key_id string, integer No Abbreviatio pro singulis SSH clavis
auth_method string No password, ssh_key aut ambo. Defaults to password, or to both when SSH keys are provided.

Exemplum Petitionis

cURL
Python
JavaScript
PHP
curl -X POST "https://admin.vps.org/api/v1/servers/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "hostname": "web-01",
    "location_id": 1,
    "plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
    "operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
    "ssh_key_uuids": ["YOUR_SSH_KEY_UUID"]
  }'
import requests

url = "https://admin.vps.org/api/v1/servers/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}
data = {
    "hostname": "web-01",
    "location_id": 1,
    "plan_uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
    "operating_system_version_uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
    "ssh_key_uuids": ["YOUR_SSH_KEY_UUID"],
}

response = requests.post(url, headers=headers, json=data)
server = response.json()
print(response.status_code, server["uuid"], server["status"])
const response = await fetch('https://admin.vps.org/api/v1/servers/', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    hostname: 'web-01',
    location_id: 1,
    plan_uuid: '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
    operating_system_version_uuid: 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
    ssh_key_uuids: ['YOUR_SSH_KEY_UUID']
  })
});

const server = await response.json();
console.log(server.uuid, server.status);
$data = [
    'hostname' => 'web-01',
    'location_id' => 1,
    'plan_uuid' => '3bc2faf6-8f8b-4978-b62d-b52ed3f858e9',
    'operating_system_version_uuid' => 'c3418f90-80a0-4e00-a7e1-d0ab1822b941',
    'ssh_key_uuids' => ['YOUR_SSH_KEY_UUID']
];

$ch = curl_init('https://admin.vps.org/api/v1/servers/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer YOUR_API_TOKEN',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server = json_decode(curl_exec($ch), true);
curl_close($ch);

Exemplum Responsionis

201 Creatus cum servitore pleno in Get Server Details descripto. Adressae et vmid cum deployment finitur infillantur.

{
  "uuid": "5f0c8e2a-6b1d-4c3e-9a7f-2d4b6c8e0a1f",
  "hostname": "web-01",
  "vmid": null,
  "status": "queue",
  "error_description": null,
  "location": {
    "id": 1,
    "name": "New Jersey",
    "country_name": "United States",
    "is_active": true
  },
  "plan": {
    "uuid": "3bc2faf6-8f8b-4978-b62d-b52ed3f858e9",
    "cpu": 1,
    "ram": 2,
    "ram_unit": "GB",
    "disk_space": 10,
    "disk_space_total": 10240,
    "transfer": 500,
    "price": "3.50",
    "cpu_type_name": "Shared",
    "is_active": true,
    "hourly_price": "0.005",
    "monthly_price": "3.50",
    "is_gpu": false,
    "gpu_count": 0,
    "gpu_model": ""
  },
  "operating_system": {
    "id": 1,
    "name": "Ubuntu",
    "svg_icon": "<svg ...>",
    "versions": [ ... ]
  },
  "operating_system_version": {
    "uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
    "name": "24.04 LTS x64",
    "os_name": "Ubuntu",
    "os_svg_icon": "<svg ...>",
    "is_active": true
  },
  "ipv4_addresses": [],
  "ipv6_addresses": [],
  "deployed": false,
  "created_at": "2026-09-14T21:02:11.402113Z",
  "recent_actions": []
}

Codices Status Responsorum

201 Servitor creatus et in columnam pro deployment inscriptus
400 Errore validationis, exempli gratia loci, planis, vel versionis systematis operandi inactiva
402 Nonnullae res in libro non sunt, sed in libro non sunt res, quae non sunt in libro.
403 Token API mancant vel invalidus, aut token permissum necesse non habet
429 Tuus contus servitore limitum creatiorum accepit
ACQUIRE /api/v1/servers/{uuid}/

Accipe Detalia Servi

Haec pagina de systemate operandi, systemate operandi, systemate operandi, et systemate operandi descriptio.

Permissio necesse: servers:list

curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Exemplum Responsionis

{
  "uuid": "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b",
  "hostname": "web-01",
  "vmid": 1042,
  "status": "on",
  "error_description": null,
  "location": {
    "id": 1,
    "name": "New Jersey",
    "country_name": "United States",
    "is_active": true
  },
  "plan": {
    "uuid": "14186969-fbaf-43e1-9ab2-b1f1aeb66674",
    "cpu": 1,
    "ram": 2,
    "ram_unit": "GB",
    "disk_space": 25,
    "disk_space_total": 25600,
    "transfer": 1,
    "price": "5.00",
    "cpu_type_name": "Shared",
    "is_active": true,
    "hourly_price": "0.007",
    "monthly_price": "5.00",
    "is_gpu": false,
    "gpu_count": 0,
    "gpu_model": ""
  },
  "operating_system": {
    "id": 1,
    "name": "Ubuntu",
    "svg_icon": "<svg ...>",
    "versions": [ ... ]
  },
  "operating_system_version": {
    "uuid": "c3418f90-80a0-4e00-a7e1-d0ab1822b941",
    "name": "24.04 LTS x64",
    "os_name": "Ubuntu",
    "os_svg_icon": "<svg ...>",
    "is_active": true
  },
  "ipv4_addresses": [
    {
      "ip": "203.0.113.10",
      "gateway": "203.0.113.1",
      "subnet": "203.0.113.0",
      "rdns": "web-01.example.com"
    }
  ],
  "ipv6_addresses": [
    {
      "ip": "2001:db8:2:dd::f9:6b",
      "gateway": "2001:db8:2:dd::f9:1",
      "subnet": "2001:db8:2:dd::f9:0",
      "rdns": "web-01.example.com"
    }
  ],
  "deployed": true,
  "created_at": "2026-07-30T03:54:14.914364Z",
  "recent_actions": [
    {
      "id": 17028,
      "action": "create",
      "action_display": "Create",
      "description": "Server deployed with VMID 1042",
      "user_email": "you@example.com",
      "created_at": "2026-07-30T03:54:32.860854Z"
    }
  ]
}

In hoc libro, scripta et scripturae in lingua Graeca sunt.

Campi Responsorum

Campo Typus Descriptio
vmid integer | null Numerus machinis virtualis, in deploymento definitus
location object Locus, quod a locatio API restituitur
plan object Planum objectum, ut a Plans API restitutum
operating_system, operating_system_version object Systema operandum et versio installata, ut a Operating Systems API restituitur
ipv4_addresses, ipv6_addresses array Una res pro adressio cum IP, porta, subreti et rdns (reverse DNS hostname)
recent_actions array Ad quinque ultimas actiones: id, action, action_display, description, user_email, created_at

Codices Status Responsorum

200 Feliciter notitiae servi receptae sunt.
404 Non repertus, aut ad alium contum pertinet
ACQUIRE /api/v1/servers/{uuid}/status/

Servitor

In hoc modo, ipse potestam accepit, ut potestatem agere et servitum servire.

curl -X GET "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/status/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "status": "on",
  "deployed": true,
  "resizing": false
}

Servitor status valorum

Valor Descriptio
queue Actiones (deploy, power, resize, restore) in coda sunt vel in progressu sunt
deploying Servilia creata a panele controlorum hoc status utuntur; servilia creata per API in coda manent usque adquam pronta sunt.
on Running
off Dispugnatio
error Ultima actionis fallavit. Vide error_description.
suspended_payment Suspendenda pro facturis non pagati
Post /api/v1/servers/{uuid}/power/

Serviliae pagina interretialis

Activity power action inqueris. Status servii inqueris mutatur usque ad actionem finitam.

Permissio necesse: servers:power

Parametri Corporis Petitionis

Parametrus Typus Requisitum Descriptio
action string Ita start: power on
shutdown: finem graciosum, fortiorem si invictus non se deponet
restart: cycle hard power (stop, then start)
stop: hodie cum reinitio idem cyclem energiae perfecit. Shutdown ut servitum inactivum latum.

Exemplum Petitionis

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/power/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"action": "restart"}'
import requests

server_uuid = "8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b"
url = f"https://admin.vps.org/api/v1/servers/{server_uuid}/power/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

response = requests.post(url, headers=headers, json={"action": "restart"})
print(response.json())

Exemplum Responsionis

{
  "message": "Server restart queued"
}

Codices Status Responsorum

200 Actus in columnam inscriptus est
400 Actiones mancantes vel non sustinendae
402 start refused because the account has unpaid bills
404 Non repertus, aut ad alium contum pertinet
Post /api/v1/servers/{uuid}/resize/

Servitor

Servitum in alium planum activum movit. Novum planum non potest minus spatii disci quam currente habere, et corpus petitionis actionem redimensionandi continere debet. Capacitas hypervisoris pro novo planum est verificata antequam res in columnam invenitur, ergo petitio rejecta servitum non alteratum laecit.

Servitor inter redimensionationem et post redimensionationem reinitium inactivus est. Si redimensionatio fallus est, servitor in planum anteae revertitur et reinitium initiatur si executum est. Discescens disci non est revocabilis.

Permissio necesse: servers:resize

Parametri Corporis Petitionis

Parametrus Typus Requisitum Descriptio
action string Ita Redimensio
new_plan_uuid string Ita UID planis ad movendum
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/resize/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"action": "resize", "new_plan_uuid": "5e26a4a6-bd0c-467c-abca-da036c811c3f"}'
{
  "message": "Resize queued successfully"
}

Ecce index asteroidum qui numeri ex 409 ad 410 habent.

{
  "error": "Not enough hypervisor capacity for the selected plan; the server was not changed"
}

Codices Status Responsorum

200 Actus in columnam inscriptus est
400 Actionis mancantes vel new_plan_uuid, planum invalidum vel inactivum, planum minus disci spatium habente, vel planum GPU (plana GPU non possunt per API redimensionari)
404 Non repertus, aut ad alium contum pertinet
409 Redimensionatio vel conservatio mutatio iam in progressu est, aut non est hypervisoris capacitas sufficientis pro novo plani
503 Capacitas non potuit nunc verificari. Servitor non mutatus est; probatio postrerum.
Post /api/v1/servers/{uuid}/reset-password/

Reinitialize root password

Generit novam password root, restituit in responso et inquerit mutationem in servitore. Nova password etiam e- mail a te invenitur. Servitor debet deployatur. Corpus petitionis non est necesse.

curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/reset-password/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "message": "Password reset queued. New password will also be emailed to you.",
  "password": "generated-password",
  "job_id": "b6f1c7e2-3a4d-4f5e-8b9c-0d1e2f3a4b5c"
}

Codices Status Responsorum

200 Actus in columnam inscriptus est
400 Servitor non est iam deployatus
404 Non repertus, aut ad alium contum pertinet
ACQUIRE Post /api/v1/servers/{uuid}/rdns/

Despectus in Reti (Pob.)

GET nomen hostium DNS inversum de omnes IPv4 et IPv6 adressis in servitore enumerat. POST ad unam adressam configuret. Nomen hostium vacuum sending address to its default reverse DNS name reset.

Permissio necesse: servers:update

Parametri Corporis Petitionis (POST)

Parametrus Typus Requisitum Descriptio
ip string Ita Adressa IPv4 aut IPv6 ad hoc servitorem assignata
hostname string No Nomen host PTR. Laetare vacuum ad default revertiendum.
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/rdns/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ip": "203.0.113.10", "hostname": "mail.example.com"}'
{
  "message": "Reverse DNS for 203.0.113.10 set to mail.example.com",
  "ip": "203.0.113.10",
  "hostname": "mail.example.com"
}

Replicatio:

{
  "rdns": [
    {"ip": "203.0.113.10", "hostname": "mail.example.com"},
    {"ip": "2001:db8:2:dd::f9:6b", "hostname": "mail.example.com"}
  ]
}

Codices Status Responsorum

400 ip manet, aut nomen host non potuit asetuntur
404 Adress IP non est assignatus ad hoc servitorem
Post /api/v1/servers/{uuid}/exec/

Executum in server

Execut commandum shell in servitore per QEMU guest agent et asperit ad finiendum. Servitor debet esse deployatus et executatus, et qemu-guest-agent debet esse installatus et executatus in guest.

Permissio necesse: servers:exec

Parametri Corporis Petitionis

Parametrus Typus Requisitum Descriptio
command string Ita Lineae commandi executi sunt cum /bin/sh -c, usque ad 2000 caracteres
timeout integer No Secundis ut commissum asperret, 1 ad 300 (default 30)
curl -X POST "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/exec/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"command": "uptime", "timeout": 30}'
{
  "stdout": " 21:14:03 up 46 days,  2:10,  0 users,  load average: 0.08, 0.03, 0.01\n",
  "stderr": "",
  "exit_code": 0,
  "timed_out": false
}

Si in hoc tempore non est, in hoc tempore est, si est, in hoc tempore est, si est, in hoc tempore est, si est, in hoc tempore est.

Codices Status Responsorum

200 Comando finitum vel tempore expirato
400 Servitor non deployatus aut non executatus, vel parametri invalidi
409 QEMU invictus agentus non in servitore executatur
503 Connexio temporaria problema. Probatur post Retry-After caput.
DELE /api/v1/servers/{uuid}/

Dele Servum

Servitor in columnam incolat ut deletae sit. Servitor ex lista immediate deperdit et non est recuperabile.

Permissio necesse: servers:delete

curl -X DELETE "https://admin.vps.org/api/v1/servers/8c4f2a1e-5b3d-4e6f-9a7b-1c2d3e4f5a6b/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "message": "Server deletion queued"
}

Codices Status Responsorum

202 Acceptatus: petitio in columnam inscripta est
404 Non repertus, aut ad alium contum pertinet
ACQUIRE Post /api/v1/ssh-keys/

SSH

Publicae SSH clavis in tuo contu custodire, et postremo suos uuids cum ssh_key_uuids servitorium creando passare. GET claves tuas (25 per paginam) enumerat; POST unam adfecit.

Permissio necesse: ssh-keys:list (GET), ssh-keys:create (POST)

Parametri Corporis Petitionis (POST)

Parametrus Typus Requisitum Descriptio
name string Ita Nomen ut claviculam reconocere possit, usque ad 100 caracteres
public_key string Ita The public key in OpenSSH format, for example the contents of id_ed25519.pub

Exemplum Petitionis

cURL
Python
curl -X POST "https://admin.vps.org/api/v1/ssh-keys/" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "laptop", "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop"}'
import requests

url = "https://admin.vps.org/api/v1/ssh-keys/"
headers = {"Authorization": "Bearer YOUR_API_TOKEN"}

with open("/home/you/.ssh/id_ed25519.pub") as f:
    data = {"name": "laptop", "public_key": f.read().strip()}

response = requests.post(url, headers=headers, json=data)
print(response.status_code, response.json()["uuid"])

Exemplum Responsionis

{
  "id": 19,
  "uuid": "6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c",
  "name": "laptop",
  "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... you@laptop",
  "fingerprint": "0b:4c:9b:48:76:e7:1d:07:b9:ac:71:90:70:f7:9a:69",
  "created_at": "2026-08-23T19:16:11.547183Z",
  "last_used_at": null
}

Campi Responsorum

Campo Typus Descriptio
id, uuid integer, string Clavis identificatores. Uuid in ssh_key_uuids et in URL infra utuntur; id in ssh_key_ids laborat.
fingerprint string MD5 digitus clavis, computatus a platforme
last_used_at datetime | null Cum clavicula ultimam in novam servitionem installata est

Codices Status Responsorum

201 Clavis aedificata
400 Nomen mancant, aut clavicula publica non est clavicula publica SSH valida
ACQUIRE DELE /api/v1/ssh-keys/{uuid}/

Obtinuit vel eliminavit SSH clavium

GET unam claviem cum campis supranibus restituit. DELETE eam ex tuo contu removit et 204 cum corpus non esset restituit. Clavem removiendo non removit e servibus in quibus antea installata erat. Claves non sunt editae: removi et reaprove.

Permissio necesse: ssh-keys:list (GET), ssh-keys:delete (DELETE)

curl -X DELETE "https://admin.vps.org/api/v1/ssh-keys/6e1b9c52-3f8a-4d7e-a2c4-5b9d0e1f2a3c/" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Paginae et scriptae

In hoc modo, scriptura et scripturae sunt una et etiam sunt una.