API Documentation

Allgemeine Information

Die API ist für Entwickler, um Sachen zu vereinfachen.



Open API Endpoint: https://marvinmc.dev/

IP-Adresse

GET/ip
127.0.0.1


GET/ip/json
{"ip":"127.0.0.1"}


Calculator

GET/calc
18


GET/calc/json
{
    "expression":"(5+5)*2-((10\/4)-0.5)",
    "result":"18"
}


GET/calc/xml

    (5+5)*2-((10/4)-0.5)
    18


Query Type Description
(full Query String) String Math calculation allowed are all numbers and: ( ) + - * / : . ,

Examples:
Text: https://marvinmc.dev/calc?(5+5)*2-((10/4)-0.5)
Json: https://marvinmc.dev/calc/json?(5+5)*2-((10/4)-0.5)
XML: https://marvinmc.dev/calc/xml?(5+5)*2-((10/4)-0.5)


Minecraft Server Ping

CHANGES PLANNED GET/minecraft/json
{
    "description":{
        "text":"\u00a7aTestserver (\u00a76\u00a7lMarvinMC-Hosting\u00a7a)\n\u00a78141.95.14.85 \u00a77user null"
    },
    "players":{
        "max":20,
        "online":0
    },
    "version":{
        "name":"Paper 1.12.2",
        "protocol":340
    },
    "favicon":"data:image\/png;base64,iVBORw0KGgoAAAAN...",
    "ping":41,
    "ip":"141.95.14.85",
    "port":10003
}


GET/minecraft/xml

    
        §aTestserver (§6§lMarvinMC-Hosting§a) §8141.95.14.85 §7user null
    
    
        20
        0
    
    
        Paper 1.12.2
        340
    
    data:image/png;base64,iVBORw0KGgoAAAAN...
    41
    141.95.14.85
    10003


Query Type Description
(full Query String) String Minecraft Server Address (mmc.wtf, marvinmc.net:10003, ...)

Examples:
Json: https://marvinmc.dev/minecraft/json?marvinmc.net:10003
XML: https://marvinmc.dev/minecraft/xml?marvinmc.net:10003


IP Whois

GET/whois/json Available soon
{}


Query Type Description
(full Query String) String IP-Address

Example: https://marvinmc.dev/whois/json?1.1.1.1



HTML to PDF

POST/pdf/create/json/
{
    "id": "VQ5gUs",
    "name": "unnamed",
    "file": "unnamed.pdf",
    "path": {
        "view": "/view/VQ5gUs/unnamed.pdf",
        "download": "/download/VQ5gUs/unnamed.pdf"
    }
}
POST/pdf/create/xml/

    rXEjg3
    unnamed
    unnamed.pdf
    
        /view/rXEjg3/unnamed.pdf
        /download/rXEjg3/unnamed.pdf
    

POST/pdf/create/
sVR9J8/unnamed.pdf
Query Type Description
author string Name of the author from this document *(Default: MarvinMC.dev - HTML to PDF)
title string The document title and name *(Default: unnamed)
tags string Keywords for the document *(Default: HTML converted to PDF by MarvinMC.dev)
topic string Set the topic aka. Subject of the Document *(Default: HTML to PDF - MarvinMC.dev)

Example: https://marvinmc.dev/pdf/create?name=example&author=MarvinMC.dev%20Documentation&tags=API%20for%20PDF%20Files&topic=Example Request Body:
<h1 style="text-align: center;">Example PDF Document</h1>
<p>You can use regular HTML here.<br>
When you run your request, this will automatically convert to a PDF.</p>
<p>You can also use images:</p>
<img src="https://marvinmc.net/src/Marvin.png" width="50px" height="auto" alt="Marvin Logo" />
<p>Special characters like &amp;, &lt;, and &gt; will be displayed correctly in the PDF.</p>
<p>Example of using special characters in text:</p>
<ul>
    <li>&amp; - Ampersand</li>
    <li>&lt; - Less than</li>
    <li>&gt; - Greater than</li>
    <li>&quot; - Double quote</li>
    <li>&#39; - Single quote</li>
</ul>
<h4>Many features you can use</h4>
<ol>
    <li>Custom Document</li>
    <li>Custom Author, Name, Theme, ...</li>
    <li>No Watermark inside the Document Content</li>
    <li>Free</li>
    <li>Unlimited uses</li>
</ol>



CAPTCHA

If you want to transmit the data with a signature to prevent unauthorized access to your captchas, send a header named 'signature' with any arbitrary string. If a signature is used during captcha creation, the same signature must also be sent in the header during verification. If no signature was sent during creation, none should be sent during verification either

GET/captcha/json
{
    "images": {
        "png": "https://marvinmc.dev/captcha/images/kbDSOOWQpqLU.png",
        "jpeg": "https://marvinmc.dev/captcha/images/kbDSOOWQpqLU.jpeg",
        "gif": "https://marvinmc.dev/captcha/images/kbDSOOWQpqLU.gif",
        "webp": "https://marvinmc.dev/captcha/images/kbDSOOWQpqLU.webp"
    },
    "id": "kbDSOOWQpqLU",
    "expire": 1728752943
}

GET/captcha/xml

    
        https://marvinmc.dev/captcha/images/kOESUfEQvbtY.png
        https://marvinmc.dev/captcha/images/kOESUfEQvbtY.jpeg
        https://marvinmc.dev/captcha/images/kOESUfEQvbtY.gif
        https://marvinmc.dev/captcha/images/kOESUfEQvbtY.webp
    
    kOESUfEQvbtY
    1729973651

GET/captcha
images:
    png: https://marvinmc.dev/captcha/images/sGdahnwPplQV.png
    jpeg: https://marvinmc.dev/captcha/images/sGdahnwPplQV.jpeg
    gif: https://marvinmc.dev/captcha/images/sGdahnwPplQV.gif
    webp: https://marvinmc.dev/captcha/images/sGdahnwPplQV.webp

id: sGdahnwPplQV
expire: 1729973735

Example: https://marvinmc.dev/captcha/json

CAPTCHA Verify

GET/captcha/verify/json
{
    "solved":true
}

GET/captcha/verify/xml

    true

GET/captcha/verify
true
Query Type Description
code string The code from the CAPTCHA Image (required)
id string ID from create request (required)

PHP usage Code example:

<?php
if ($_SERVER["REQUEST_METHOD"] == "GET") {
    $captcha = curl_init("https://marvinmc.dev/captcha/json");
    curl_setopt($captcha, CURLOPT_RETURNTRANSFER, true);
    $captcha = json_decode(curl_exec($captcha), true);

    echo '<form method="POST">
            <input name="captcha-id" value="' . $captcha["id"] . '" hidden/>
            <input name="captcha-code" type="text" placeholder="000000" required />
            <img src="'.$captcha["images"]['png'].'" />
            <button type="submit">Send</button>
          </form>';
} else if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $captchaId = $_POST["captcha-id"];
    $captchaCode = $_POST["captcha-code"];
    $captchaCurl = curl_init("https://marvinmc.dev/captcha/verify/json?id=$captchaId&code=$captchaCode");
    curl_setopt($captchaCurl, CURLOPT_RETURNTRANSFER, true);
    $captcha = json_decode(curl_exec($captchaCurl), true);
    curl_close($captchaCurl);
    if (!$captcha["solved"]) {
        exit("wrong captcha");
    }
    echo "Your code if captcha is solved";
}
?>



Random String

GET/random
Query Type Description
numbers boolean Enable Numbers to String generation *(Default: true)
lowercase boolean Enable lowercase letters to String generation *(Default: true)
uppercase boolean Enable uppercase letters to String generation *(Default: true)
special boolean Enable special characters to String generation *(Default: false)
length integer Sets the String length *(Default: 8)

Example: https://marvinmc.dev/random?length=8&lowercase=true&uppercase=true&numbers=true&special=false


Base64 to Image

GET/base64img.php CHANGES PLANNED

Example: https://marvinmc.dev/base64img.php?marvinmc.net:25565


XML to Json string

POST/convert/xml-to-json/
BodyTypeDescription
(full Request Body)XMLXML content, that shoud be converted

GET/convert/xml-to-json/
Query TypeDescription
(full Query String)string (url)XML content, that shoud be converted


Json to XML string

POST/convert/json-to-xml/
BodyTypeDescription
(full Request Body)JsonJson content, that shoud be converted

GET/convert/json-to-xml/
Query TypeDescription
(full Query String)string (url)Json content, that shoud be converted


Unixtime Converter

GET/time

Date to Unix

QueryTypeDescription
datedate OR "now"Date to Convert (Example: YYYY-MM-DD hh:mm:ss)
zonetimezone (default: UTC)Time for specific Timezone (optional)

Examples:
https://marvinmc.dev/time?date=2000-01-02 12:00:00 (2nd of January 2000)
https://marvinmc.dev/time?date=now Info: If you use + in 2000-01-02T12:00:00+20:00, you have to urlencode the + to %2B, the string looks like: 2000-01-02T12:00:00%2B20:00 https://marvinmc.dev/time?date=2000-01-02T12:00:00%2B02:00&zone=Europe/Berlin (2nd of January 2000)

Unix to Date

QueryTypeDescription
unixunix OR "now"Unixtime to Convert
zonetimezone (default: UTC)Time for specific Timezone (optional)
formatDate format (default: Y-m-d H:i:s)Date format (optional)

Date Format

Date format

CharacterDescriptionOutput
d Day of the month, two digits with leading zeros 07 (for the 7th day)
D Day of the week, abbreviated (3 letters) Mon (for Monday)
j Day of the month, without leading zeros 7
l Day of the week, full name Monday
N Day of the week as a number (1 = Monday, 7 = Sunday) 1
S English ordinal suffix for the day of the month, 2 characters th (e.g., 7th)
w Day of the week as a number (0 = Sunday, 6 = Saturday) 0 (for Sunday)
z Day of the year (0-365) 189 (for the 189th day)
W ISO-8601 week number of year, two digits 27 (for the 27th week)
F Month, full name September
m Month, two digits with leading zeros 09
M Month, abbreviated (3 letters) Sep
n Month, without leading zeros 9
t Number of days in the month 30 (for September)
L Leap year (1 = Yes, 0 = No) 0 (not a leap year)
o ISO-8601 year number 2024
Y Year, four digits 2024
y Year, two digits 24


Time format

CharacterDescriptionOutput
a Lowercase am/pm pm
A Uppercase AM/PM PM
B Swatch Internet Time 727
g Hour in 12-hour format, without leading zeros 9
G Hour in 24-hour format, without leading zeros 21
h Hour in 12-hour format, two digits with leading zeros 09
H Hour in 24-hour format, two digits with leading zeros 21
i Minutes, two digits with leading zeros 05
s Seconds, two digits with leading zeros 30


Time Zone format

CharacterDescriptionOutput
e Timezone identifier UTC
I Daylight Saving Time (1 = Yes, 0 = No) 0 (no DST)
O Timezone offset from UTC in hours +0200
P Timezone offset from UTC with colon +02:00
T Timezone abbreviation CEST
Z Timezone offset in seconds 7200


Full Date/Time format

CharacterDescriptionOutput
c ISO 8601 date 2024-09-07T21:05:30+02:00
r RFC 2822 date Sat, 07 Sep 2024 21:05:30 +0200
U Unix timestamp (seconds since January 1, 1970) 1725559530


Examples

Format Description Formatting String Example
Year-Month-Day Standard ISO 8601 date format Y-m-d 2024-09-07
Month Day, Year Full month name, day, and year F j, Y September 7, 2024
Day Month Year Day, abbreviated month name, and year d M Y 07 Sep 2024
Day/Month/Year Day, month, and year with slashes d/m/Y 07/09/2024
Month Day, Year at Hour:Minute AM/PM Full month name, day, year, and time in 12-hour format F j, Y \a\t g:i A September 7, 2024 at 9:05 PM
Full Date and Time ISO 8601 format with time c 2024-09-07T21:05:30+00:00
Day of Week, Month Day, Year Full day of week, month, day, and year l, F j, Y Saturday, September 7, 2024
24-hour Time with Seconds Time in 24-hour format with seconds H:i:s 21:05:30
12-hour Time with AM/PM Time in 12-hour format with AM/PM g:i A 9:05 PM
Year-Month-Day Hour:Minute:Second Full date and time in 24-hour format Y-m-d H:i:s 2024-09-07 21:05:30


Timezones

Continent Timezones
Africa Africa/Abidjan, Africa/Accra, Africa/Addis_Ababa, Africa/Algiers, Africa/Asmara, Africa/Bamako, Africa/Bangui, Africa/Banjul, Africa/Bissau, Africa/Blantyre, Africa/Brazzaville, Africa/Bujumbura, Africa/Cairo, Africa/Casablanca, Africa/Ceuta, Africa/Conakry, Africa/Dakar, Africa/Dar_es_Salaam, Africa/Djibouti, Africa/Douala, Africa/El_Aaiun, Africa/Freetown, Africa/Gaborone, Africa/Harare, Africa/Johannesburg, Africa/Juba, Africa/Kampala, Africa/Khartoum, Africa/Kigali, Africa/Kinshasa, Africa/Lagos, Africa/Libreville, Africa/Lome, Africa/Luanda, Africa/Lubumbashi, Africa/Lusaka, Africa/Malabo, Africa/Maputo, Africa/Maseru, Africa/Mbabane, Africa/Mogadishu, Africa/Monrovia, Africa/Nairobi, Africa/Ndjamena, Africa/Niamey, Africa/Nouakchott, Africa/Ouagadougou, Africa/Porto-Novo, Africa/Sao_Tome, Africa/Tripoli, Africa/Tunis, Africa/Windhoek
America America/Adak, America/Anchorage, America/Anguilla, America/Antigua, America/Araguaina, America/Argentina/Buenos_Aires, America/Argentina/Catamarca, America/Argentina/Cordoba, America/Argentina/Jujuy, America/Argentina/La_Rioja, America/Argentina/Mendoza, America/Argentina/Rio_Gallegos, America/Argentina/Salta, America/Argentina/San_Juan, America/Argentina/San_Luis, America/Argentina/Tucuman, America/Argentina/Ushuaia, America/Aruba, America/Asuncion, America/Atikokan, America/Bahia, America/Bahia_Banderas, America/Barbados, America/Belem, America/Belize, America/Blanc-Sablon, America/Boa_Vista, America/Bogota, America/Boise, America/Cambridge_Bay, America/Campo_Grande, America/Cancun, America/Caracas, America/Cayenne, America/Cayman, America/Chicago, America/Chihuahua, America/Ciudad_Juarez, America/Costa_Rica, America/Creston, America/Cuiaba, America/Curacao, America/Danmarkshavn, America/Dawson, America/Dawson_Creek, America/Denver, America/Detroit, America/Dominica, America/Edmonton, America/Eirunepe, America/El_Salvador, America/Fort_Nelson, America/Fortaleza, America/Glace_Bay, America/Goose_Bay, America/Grand_Turk, America/Grenada, America/Guadeloupe, America/Guatemala, America/Guayaquil, America/Guyana, America/Halifax, America/Havana, America/Hermosillo, America/Indiana/Indianapolis, America/Indiana/Knox, America/Indiana/Marengo, America/Indiana/Petersburg, America/Indiana/Tell_City, America/Indiana/Vevay, America/Indiana/Vincennes, America/Indiana/Winamac, America/Inuvik, America/Iqaluit, America/Jamaica, America/Juneau, America/Kentucky/Louisville, America/Kentucky/Monticello, America/Kralendijk, America/La_Paz, America/Lima, America/Los_Angeles, America/Lower_Princes, America/Maceio, America/Managua, America/Manaus, America/Marigot, America/Martinique, America/Matamoros, America/Mazatlan, America/Menominee, America/Merida, America/Metlakatla, America/Mexico_City, America/Miquelon, America/Moncton, America/Monterrey, America/Montevideo, America/Montserrat, America/Nassau, America/New_York, America/Nome, America/Noronha, America/North_Dakota/Beulah, America/North_Dakota/Center, America/North_Dakota/New_Salem, America/Nuuk, America/Ojinaga, America/Panama, America/Paramaribo, America/Phoenix, America/Port-au-Prince, America/Port_of_Spain, America/Porto_Velho, America/Puerto_Rico, America/Punta_Arenas, America/Rankin_Inlet, America/Recife, America/Regina, America/Resolute, America/Rio_Branco, America/Santarem, America/Santiago, America/Santo_Domingo, America/Sao_Paulo, America/Scoresbysund, America/Sitka, America/St_Barthelemy, America/St_Johns, America/St_Kitts, America/St_Lucia, America/St_Thomas, America/St_Vincent, America/Swift_Current, America/Tegucigalpa, America/Thule, America/Tijuana, America/Toronto, America/Tortola, America/Vancouver, America/Whitehorse, America/Winnipeg, America/Yakutat
Antarctica Antarctica/Casey, Antarctica/Davis, Antarctica/DumontDUrville, Antarctica/Macquarie, Antarctica/Mawson, Antarctica/McMurdo, Antarctica/Palmer, Antarctica/Rothera, Antarctica/Syowa, Antarctica/Troll, Antarctica/Vostok
Arctic Arctic/Longyearbyen
Asia Asia/Aden, Asia/Almaty, Asia/Amman, Asia/Anadyr, Asia/Aqtau, Asia/Aqtobe, Asia/Ashgabat, Asia/Atyrau, Asia/Baghdad, Asia/Bahrain, Asia/Baku, Asia/Bangkok, Asia/Barnaul, Asia/Beirut, Asia/Bishkek, Asia/Brunei, Asia/Chita, Asia/Choibalsan, Asia/Colombo, Asia/Damascus, Asia/Dhaka, Asia/Dili, Asia/Dubai, Asia/Dushanbe, Asia/Famagusta, Asia/Gaza, Asia/Hebron, Asia/Ho_Chi_Minh, Asia/Hong_Kong, Asia/Hovd, Asia/Irkutsk, Asia/Jakarta, Asia/Jayapura, Asia/Jerusalem, Asia/Kabul, Asia/Kamchatka, Asia/Karachi, Asia/Kathmandu, Asia/Khandyga, Asia/Kolkata, Asia/Krasnoyarsk, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Kuwait, Asia/Macau, Asia/Magadan, Asia/Makassar, Asia/Manila, Asia/Muscat, Asia/Nicosia, Asia/Novokuznetsk, Asia/Novosibirsk, Asia/Omsk, Asia/Oral, Asia/Phnom_Penh, Asia/Pontianak, Asia/Pyongyang, Asia/Qatar, Asia/Qostanay, Asia/Qyzylorda, Asia/Riyadh, Asia/Sakhalin, Asia/Samarkand, Asia/Seoul, Asia/Shanghai, Asia/Singapore, Asia/Srednekolymsk, Asia/Taipei, Asia/Tashkent, Asia/Tbilisi, Asia/Tehran, Asia/Thimphu, Asia/Tokyo, Asia/Tomsk, Asia/Ulaanbaatar, Asia/Urumqi, Asia/Ust-Nera, Asia/Vientiane, Asia/Vladivostok, Asia/Yakutsk, Asia/Yangon, Asia/Yekaterinburg, Asia/Yerevan
Atlantic Atlantic/Azores, Atlantic/Bermuda, Atlantic/Canary, Atlantic/Cape_Verde, Atlantic/Faroe, Atlantic/Madeira, Atlantic/Reykjavik, Atlantic/South_Georgia, Atlantic/St_Helena, Atlantic/Stanley
Australia Australia/Adelaide, Australia/Brisbane, Australia/Broken_Hill, Australia/Darwin, Australia/Eucla, Australia/Hobart, Australia/Lindeman, Australia/Lord_Howe, Australia/Melbourne, Australia/Perth, Australia/Sydney
Europe Europe/Amsterdam, Europe/Andorra, Europe/Astrakhan, Europe/Athens, Europe/Belgrade, Europe/Berlin, Europe/Bratislava, Europe/Brussels, Europe/Bucharest, Europe/Budapest, Europe/Busingen, Europe/Chisinau, Europe/Copenhagen, Europe/Dublin, Europe/Gibraltar, Europe/Guernsey, Europe/Helsinki, Europe/Isle_of_Man, Europe/Istanbul, Europe/Jersey, Europe/Kaliningrad, Europe/Kirov, Europe/Kyiv, Europe/Lisbon, Europe/Ljubljana, Europe/London, Europe/Luxembourg, Europe/Madrid, Europe/Malta, Europe/Mariehamn, Europe/Minsk, Europe/Monaco, Europe/Moscow, Europe/Oslo, Europe/Paris, Europe/Podgorica, Europe/Prague, Europe/Riga, Europe/Rome, Europe/Samara, Europe/San_Marino, Europe/Sarajevo, Europe/Saratov, Europe/Simferopol, Europe/Skopje, Europe/Sofia, Europe/Stockholm, Europe/Tallinn, Europe/Tirane, Europe/Ulyanovsk, Europe/Vaduz, Europe/Vatican, Europe/Vienna, Europe/Vilnius, Europe/Volgograd, Europe/Warsaw, Europe/Zagreb, Europe/Zurich
Indian Indian/Antananarivo, Indian/Chagos, Indian/Christmas, Indian/Cocos, Indian/Comoro, Indian/Kerguelen, Indian/Mahe, Indian/Maldives, Indian/Mauritius, Indian/Mayotte, Indian/Reunion
Pacific Pacific/Apia, Pacific/Auckland, Pacific/Bougainville, Pacific/Chatham, Pacific/Chuuk, Pacific/Easter, Pacific/Efate, Pacific/Fakaofo, Pacific/Fiji, Pacific/Funafuti, Pacific/Galapagos, Pacific/Gambier, Pacific/Guadalcanal, Pacific/Guam, Pacific/Honolulu, Pacific/Kanton, Pacific/Kiritimati, Pacific/Kosrae, Pacific/Kwajalein, Pacific/Majuro, Pacific/Marquesas, Pacific/Midway, Pacific/Nauru, Pacific/Niue, Pacific/Norfolk, Pacific/Noumea, Pacific/Pago_Pago, Pacific/Palau, Pacific/Pitcairn, Pacific/Pohnpei, Pacific/Port_Moresby, Pacific/Rarotonga, Pacific/Saipan, Pacific/Tahiti, Pacific/Tarawa, Pacific/Tongatapu, Pacific/Wake, Pacific/Wallis
UTC UTC

Examples:
https://marvinmc.dev/time?unix=946814400 (2nd of January 2000)
https://marvinmc.dev/time?unix=curr
https://marvinmc.dev/time?unix=now&format=c
https://marvinmc.dev/time?unix=now&format=Y-m-d H:i:s
https://marvinmc.dev/time?unix=now&format=F j, Y \a\t g:i A
https://marvinmc.dev/time?unix=now&format=c&zone=Europe/Berlin
https://marvinmc.dev/time?unix=now&format=Y-m-d H:i:s&zone=Europe/Berlin