{"id":512,"date":"2024-12-28T23:21:19","date_gmt":"2024-12-28T21:21:19","guid":{"rendered":"https:\/\/hostup.se\/support\/?p=512"},"modified":"2025-12-01T15:03:48","modified_gmt":"2025-12-01T13:03:48","slug":"api-autentisering","status":"publish","type":"post","link":"https:\/\/hostup.se\/support\/api-autentisering\/","title":{"rendered":"API \u2013 Autentisering &amp; v\u00e4gledning"},"content":{"rendered":"\n<p>N\u00e4r du autentiserar dig mot det <a href=\"https:\/\/cloud.hostup.se\/api-management\">\u00f6ppna API:t<\/a> anv\u00e4nder du en API nyckel. Du kan skapa hur m\u00e5nga nycklar du vill och vi rekommenderar att du skapar en API nyckel per tj\u00e4nst du integrerar mot.<\/p>\n\n\n\n<p>Exempelkommando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  https:&#47;&#47;cloud.hostup.se\/api\/hosting-accounts<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"472\" src=\"https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-nyckel-1024x472.png\" alt=\"\" class=\"wp-image-1068\" srcset=\"https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-nyckel-1024x472.png 1024w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-nyckel-300x138.png 300w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-nyckel-768x354.png 768w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-nyckel-1536x709.png 1536w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-nyckel-2048x945.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Begransade_behorigheter\"><\/span>Begr\u00e4nsade beh\u00f6righeter<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Om du endast vill ge beh\u00f6righeter f\u00f6r API nyckeln att g\u00f6ra vissa saker via API, till exempelvis endast hantera DNS poster beh\u00f6ver du endast ge dem de scopes som kr\u00e4vs f\u00f6r detta.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"1024\" src=\"https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-management-scopes-940x1024.png\" alt=\"\" class=\"wp-image-1069\" srcset=\"https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-management-scopes-940x1024.png 940w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-management-scopes-275x300.png 275w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-management-scopes-768x836.png 768w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-management-scopes-1410x1536.png 1410w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/api-management-scopes.png 1416w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"API_dokumentation\"><\/span>API dokumentation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Du kan hitta v\u00e5r API dokumenation p\u00e5 <a href=\"https:\/\/cloud.hostup.se\/api-management\">https:\/\/cloud.hostup.se\/api-management<\/a>. Just nu \u00e4r den bara tillg\u00e4nglig n\u00e4r du har loggad in. Dokumenationen \u00e4r lite begr\u00e4nsad just nu men en sak som \u00e4r riktigt bra att veta \u00e4r att v\u00e5r kundzon anv\u00e4nder exakt samma API som du sj\u00e4lv som utvecklare har tillg\u00e5ng till.<\/p>\n\n\n\n<p>Det betyder att om du \u00f6ppnar din webbl\u00e4sares dev console, kan du se hur API:t anv\u00e4nds och vilka endpoints som finns tillg\u00e4ngliga.<\/p>\n\n\n\n<p>Ett bra exempel p\u00e5 det \u00e4r att jag ser n\u00e4r jag \u00f6ppnade f\u00f6nstret f\u00f6r att konfigurera beh\u00f6righeter, gjordes en API call till https:\/\/cloud.hostup.se\/api\/keys\/scopes. D\u00e4r ser jag precis vad sidan h\u00e4mtar fr\u00e5n backend f\u00f6r att kunna skapa den layout du ser p\u00e5 sk\u00e4rmen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"861\" src=\"https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-1024x861.png\" alt=\"\" class=\"wp-image-1070\" srcset=\"https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-1024x861.png 1024w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-300x252.png 300w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-768x646.png 768w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-1536x1292.png 1536w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console.png 1926w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Exempel_Stoppa_en_VPS\"><\/span>Exempel: Stoppa en VPS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"333\" src=\"https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-stop-vps-1024x333.png\" alt=\"\" class=\"wp-image-1072\" srcset=\"https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-stop-vps-1024x333.png 1024w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-stop-vps-300x98.png 300w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-stop-vps-768x250.png 768w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-stop-vps-1536x500.png 1536w, https:\/\/hostup.se\/support\/wp-content\/uploads\/2024\/12\/browser-console-stop-vps.png 1954w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Med hj\u00e4lp av browser console kan du ta reda p\u00e5 precis allt. Om du provar att stoppa din VPS i kontrollpanelen, kommer du via browser dev console se precis vad som h\u00e4nder. I detta fall skickas en POST beg\u00e4ran iv\u00e4g till https:\/\/cloud.hostup.se\/api\/vm\/16793\/status med payload <br>{action: &#8221;stop&#8221;, force: true}. Med denna information kan vi skapa, och testa en curl mot API:t direkt i terminalen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X POST 'https:\/\/cloud.hostup.se\/api\/vm\/16793\/status' \\\n  -H 'X-API-Key: YOUR_API_KEY' \\\n  -H 'Content-Type: application\/json' \\\n  -d '{\"action\": \"stop\", force: true}'<\/code><\/pre>\n\n\n\n<p>Som svar fick jag tillbaka:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"success\": true,\n    \"timestamp\": \"2025-11-27T17:32:05.199Z\",\n    \"requestId\": \"9098d7b0-4cff-40c2-bc43-964500cbde6e\",\n    \"data\": {\n        \"success\": true,\n        \"action\": \"stop\",\n        \"jobId\": \"stop-16793-1764264725196\",\n        \"message\": \"stop operation queued\",\n        \"estimated_time\": 30\n    }\n}<\/code><\/pre>\n\n\n\n<p>Det \u00e4r just detta som underl\u00e4ttar extremt mycket f\u00f6r utvecklare hos oss. Eftersom v\u00e5r kontrollpanel anv\u00e4nder exakt samma API som du sj\u00e4lv har tillg\u00e5ng till beh\u00f6ver varken vi eller du g\u00f6ra om hjulet. Du beh\u00f6ver inte heller f\u00f6rlita dig p\u00e5 d\u00e5lig eller f\u00f6r\u00e5ldrad API dokumentation eftersom du vet att du alltid kan kolla direkt i browser console f\u00f6r att se exakt hur API:t fungerar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Exempel_2_Hantera_automatisk_SSL_fornyelse_via_ACHME\"><\/span>Exempel 2: Hantera automatisk SSL f\u00f6rnyelse via ACHME<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Vi har gjort ett plugin till achme.sh: <\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/hostup\/acme.sh\/blob\/9980ad0fef9634b105c59711dd5f470a4b35f080\/dnsapi\/dns_hostup.sh\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/hostup\/acme.sh\/blob\/9980ad0fef9634b105c59711dd5f470a4b35f080\/dnsapi\/dns_hostup.sh<\/a><\/p>\n\n\n\n<p>Med hj\u00e4lp av ovan kod f\u00e5r du lite mer exempel p\u00e5 hur du anv\u00e4nder v\u00e5rt API.<\/p>\n\r\n\t\t\t<div id=\"daexthefu-container\"\r\n\t\t\t\tclass=\"daexthefu-container daexthefu-layout-side-by-side daexthefu-alignment-left\"\r\n\t\t\t\tdata-post-id=\"512\">\r\n\r\n\t\t\t\t<div class=\"daexthefu-feedback\">\r\n\t\t\t\t\t<div class=\"daexthefu-text\">\r\n\t\t\t\t\t\t<h3 class=\"daexthefu-title\">Var den h\u00e4r artikeln hj\u00e4lpsam?<\/h3>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"daexthefu-buttons-container\">\r\n\t\t\t\t\t\t<div class=\"daexthefu-buttons\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t<div class=\"daexthefu-yes daexthefu-button daexthefu-button-type-icon\" data-value=\"1\">\r\n\t\t\t\t\r\n                <svg>\r\n                    <defs>\r\n                        <style>.happy-face-cls-1{fill:#c9c9c9;}.happy-face-cls-2{fill:#e1e1e1;}.happy-face-cls-3{fill:#676767;}<\/style>\r\n                    <\/defs>\r\n                    <g id=\"happy_face\">\r\n                        <circle class=\"happy-face-cls-1 daexthefu-icon-primary-color\" cx=\"24\" cy=\"24\" r=\"17\" \/>\r\n                        <path class=\"happy-face-cls-2 daexthefu-icon-circle\" d=\"m24,3c11.58,0,21,9.42,21,21s-9.42,21-21,21S3,35.58,3,24,12.42,3,24,3m0-1C11.85,2,2,11.85,2,24s9.85,22,22,22,22-9.85,22-22S36.15,2,24,2h0Z\" \/>\r\n                        <circle class=\"happy-face-cls-3 daexthefu-icon-secondary-color\" cx=\"18\" cy=\"22\" r=\"2\" \/>\r\n                        <circle class=\"happy-face-cls-3 daexthefu-icon-secondary-color\" cx=\"30\" cy=\"22\" r=\"2\" \/>\r\n                        <path class=\"happy-face-cls-3 daexthefu-icon-secondary-color\" d=\"m16.79,29c-1.19,0-1.89,1.31-1.25,2.32,1.77,2.81,4.9,4.68,8.47,4.68s6.7-1.87,8.47-4.68c.63-1.01-.06-2.32-1.25-2.32-3.67,0-10.76,0-14.43,0Z\" \/>\r\n                    <\/g>\r\n                <\/svg>\t\t\t<\/div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t<div class=\"daexthefu-no daexthefu-button daexthefu-button-type-icon\" data-value=\"0\">\r\n\t\t\t\t\r\n                <svg>\r\n                    <defs>\r\n                        <style>\r\n                            .sad-face-cls-1{fill:#c9c9c9;}.sad-face-cls-2{fill:#676767;}.sad-face-cls-3{fill:#e1e1e1;}.sad-face-cls-4{fill:#676767;}\r\n                        <\/style>\r\n                    <\/defs>\r\n                    <g id=\"sad_face\">\r\n                        <circle class=\"sad-face-cls-1 daexthefu-icon-primary-color\" cx=\"24\" cy=\"24\" r=\"17\" \/>\r\n                        <path class=\"sad-face-cls-3 daexthefu-icon-circle\" d=\"m24,3c11.58,0,21,9.42,21,21s-9.42,21-21,21S3,35.58,3,24,12.42,3,24,3m0-1C11.85,2,2,11.85,2,24s9.85,22,22,22,22-9.85,22-22S36.15,2,24,2h0Z\" \/>\r\n                        <circle class=\"sad-face-cls-4 daexthefu-icon-secondary-color\" cx=\"18\" cy=\"22\" r=\"2\" \/>\r\n                        <circle class=\"sad-face-cls-4 daexthefu-icon-secondary-color\" cx=\"30\" cy=\"22\" r=\"2\" \/>\r\n                        <path class=\"sad-face-cls-2 daexthefu-icon-secondary-color\" d=\"M16.9,34.5c-0.4,0-0.8-0.1-1.1-0.4c-0.6-0.6-0.6-1.5,0-2.1c2.2-2.2,5.1-3.4,8.1-3.4c3.1,0,6,1.2,8.1,3.4\r\n                        c0.6,0.6,0.6,1.5,0,2.1s-1.5,0.6-2.1,0c-1.6-1.6-3.7-2.5-6-2.5s-4.4,0.9-6,2.5C17.7,34.4,17.3,34.5,16.9,34.5z\" \/>\r\n                    <\/g>\r\n                <\/svg>\t\t\t<\/div>\r\n\r\n\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<div class=\"daexthefu-comment\">\r\n\t\t\t\t\t<div class=\"daexthefu-comment-top-container\">\r\n\t\t\t\t\t\t<label id=\"daexthefu-comment-label\" class=\"daexthefu-comment-label\"><\/label>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"daexthefu-comment-character-counter-container\">\r\n\t\t\t\t\t\t\t\t<div id=\"daexthefu-comment-character-counter-number\"\r\n\t\t\t\t\t\t\t\t\tclass=\"daexthefu-comment-character-counter-number\"><\/div>\r\n\t\t\t\t\t\t\t\t<div class=\"daexthefu-comment-character-counter-text\"><\/div>\r\n\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<textarea id=\"daexthefu-comment-textarea\" class=\"daexthefu-comment-textarea\"\r\n\t\t\t\t\t\t\t\tplaceholder=\"Skriv ditt meddelande\"\r\n\t\t\t\t\t\t\t\tmaxlength=\"\r\n\t\t\t\t\t\t\t\t400\t\t\t\t\t\t\t\t\t\"><\/textarea>\r\n\t\t\t\t\t<div class=\"daexthefu-comment-buttons-container\">\r\n\t\t\t\t\t\t<button class=\"daexthefu-comment-submit daexthefu-button\">Skicka in<\/button>\r\n\t\t\t\t\t\t<button class=\"daexthefu-comment-cancel daexthefu-button\">Avbryt<\/button>\r\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<div class=\"daexthefu-successful-submission-text\">Tack f\u00f6r din feedback!<\/div>\r\n\r\n\t\t\t<\/div>\r\n\r\n\t\t\t","protected":false},"excerpt":{"rendered":"<p>N\u00e4r du autentiserar dig mot det \u00f6ppna API:t anv\u00e4nder du en API nyckel. Du kan skapa hur m\u00e5nga nycklar du vill och vi rekommenderar att du skapar en API nyckel per tj\u00e4nst du integrerar mot. Exempelkommando: Begr\u00e4nsade beh\u00f6righeter Om du endast vill ge beh\u00f6righeter f\u00f6r API nyckeln att g\u00f6ra vissa saker via API, till exempelvis [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_helpful_status":1,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-512","post","type-post","status-publish","format-standard","hentry","category-kundzon"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/posts\/512","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/comments?post=512"}],"version-history":[{"count":5,"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/posts\/512\/revisions"}],"predecessor-version":[{"id":1115,"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/posts\/512\/revisions\/1115"}],"wp:attachment":[{"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/media?parent=512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/categories?post=512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hostup.se\/support\/wp-json\/wp\/v2\/tags?post=512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}