Legacy HTTP

The sendtmsg.php interface for existing integrations. This API has been available since 2009 and remains fully supported for backwards compatibility.

Tip

For new integrations, we recommend using the modern REST API with JSON responses and Bearer token authentication. See REST API.

Endpoint

URL

https://www.teammessage.de/mbr/sendtmsg.php

Supports both GET and POST requests. GET is common for simple integrations; POST is recommended for longer messages or when URL length limits apply.

Required Parameters

Parameter Description Example
tm Team ID (customer number) 100042
tn Team list email address myteam@tmsg.de
msg Message text (URL-encoded) Server+alert

Optional Parameters

Parameter Description Example
tsms Recipient phone number(s), comma-separated +4917012345678
fsms Sender ID (alphanumeric max. 11 chars, or numeric max. 16 digits) ALERT
fm Sender email for authentication (if authorized senders configured) server@example.com
ky Keyword for authentication (if configured for the team list) secret123
date Scheduled send date (DD.MM.YY or YYYY-MM-DD) 25.12.25
time Scheduled send time (HH:MM) 08:00
test Test mode – validates parameters without sending (set to 1) 1
utf Message is UTF-8 encoded (set to 1) 1
flash Send as flash SMS (displays immediately, set to 1) 1

Response Codes

The API returns a plain text response with a status code:

Code Meaning
+1 Success – SMS accepted for delivery
-1 Invalid team ID (tm parameter)
-2 Invalid team name (tn parameter)
-3 Invalid sender email (fm parameter)
-4 Message too short
-5 No message provided
-10 Account not found (check tm, tn, ky)
-11 SMS sending locked or invalid phone number
-12 IP address not in whitelist

Examples

Basic SMS

Send to team list

curl "https://www.teammessage.de/mbr/sendtmsg.php?tm=100042&tn=myteam@tmsg.de&msg=Server+alert"

Direct to Phone Number

Send to specific recipient

curl "https://www.teammessage.de/mbr/sendtmsg.php?tm=100042&tn=myteam@tmsg.de&tsms=+4917012345678&msg=Direct+message"

With Authentication

Using keyword authentication

curl "https://www.teammessage.de/mbr/sendtmsg.php?tm=100042&tn=myteam@tmsg.de&ky=secret123&msg=Authenticated+message"

Scheduled Sending

Send at specific date and time

curl "https://www.teammessage.de/mbr/sendtmsg.php?tm=100042&tn=myteam@tmsg.de&msg=Reminder&date=25.12.25&time=08:00"

Multiple Recipients

Comma-separated phone numbers

curl "https://www.teammessage.de/mbr/sendtmsg.php?tm=100042&tn=myteam@tmsg.de&tsms=+4917012345678,+4917098765432&msg=Group+alert"

Custom Sender ID

Alphanumeric sender

curl "https://www.teammessage.de/mbr/sendtmsg.php?tm=100042&tn=myteam@tmsg.de&tsms=+4917012345678&fsms=ALERT&msg=Server+down"

Test Mode

Validate without sending

curl "https://www.teammessage.de/mbr/sendtmsg.php?tm=100042&tn=myteam@tmsg.de&msg=Test&test=1"

Phone Number Format

Phone numbers can be provided in various formats. They are normalized automatically:

Input Normalized
+4917012345678 004917012345678
004917012345678 004917012345678
017012345678 004917012345678
0170-123 456 78 004917012345678

Note

Spaces, dashes, and parentheses are automatically removed. Numbers without country code are assumed to be German (+49).

Character Encoding

By default, messages are expected in ISO-8859-15 encoding. For special characters or non-Latin scripts:

  • Use the utf=1 parameter for UTF-8 encoded messages
  • URL-encode special characters (e.g., ä → %C3%A4 for UTF-8)
  • The system auto-detects UTF-8 in most cases

UTF-8 message with umlauts

curl "https://www.teammessage.de/mbr/sendtmsg.php?tm=100042&tn=myteam@tmsg.de&msg=M%C3%BCnchen+Gr%C3%BC%C3%9Fe&utf=1"

IP Whitelist

For security, you can restrict API access to specific IP addresses. Configure the whitelist in your team list settings.

Supported formats:

  • Single IP: 192.168.1.100
  • CIDR notation: 192.168.1.0/24
  • Subnet mask: 10.0.0.0/255.255.255.0
  • Multiple entries: 192.168.1.100, 10.0.0.0/24

Note

If a whitelist is configured and your IP is not included, you receive error -12.

Integration Examples

Shell Script (Nagios/Icinga)

#!/bin/bash
TEAM_ID="100042"
TEAM_NAME="monitoring@tmsg.de"
RECIPIENT="$CONTACTPAGER$"
MESSAGE="$NOTIFICATIONTYPE$: $HOSTALIAS$ $SERVICEDESC$ is $SERVICESTATE$"

curl -s "https://www.teammessage.de/mbr/sendtmsg.php?tm=${TEAM_ID}&tn=${TEAM_NAME}&tsms=${RECIPIENT}&msg=$(echo -n "$MESSAGE" | jq -sRr @uri)"

Python

import requests
from urllib.parse import urlencode

params = {
    'tm': '100042',
    'tn': 'myteam@tmsg.de',
    'tsms': '+4917012345678',
    'msg': 'Alert from Python script'
}

response = requests.get(
    'https://www.teammessage.de/mbr/sendtmsg.php',
    params=params
)

if '+1' in response.text:
    print('SMS sent successfully')
else:
    print(f'Error: {response.text}')

PHP

<?php
$params = http_build_query([
    'tm' => '100042',
    'tn' => 'myteam@tmsg.de',
    'tsms' => '+4917012345678',
    'msg' => 'Alert from PHP'
]);

$response = file_get_contents(
    "https://www.teammessage.de/mbr/sendtmsg.php?{$params}"
);

if (strpos($response, '+1') !== false) {
    echo "SMS sent successfully\n";
} else {
    echo "Error: {$response}\n";
}

Migration to REST API

Consider migrating to the modern REST API for:

  • JSON responses for easier parsing
  • Bearer token authentication (more secure)
  • IPv6 support
  • OpenAPI/Swagger documentation
  • Additional endpoints (delivery status, credit balance)

See REST API for the modern API documentation.

Menu