{"_id":"24fire-api","_rev":"9-b88fc1541d7847ed386014c36234547f","name":"24fire-api","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.5":{"name":"24fire-api","version":"1.0.5","keywords":["24fire","24fireAPI","api","Hosting","wrapper","flostechnikwelt"],"author":{"name":"FlosTechnikwelt"},"license":"Apache-2.0","_id":"24fire-api@1.0.5","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"homepage":"https://github.com/FlosTechnikwelt/fireapi-24fire.git","bugs":{"url":"https://github.com/FlosTechnikwelt/fireapi-24fire/issues"},"dist":{"shasum":"53eb8442a8f19c55484012d24f91723361611a4e","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.5.tgz","fileCount":1,"integrity":"sha512-8gtYmmBv+jviWuINegtvprh/T2PqKsGjkDxyTTUR81HunG83O6a/WnGkwkrwNqlHTOpJvRlMgADsa3mPOIoa4A==","signatures":[{"sig":"MEQCID4kiAcnxXGfsDgZX95ggdupZluLG4bIZ1DKipU5jHFNAiBL3pn8h4GF/p4zPl/oirJ6Nr+NS6V2jD6SIDhmXJoRig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":611},"main":"src/index.js","_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"repository":{"url":"git+https://github.com/FlosTechnikwelt/fireapi-24fire.git","type":"git"},"_npmVersion":"9.5.1","description":"Nutze die fireapi in Nodejs, sicher und schnell","directories":{},"_nodeVersion":"18.16.0","dependencies":{"axios":"^1.6.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/24fire-api_1.0.5_1704557658968_0.15649452360684646","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"24fire-api","version":"1.0.1","keywords":["24fire","24fireAPI","api","Hosting","wrapper","flostechnikwelt"],"author":{"name":"FlosTechnikwelt"},"license":"Apache-2.0","_id":"24fire-api@1.0.1","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"dist":{"shasum":"2cf95a4342989f13a52b491182e3457a52f89cf3","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.1.tgz","fileCount":2,"integrity":"sha512-hK24DiHvFomTisHSMJANvzQtDr36puzcQtrZRPznH8k2gf8rE2hV6g8A1F5i9gw2EMvlkktjqDVzEH90DvYCDw==","signatures":[{"sig":"MEQCIEhPABVb6Zqx8engTcJGq6DoY276a9C/iU3LTb2f/o/iAiA3sOXKfbAOVHRl1Fxs2W7e3pXqSoG9Yb3JlkmdvfumPw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3714},"main":"src/index.js","_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"repository":{"url":"git+https://github.com/FlosTechnikwelt/24fire-api.git","type":"git"},"_npmVersion":"9.5.1","description":"Nutze die fireapi in Nodejs, sicher und schnell","directories":{},"_nodeVersion":"18.16.0","dependencies":{"axios":"^1.6.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/24fire-api_1.0.1_1704558345210_0.15426255930461918","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"24fire-api","version":"1.0.2","keywords":["24fire","24fireAPI","api","Hosting","wrapper","flostechnikwelt"],"author":{"name":"FlosTechnikwelt"},"license":"Apache-2.0","_id":"24fire-api@1.0.2","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"dist":{"shasum":"304e503cdd4047124f35c9571b1e3a52dd3818da","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.2.tgz","fileCount":2,"integrity":"sha512-FCafXTZGvr5IAmh8VCW7dJJf711Pyl9J9xaDTis3lC3uNs2WP9h0n6v1hsdDMGIsMTPKGtVqHGOD9lGPaW0t+g==","signatures":[{"sig":"MEUCIQCX1Rm/K+8v41kKaCw2NGO6HNf6uli5JWyfw02ouusmeQIgWXn3XtJtndJcuxOcOFlX8sscBdeA1R1N/jd9RHWdpIM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3717},"main":"src/index.js","_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"repository":{"url":"git+https://github.com/FlosTechnikwelt/24fire-api.git","type":"git"},"_npmVersion":"9.5.1","description":"Nutze die 24fire api in Nodejs, sicher und schnell","directories":{},"_nodeVersion":"18.16.0","dependencies":{"axios":"^1.6.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/24fire-api_1.0.2_1704558508047_0.295063608293481","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"24fire-api","version":"1.0.3","keywords":["24fire","24fireAPI","api","Hosting","wrapper","flostechnikwelt"],"author":{"name":"FlosTechnikwelt"},"license":"Apache-2.0","_id":"24fire-api@1.0.3","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"dist":{"shasum":"af104e79e44beb6ce26037edec43d28486688eca","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.3.tgz","fileCount":2,"integrity":"sha512-EAAZuPc/mjur/bR8ocjEiPSmxW2k7XIA1aAOHASM6Mn5cRPNEBlZlSep1cDP4H98uJEtaFOcZCNyMLwTijHN+Q==","signatures":[{"sig":"MEUCIQDLebOab4N4SgkcADKBL1XaRXDs6Up/bG3vTYRWcxUSJwIgc3kfWnSEiayxcG2F4CFDZBX9S+fOGrQhFMpS3heo0jA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3850},"main":"src/index.js","_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"repository":{"url":"git+https://github.com/FlosTechnikwelt/24fire-api.git","type":"git"},"_npmVersion":"9.5.1","description":"Nutze die 24fire api in Nodejs, sicher und schnell","directories":{},"_nodeVersion":"18.16.0","dependencies":{"axios":"^1.6.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/24fire-api_1.0.3_1704560006597_0.2935951481085297","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"24fire-api","version":"1.0.4","keywords":["24fire","24fireAPI","api","Hosting","wrapper","flostechnikwelt"],"author":{"name":"FlosTechnikwelt"},"license":"Apache-2.0","_id":"24fire-api@1.0.4","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"dist":{"shasum":"328ec6ecd9524d7ca75724cc7a83fa6d8fb9fa9b","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.4.tgz","fileCount":4,"integrity":"sha512-8UKR3dgnIW7hwAWCdMHdNqP+YTxCGemD1I+lmOAQmYWUzSy2gWeTzva6UCpqVc5Nw4sUUObKeIdGsyOyySdI/g==","signatures":[{"sig":"MEUCIEXW7HLaPj0CzFYxrP5aT4wAWGQ3HCcHJdwMAT6Nhz2PAiEAqqvVOXah4ofGGyIvGfBHE2gWZRcKwVCC3DOME6lRgo8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18445},"main":"src/index.js","gitHead":"c1e754ba6c922dde26ad0155c3d6014ed7b63bc0","_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"repository":{"url":"git+https://github.com/FlosTechnikwelt/24fire-api.git","type":"git"},"_npmVersion":"9.5.1","description":"Nutze die 24fire api in Nodejs, sicher und schnell","directories":{},"_nodeVersion":"18.16.0","dependencies":{"axios":"^1.6.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/24fire-api_1.0.4_1704561121434_0.31964707890911126","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"24fire-api","version":"1.0.6","keywords":["24fire","24fireAPI","api","Hosting","wrapper","flostechnikwelt"],"author":{"name":"FlosTechnikwelt"},"license":"Apache-2.0","_id":"24fire-api@1.0.6","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"dist":{"shasum":"27add7879ef87daa30649089ebebfb09bb263dab","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.6.tgz","fileCount":4,"integrity":"sha512-TqInWRGqOwXA8IUW/rqvLdt2bBgaAU3vOdilGMcI+3AegiJDXOgJWGXaQ5O/ilpFzqZUksMqS+mQkDKPL1tizg==","signatures":[{"sig":"MEUCIQCCOgFffiHCaD0KUtuZ7/EX5alT/YrPTiYOEmgyluiQFAIgYZ+L7OJblrrmff/F7SUSmj8u6yQg35Xn8FJl4jx0FzM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18935},"main":"src/index.js","gitHead":"99e73103f7cc74b8bf4192616b737220c9f309ca","_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"repository":{"url":"git+https://github.com/FlosTechnikwelt/24fire-api.git","type":"git"},"_npmVersion":"9.5.1","description":"Nutze die 24fire api in Nodejs, sicher und schnell","directories":{},"_nodeVersion":"18.16.0","dependencies":{"axios":"^1.6.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/24fire-api_1.0.6_1704562137456_0.8360102472870574","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"24fire-api","version":"1.0.7","keywords":["24fire","24fireAPI","api","Hosting","wrapper","flostechnikwelt"],"author":{"name":"FlosTechnikwelt"},"license":"Apache-2.0","_id":"24fire-api@1.0.7","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"dist":{"shasum":"1f25b75298059cc23af0691ba3ad37083a99510d","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.7.tgz","fileCount":4,"integrity":"sha512-9x08UJ5kTdC3iCOF0U6AitERaE5wq1yxMUjF4OcglVoGsKnxYMSMm3lL8Ti0cyeC5n9dhZE4zE4YSLqL29iRGg==","signatures":[{"sig":"MEUCIBW9EMn5reQlnMDBgzLT1kdRQEEIGQ8m8klplWEvsnhRAiEAkHbAys8FRha5SDVKR/ZRxrlJ5Mlv7wLvWHJqKcRD0S0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18929},"main":"src/index.js","gitHead":"99e73103f7cc74b8bf4192616b737220c9f309ca","_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"repository":{"url":"git+https://github.com/FlosTechnikwelt/24fire-api.git","type":"git"},"_npmVersion":"9.5.1","description":"Nutze die 24fire api in Nodejs, sicher und schnell","directories":{},"_nodeVersion":"18.16.0","dependencies":{"axios":"^1.6.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/24fire-api_1.0.7_1704566480725_0.10643957058049103","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"24fire-api","version":"1.0.8","keywords":["24fire","24fireAPI","api","Hosting","wrapper","flostechnikwelt"],"author":{"name":"FlosTechnikwelt"},"license":"Apache-2.0","_id":"24fire-api@1.0.8","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"dist":{"shasum":"a2ff8ac4099d022ff9ab22fe148d958db353f5f6","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-1.0.8.tgz","fileCount":4,"integrity":"sha512-7mvEWjN4Is8X2J3+CCpBEmgdCFVlsTGV7nEteyFxT55bNqQmjzXl+CkBolp1IIkhP+U5Rh1sjp3yMl804U1AtA==","signatures":[{"sig":"MEQCIE16TKvWlMn0QjeGyFk5T7BMb/250/iZG4ByhPAdC8c7AiA/RSGpOs2uvvoVcqfZuhLuk9orMPv/W71JqDeoH/ZAYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23145},"main":"src/index.js","gitHead":"0615aad15df0d4e1429bedb89624a9502bbd3fd0","_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"repository":{"url":"git+https://github.com/FlosTechnikwelt/24fire-api.git","type":"git"},"_npmVersion":"10.2.4","description":"Nutze die 24fire api in Nodejs, sicher und schnell","directories":{},"_nodeVersion":"20.11.0","dependencies":{"axios":"^1.6.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/24fire-api_1.0.8_1706296481725_0.11485457008700006","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"24fire-api","version":"2.0.0","description":"Einfacher, abhängigkeitsfreier Node.js-Wrapper für die 24fire REST-API v2","main":"src/index.js","types":"src/index.d.ts","engines":{"node":">=18"},"repository":{"type":"git","url":"git+https://github.com/FlosTechnikwelt/24fire-api.git"},"homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","keywords":["24fire","24fireAPI","fireapi","api","v2","Hosting","kvm","wrapper","flostechnikwelt"],"author":{"name":"Florian Linde","email":"florian.linde@flostechnikwelt.de"},"license":"Apache-2.0","dependencies":{},"gitHead":"70c4901da59ccc8bd44d1e3b3a0618de863fed08","_id":"24fire-api@2.0.0","bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-ZU3YKMdPGqAQr9iBsc1Uoi6zIjBwTaV8UF5dhiSHpK/EpS+7yBps6V/V+YT2Bsq4vsYwJv4GU+W7jpRKHMgtjg==","shasum":"aa159fcd43a96c79b61637e9eb1b56d45248a313","tarball":"https://registry.npmjs.org/24fire-api/-/24fire-api-2.0.0.tgz","fileCount":5,"unpackedSize":33819,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICNGP6a4WVQJM2148QCUvaM5zx8M3O2xV1Ee7zbtxQqVAiEAnfJ3luoz4fAhvjzGnePUr5czapHM+a/QcumZ9ENE4rw="}]},"_npmUser":{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"},"directories":{},"maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/24fire-api_2.0.0_1782833963291_0.5651544674000899"},"_hasShrinkwrap":false}},"time":{"created":"2024-01-06T16:14:18.967Z","modified":"2026-06-30T15:39:23.538Z","1.0.5":"2024-01-06T16:14:19.100Z","1.0.1":"2024-01-06T16:25:45.360Z","1.0.2":"2024-01-06T16:28:28.214Z","1.0.3":"2024-01-06T16:53:26.780Z","1.0.4":"2024-01-06T17:12:01.607Z","1.0.6":"2024-01-06T17:28:57.636Z","1.0.7":"2024-01-06T18:41:20.886Z","1.0.8":"2024-01-26T19:14:41.903Z","2.0.0":"2026-06-30T15:39:23.434Z"},"bugs":{"url":"https://github.com/FlosTechnikwelt/24fire-api/issues"},"author":{"name":"Florian Linde","email":"florian.linde@flostechnikwelt.de"},"license":"Apache-2.0","homepage":"https://github.com/FlosTechnikwelt/24fire-api.git","keywords":["24fire","24fireAPI","fireapi","api","v2","Hosting","kvm","wrapper","flostechnikwelt"],"repository":{"type":"git","url":"git+https://github.com/FlosTechnikwelt/24fire-api.git"},"description":"Einfacher, abhängigkeitsfreier Node.js-Wrapper für die 24fire REST-API v2","maintainers":[{"name":"flostechnikwelt","email":"florian.flowde.linde3005@gmail.com"}],"readme":"[![POWERED BY 24FIRE](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOTkuOTM3NTM4MTQ2OTcyNjYiIGhlaWdodD0iMzUiIHZpZXdCb3g9IjAgMCAxOTkuOTM3NTM4MTQ2OTcyNjYgMzUiPjxyZWN0IHdpZHRoPSIxMjEuMjgxMjcyODg4MTgzNiIgaGVpZ2h0PSIzNSIgZmlsbD0iI2ZmODQwMCIvPjxyZWN0IHg9IjEyMS4yODEyNzI4ODgxODM2IiB3aWR0aD0iNzguNjU2MjY1MjU4Nzg5MDYiIGhlaWdodD0iMzUiIGZpbGw9IiNmZjVhMDMiLz48dGV4dCB4PSI2MC42NDA2MzY0NDQwOTE4IiB5PSIxNy41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iJ1JvYm90bycsIHNhbnMtc2VyaWYiIGZpbGw9IiNGRkZGRkYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGFsaWdubWVudC1iYXNlbGluZT0ibWlkZGxlIiBsZXR0ZXItc3BhY2luZz0iMiI+UE9XRVJFRCBCWTwvdGV4dD48dGV4dCB4PSIxNjAuNjA5NDA1NTE3NTc4MTIiIHk9IjE3LjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSInTW9udHNlcnJhdCcsIHNhbnMtc2VyaWYiIGZpbGw9IiNGRkZGRkYiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtd2VpZ2h0PSI5MDAiIGFsaWdubWVudC1iYXNlbGluZT0ibWlkZGxlIiBsZXR0ZXItc3BhY2luZz0iMiI+MjRGSVJFPC90ZXh0Pjwvc3ZnPg==)](https://forthebadge.com)\n\n\n# 24fire-api\n\nEin einfacher Node.js-Wrapper für die **24fire REST-API v2**.\nVerwalte deinen Account, KVM-Server, Domains und Webspaces direkt aus deinem Code.\n\n## Features\n\n- 🔗 Kommunikation über SSL (`https://manage.24fire.de/api`)\n- 📦 **Keine Abhängigkeiten** nutzt das eingebaute `fetch` von Node.js\n- 🧩 Intuitive, verschachtelte Bedienung (`fire.kvm(id).backup.list()`)\n- 🟦 Mitgelieferte TypeScript-Typen\n- ⚡ Schnell & leichtgewichtig\n\n> **Hinweis:** Dies ist Version **2.0**. Die API-Struktur hat sich gegenüber v1 komplett geändert\n> (neue Base-URL, neuer Auth-Header, `internal_id` pro Dienst). Siehe [Migration von v1](#migration-von-v1).\n\n## Voraussetzungen\n\n- Node.js **18 oder neuer** (wegen des globalen `fetch`)\n\n## Installation\n\n```bash\nnpm install 24fire-api\n```\n\n## API-Key erstellen\n\n1. Logge dich im [24fire Control Panel](https://manage.24fire.de) ein.\n2. Gehe zu **Einstellungen → API-Keys** und klicke auf „API-Key erstellen“.\n3. Speichere den Key sicher ab – er wird nur **einmal** angezeigt.\n\n## Schnellstart\n\n```javascript\nconst FireAPI = require('24fire-api');\n// oder:  import FireAPI from '24fire-api';\n\nconst fire = new FireAPI('DEIN_API_KEY');\n\n// Account-Infos abrufen\nconst account = await fire.account.info();\nconsole.log(account.data);\n\n// Alle Dienste anzeigen (hier findest du die internal_id jedes Dienstes)\nconst services = await fire.account.services();\nconsole.log(services.data);\n\n// Einen Server starten\nawait fire.kvm('INTERNAL_ID').start();\n```\n\nJede Methode gibt die API-Antwort im Format `{ status, message, data }` zurück.\nBei Fehlern wird ein `FireAPIError` geworfen (siehe [Fehlerbehandlung](#fehlerbehandlung)).\n\n---\n\n## Account\n\n```javascript\nawait fire.account.info();        // Account-Informationen (Name, E-Mail, Guthaben …)\nawait fire.account.services();    // Übersicht aller aktiven Dienste (mit internal_id)\nawait fire.account.donations();   // Daten zur Spendenseite\nawait fire.account.affiliate();   // Daten zum Affiliate-System\n```\n\n## KVM-Server\n\nZuerst einen Server über seine `internal_id` auswählen:\n\n```javascript\nconst vm = fire.kvm('INTERNAL_ID');\n```\n\n### Allgemein\n\n```javascript\nawait vm.config();          // Konfiguration (Hardware, IPs, OS …)\nawait vm.status();          // Status & Auslastung (running / stopped / …)\n\nawait vm.power('start');    // Power-Aktion: 'start' | 'stop' | 'restart'\nawait vm.start();           // Kurzform für power('start')\nawait vm.stop();            // Kurzform für power('stop')\nawait vm.restart();         // Kurzform für power('restart')\n```\n\n### Backups\n\n```javascript\nawait vm.backup.list();                       // Alle Backups auflisten\nawait vm.backup.create('Notiz');              // Backup erstellen (24fire+), Notiz optional, max. 24 Zeichen\nawait vm.backup.createStatus('BACKUP_ID');    // Status der Erstellung abfragen\nawait vm.backup.restore('BACKUP_ID');         // Backup wiederherstellen (24fire+)\nawait vm.backup.restoreStatus('BACKUP_ID');   // Status der Wiederherstellung abfragen\nawait vm.backup.delete('BACKUP_ID');          // Backup löschen\n```\n\n### Traffic\n\n```javascript\nawait vm.traffic.current();   // Aktueller Traffic-Verbrauch des Monats\nawait vm.traffic.log();       // Traffic-Log (Messung alle 10 Minuten)\n\n// Traffic-Diagramm generieren (24fire+)\nawait vm.traffic.chart({\n    type: 'both',             // Eingehend / Ausgehend / Beides\n    summary: 'DAILY',         // DAILY | HOURLY | NONE\n    output: 'apexcharts',     // chartjs | apexcharts | base64\n    datapoints: 30,\n    size: '900x300',\n});\n```\n\n### Monitoring\n\n```javascript\nawait vm.monitoring.timings();      // Messungen abrufen\nawait vm.monitoring.incidences();   // Ausfälle abrufen\n```\n\n### DDoS (24fire+)\n\n```javascript\nawait vm.ddos.get();                // Aktuelle DDoS-Einstellungen abrufen\nawait vm.ddos.change({\n    layer4: 'permanent',\n    layer7: 'on',\n    ip_address: '88.151.194.253',   // optional; ohne Angabe gilt es für alle IPv4 der VM\n});\n```\n\n## Domains\n\n```javascript\nconst domain = fire.domain('INTERNAL_ID');\n\nawait domain.info();        // Domain-Informationen\nawait domain.dns.list();    // Alle DNS-Einträge\n\n// DNS-Eintrag hinzufügen (24fire+)\nawait domain.dns.add({ type: 'A', name: '*', data: '1.2.3.4' });\n\n// DNS-Eintrag bearbeiten (24fire+)\nawait domain.dns.edit({ record_id: 'RECORD_ID', data: '5.6.7.8' });\n\n// DNS-Eintrag entfernen\nawait domain.dns.remove('RECORD_ID');\n```\n\n## Webspace\n\n```javascript\nawait fire.webspace('INTERNAL_ID').info();   // Webspace-Daten abrufen\n```\n\n---\n\n## Fehlerbehandlung\n\nSchlägt eine Anfrage fehl (HTTP-Fehler oder `status: \"error\"`), wird ein `FireAPIError` geworfen:\n\n```javascript\nconst { FireAPIError } = require('24fire-api');\n\ntry {\n    await fire.kvm('INTERNAL_ID').start();\n} catch (err) {\n    if (err instanceof FireAPIError) {\n        console.error('API-Fehler:', err.message);\n        console.error('HTTP-Status:', err.status);\n        console.error('Antwort:', err.response);\n    }\n}\n```\n\n## Migration von v1\n\n| | v1 (alt) | v2 (neu) |\n|---|---|---|\n| Base-URL | `https://api.24fire.de` | `https://manage.24fire.de/api` |\n| Auth-Header | `X-FIRE-APIKEY` | `X-Fire-Apikey` |\n| Server-Auswahl | global über den Key | pro Dienst über die `internal_id` |\n| Abhängigkeiten | `axios` | keine (eingebautes `fetch`) |\n\n**Beispiel:**\n\n```javascript\n// v1\nmyFireApi.vm().getVMstatus();\nmyFireApi.vm().startVM();\nmyFireApi.backup().listBackups();\n\n// v2\nfire.kvm('INTERNAL_ID').status();\nfire.kvm('INTERNAL_ID').start();\nfire.kvm('INTERNAL_ID').backup.list();\n```\n\n> Manche Endpunkte (z. B. DNS-Verwaltung, Backups erstellen/wiederherstellen, DDoS, Traffic-Chart)\n> erfordern ein aktives **24fire+** Abonnement.\n\n## Author & Credits\n\n- Florian Linde <florian.linde@flostechnikwelt.de> (FlosTechnikwelt)\n\n## Empfehlenswert\n\n- [Offizielle API-Dokumentation (v2)](https://apidocs.24fire.de/v2)\n- [24fire](https://24fire.de/) \n- [Discord](https://discord.gg/24fire)\n\n## Feedback\n\nWenn du Feedback hast, wende dich an mich unter support@flostechnikwelt.de\n\n\n","readmeFilename":"README.md"}