Help Documentation
Last updated: 15 April 2024

Symbient Uptime API Testing

The Symbient Uptime API can be tested at Symbient Uptime API Testing. This endpoint documentation can be used to test, develop, and debug any systems that utilize the Uptime APIs.

Authorization

Before making any requests to the API endpoints listed in this documentation, you must obtain authorization. There are two methods to achieve this: 1) using a Bearer Token or 2) a combination of API Key and Encryption Key (Enc Key). Below are the instructions for both methods.

API and ENC Keys

A. Accessing The Keys:

  1. Open a Browser: Launch your preferred web browser.
  2. Log In: Navigate to the Symbient Uptime login page and enter your credentials to access your account.
  3. Locate Keys: Once logged in, go to the settings page. You can find your API and Encryption (Enc) Keys listed under the "Integrations" section. If you need more detailed guidance on locating these keys, please see the Help Docs section for Integrations.

B. Authorization Process:

Provide your API and Enc keys within the header of any requests.

Here’s an example of headers within a Javascript request:

headers: {
	'Content-Type': 'application/json',
	'X-API-Key': 'your_api_key_here', // Replace 'your_api_key_here' with your actual API Key
	'X-Enc-Key': 'your_enc_key_here'  // Replace 'your_enc_key_here' with your actual Enc Key
	}
			

C. Verification:

After setting up your authorization, it's a good practice to verify it's working correctly. You can do this by testing the /api/v1/authenticated endpoint.

Bearer Token

Request Authentication:

To request a Bearer Token, make a POST request to the /api/v1/authenticated endpoint. Include your credentials (such as username and password or API key) in the request body.

Example Javascript Fetch Request:

fetch('https://symbient.online/api/v1/authenticated', {
	method: 'POST',
	headers: {
		'Content-Type': 'application/json'
	},
	body: JSON.stringify({
		username: 'your_username',
		password: 'your_password'
	})
})
			

Receive Token:

Upon successful authentication, the API will return a JSON response containing the Bearer Token. The token is typically found in the token field of the response.

Example Response:

{
	"success": true,
	"token": "efJgxGocOi4IUzI1NiIoiI2NoTAKcyMTEk0Y"
}
			

Using the Token:

Use the retrieved Bearer Token in the Authorization header of your subsequent API requests.

Authenticate

/api/v1/authenticated

Path:https://symbient.online/api/v1/authenticated

Method: GET

Summary: This endpoint verifies the validity of the provided authorization credentials. Upon successful validation, it returns a confirmation of the authorization's validity and a Bearer Token for this user.

Arguments

This endpoint does not require any body or query parameters.

Example Response

{
	"success": true,
	"token": "tokenid1234"
}

Membership

/api/v1/membership/save

Path:https://symbient.online/api/membership/save

Method: POST

Summary: Allows you to change your membership plan. You must provide either new credit card details or an existing payment method ID.

Arguments

Request Body Parameters

  • plan (required): String - The ID or name of the new membership plan to apply.
  • method (required): String - Indicates whether a new credit card is being used ('new') or an existing payment method ID ('methodID').
    • If using a new credit card ("method": "new"):
      • cardholderName: String - Name as it appears on the credit card.
      • cardNumber: String - Credit card number.
      • expiryMonth: Integer - Month of expiration (MM).
      • expiryYear: Integer - Year of expiration (YYYY).
      • cvc: Integer - Card Verification Code.
      • zipCode: String - Billing postal code.
    • If using an existing payment method ID ("method": "methodID"):
      • methodID: String - The identifier for a previously saved payment method.

Example JSON Request Body

Using a new credit card:

{
	"plan": "premiumPlanID",
	"method": "new",
	"cardholderName": "John Doe",
	"cardNumber": "4111111111111111",
	"expiryMonth": 12,
	"expiryYear": 2024,
	"cvc": 123,
	"zipCode": "12345"
}

Using an existing payment method ID:

{
	"plan": "standardPlanID",
	"method": "methodID123"
}

Example Response

{
	"success": true,
	"message": "You have now been enrolled with the STANDARD membership.",
	"membershipToken": "membershipToken1234"
}

Important Notes

To manage payment methods or retrieve existing ones, use the endpoints /api/v1/paymentmethods/get for retrieving all of your available payment methods, or /api/v1/paymentmethod/save to store new payment methods which can be used here.

/api/v1/membership/stop

Path:https://symbient.online/api/v1/membership/stop

Method: POST

Summary: Attempts to cancel your current account membership. Please note that some memberships may require administrative intervention to cancel. Please Contact Us if you encounter issues.

Arguments

This endpoint does not require any body or query parameters for the cancellation request.

Example Response

{
	"success": true,
	"message": "Membership canceled successfully."
}

Important Notes

Cancellation Restrictions: Some memberships may not be eligible for normal cancellation and might require intervention by an administrator. If your cancellation request fails, or if you are informed that your plan cannot be canceled normally, please Contact Us for assistance.

Monitor

/api/v1/monitor/notify/{monitorid}

Path: https://symbient.online/api/v1/monitor/notify/{monitorid}

Method: POST

Summary: Sends an update to the specified Monitor by its unique identifier. You will need to provide the monitorid in the URL and configure the status and payload according to what the target Monitor expects.

Arguments

URL Parameters

  • monitorid (required): String - The unique identifier of the Monitor you want to notify. For information about retrieving a “monitorid”, please see /api/v1/monitors.

Request Body Parameters

  • status (required): String - The status to report to the Monitor, such as "up" or "down".
  • payload: Object - A JSON object containing data that the Monitor expects to receive. The structure of this object will depend on the specific requirements of the Monitor.

Example JSON Request Body

{
	"status": "up",
	"payload": {
		"temperature": 22,
		"humidity": 60
	}
}

Expected Response

{
	"success": true,
	"message": "Monitor notified successfully"
}

Important Notes

Configuring Payload: Ensure that the payload is configured according to the specific data requirements of the targeted Monitor. This may include various types of data such as metrics or configuration updates.

/api/v1/monitor/{monitorid}/delete

Path: https://symbient.online/api/v1/monitor/{monitorid}/delete

Method: DELETE

Summary: Deletes a specific Monitor by its unique identifier. Use this endpoint with caution as all configuration settings and data associated with the Monitor will be permanently lost.

Arguments

URL Parameters

  • monitorid (required): String - The identifier of the Monitor to be deleted. For information about retrieving a “monitorid”, please see /api/v1/monitors.

Example Response

{
	"success": true,
	"message": "Monitor deleted successfully"
}

/api/v1/monitor/{monitorid}/get

Path: https://symbient.online/api/v1/monitor/{monitorid}/get

Method: GET

Summary: Retrieves detailed information about a specific Monitor's settings and configuration by its identifier.

Arguments

URL Parameters

  • monitorid (required): String - The unique identifier of the Monitor for which information is being retrieved. For information about retrieving a “monitorid”, please see /api/v1/monitors.

Example Response

{
	"success": true,
	"monitor": {
		"monitorid": "5f8a3e4idNumber",
		"type": "http",
		"isactive": true,
		"name": "My Monitor",
		"http": {
			"keyword": "OK",
			"url": "https://example.com",
			"certificate_expiry_notification": true,
			"ignore_tls_error": true,
			"method": "GET",
			"authentication_type": "none",
			"body": "Hello World",
			"headers": "Content-Type: application/json",
			"accepted_status_codes": [
				"200-299"
			]
		},
		"notifiers": [],
		"heartbeat_interval": 1,
		"upside_down_mode": true,
		"tags": [
			"string"
		],
		"status": "down",
		"last_check": "2020-10-18T00:00:00.000Z",
		"last_message": "Hello World",
		"load_time": 100,
		"created": "2020-10-18T00:00:00.000Z",
		"modified": "2020-10-18T00:00:00.000Z"
	}
}

/api/v1/monitor/save

Path: https://symbient.online/api/v1/monitor/save

Method: POST

Summary: This endpoint is used to create new Monitors or update existing ones. If a monitorid is not provided, a new Monitor will be created. If a monitorid is provided, the existing Monitor will be updated. This endpoint supports various types of Monitors, such as API, DNS, HTTP, HTTP Keyword, Ping, and TCP.

Arguments

Request Body Parameters

  • monitorid (optional): String - The unique identifier of a Monitor. If omitted, a new Monitor is created.
  • type (required): String - The type of Monitor to create or update. Possible values include "api", "dns", "http", "http_keyword", "ping", "tcp".
  • name (required): String - The name of the Monitor.
  • heartbeat_interval (required): Integer - The interval in seconds at which the Monitor checks are performed.
  • isactive (required): Boolean - Indicates whether the Monitor is active.
  • notifiers (optional): String - Identifiers for any notification mechanisms linked to the Monitor.
  • upside_down_mode (required): Boolean - If true, the Monitor's success criteria are reversed.
  • tags (optional): String - Tags associated with the Monitor for categorization or filtering.
  • hostname (optional for types except HTTP and TCP): String - The hostname for DNS, TCP, and PING type Monitors.
  • port (required for DNS and TCP): String - The port for DNS and TCP type Monitors.
  • http (conditional based on type): Object - Contains HTTP-specific monitoring settings. Fields should only be filled if the type is "http".
    • url (required for HTTP): String - The URL to monitor.
    • accepted_status_codes (required for HTTP): String - Range of HTTP status codes considered successful. Example: “200-299”.
    • keyword (optional for HTTP): String - A keyword to look for within the webpage.
    • certificate_expiry_notification (optional for HTTP): Boolean - Whether to notify on SSL certificate expiry.
    • ignore_tls_error (optional for HTTP): Boolean - Whether to ignore TLS/SSL errors.
    • method (optional for HTTP): String - HTTP method to use. Either GET, POST, PUT, PATCH, DELETE, or OPTIONS.
    • authentication_type (optional for HTTP): String - Type of HTTP authentication required. Either “none”, “basic” for HTTP Basic Auth, or “ntlm” for NTLM Auth.
    • body (optional for HTTP): String - Request body for POST methods.
    • headers (optional for HTTP): String - HTTP headers to include in the request.
  • dns (conditional based on type): Object - Contains DNS-specific monitoring settings. Fields should only be filled if the type is "dns".
    • resolver_server (required for DNS): String - The DNS server used for resolving.
    • record_type (required for DNS): String - The type of DNS record to query (e.g., A, AAAA).

Example JSON Request Body

{
	"type": "http",
	"name": "Name Here",
	"heartbeat_interval": 10,
	"isactive": false,
	"upside_down_mode": false,
	"tags": "",
	"http": {
		"url": "https://www.google.com/",
		"keyword": "",
		"certificate_expiry_notification": false,
		"ignore_tls_error": false,
		"method": "GET",
		"authentication_type": "None",
		"body": "",
		"headers": "",
		"accepted_status_codes": "200-299"
	},
	"notifiers": ""
}

Example Response

{
	"success": true,
	"message": "Monitor saved successfully",
	"monitor": {
		"monitorid": "5f8a3e4idNumber",
		"type": "http",
		"isactive": true,
		"name": "My Monitor",
		"http": {
			"keyword": "OK",
			"url": "https://example.com",
			"certificate_expiry_notification": true,
			"ignore_tls_error": true,
			"method": "GET",
			"authentication_type": "none",
			"body": "Hello World",
			"headers": "Content-Type: application/json",
			"accepted_status_codes": [
				"200-299"
			]
		},
		"notifiers": [],
		"heartbeat_interval": 1,
		"upside_down_mode": true,
		"tags": [
			"string"
		],
		"status": "down",
		"last_check": "2020-10-18T00:00:00.000Z",
		"last_message": "Hello World",
		"load_time": 100,
		"created": "2020-10-18T00:00:00.000Z",
		"modified": "2020-10-18T00:00:00.000Z"
	}
}
		

Monitors

/api/v1/monitors

Path: https://symbient.online/api/v1/monitors

Method: GET

Summary: Returns information about all of your saved Monitors. This endpoint is useful for finding the monitorid of a target Monitor.

Arguments

This endpoint does not require any body or query parameters for the request.

Example Response

{
	"success": true,
	"monitors": [
		{
			"monitorid": "5f8a3e4idNumber",
			"type": "http",
			"isactive": true,
			"name": "My Monitor",
			"http": {
				"keyword": "OK",
				"url": "https://example.com",
				"certificate_expiry_notification": true,
				"ignore_tls_error": true,
				"method": "GET",
				"authentication_type": "none",
				"body": "Hello World",
				"headers": "Content-Type: application/json",
				"accepted_status_codes": [
					"200-299"
				]
			},
			"notifiers": [],
			"heartbeat_interval": 1,
			"upside_down_mode": true,
			"tags": [
				"string"
			],
			"status": "down",
			"last_check": "2020-10-18T00:00:00.000Z",
			"last_message": "Hello World",
			"load_time": 100,
			"created": "2020-10-18T00:00:00.000Z",
			"modified": "2020-10-18T00:00:00.000Z"
		}
	]
}
		

Notifier

/api/v1/notifier/save

Path: https://symbient.online/api/v1/notifier/save

Method: POST

Summary: Saves new Notifiers or updates existing ones. If a notifierid is provided, the existing Notifier is updated. Otherwise, a new Notifier is created.

Arguments

Request Body Parameters

  • notifierid (optional): String - The unique identifier of the Notifier. If provided, the system updates the existing Notifier; if not, a new Notifier is created.
  • name (required): String - The name of the Notifier.
  • type (required): String - The type of the Notifier. Possible values are "email" or "webhook".
  • email (required if type is "email"): Object - Contains all necessary configuration for an email Notifier.
    • hostname: String - The server's hostname for sending emails.
    • port: Integer - The port number on the server for email service.
    • security: String - The type of security protocol used. This can be either be “none” or “tls”.
    • ignore_tls_errors: Boolean - Whether to ignore TLS certificate errors.
    • username: String - Username required to authenticate with the email server.
    • password: String - Password required to authenticate with the email server.
    • from_email: String - The email address from which the emails will be sent.
    • to_email: String - The primary recipient's email address.
    • to_cc: String - The email addresses for CC recipients.
    • to_bcc: String - The email addresses for BCC recipients.
    • subject: String - The subject line of the email.
  • webhook (required if type is "webhook"): Object - Contains configuration for a webhook Notifier.
    • url: String - The URL to which the webhook will send data.

Example JSON Request Body

{
	"name": "Alert System",
	"type": "email",
	"email": {
		"hostname": "smtp.example.com",
		"port": 587,
		"security": "TLS",
		"ignore_tls_errors": false,
		"username": "alert@example.com",
		"password": "securepassword",
		"from_email": "alert@example.com",
		"to_email": "user@example.com",
		"to_cc": "team@example.com",
		"to_bcc": "audit@example.com",
		"subject": "Alert Notification"
	}
}
		

Example Response

{
	"notifierid": "notifier123",
	"name": "Alert System",
	"type": "email",
	"email": {
		"hostname": "smtp.example.com",
		"port": 587,
		"security": "TLS",
		"ignore_tls_errors": false,
		"username": "alert@example.com",
		"password": "securepassword",
		"from_email": "alert@example.com",
		"to_email": "user@example.com",
		"to_cc": "team@example.com",
		"to_bcc": "audit@example.com",
		"subject": "Alert Notification"
	}
}
		

/api/v1/notifier/test

Path: https://symbient.online/api/v1/notifier/test

Method: POST

Summary: Tests a specified Notifier by sending a test notification using its settings. This helps ensure that the Notifier is configured correctly and is capable of sending notifications as expected.

Arguments

Request Body Parameters

  • notifierid (required): String - The identifier of the Notifier to be tested. For information about retrieving a “notifierid”, please see /api/v1/notifiers.

Example JSON Request Body

{
	"notifierid": "4a088e7-426h20-e914aks5068d1"
}
		

Example Response

{
	"success": true,
	"message": "Webhook response message"
}
		

/api/v1/notifier/{notifierid}/delete

Path: https://symbient.online/api/v1/notifier/{notifierid}/delete

Method: DELETE

Summary: Deletes a specified Notifier by its unique identifier. It's important to ensure that the Notifier is not linked to any Monitors at the time of deletion. Otherwise, the deletion will not be successful and a message describing the issue will be returned.

Arguments

URL Parameters

  • notifierid (required): String - The identifier of the Notifier that you want to delete. It should be verified that the Notifier is not linked to any Monitors. For information about retrieving a “notifierid”, please see /api/v1/notifiers.

Example Response

{
	"success": true,
	"message": "Notifier deleted successfully."
}
		

Notifiers

/api/v1/notifiers

Path: https://symbient.online/api/v1/notifiers

Method: GET

Summary: Retrieves information about your saved Notifiers. This endpoint is useful for obtaining the notifierid of all Notifiers, which is crucial for managing notification settings and linking Notifiers to Monitors.

Arguments

This endpoint does not require any body or query parameters for the request.

Example Response

{
	"success": true,
	"notifiers": [
		{
			"notifierid": "notifier123",
			"name": "Alert System",
			"type": "email",
			"email": {
				"hostname": "smtp.example.com",
				"port": 587,
				"security": "TLS",
				"ignore_tls_errors": false,
				"username": "alert@example.com",
				"password": "securepassword",
				"from_email": "alert@example.com",
				"to_email": "user@example.com",
				"to_cc": "team@example.com",
				"to_bcc": "audit@example.com",
				"subject": "Alert Notification"
			}
		}
	]
}
		

Payment Method

/api/v1/paymentmethod/save

Path: https://symbient.online/api/v1/paymentmethod/save

Method: POST

Summary: Saves a new Payment Method. This endpoint is designed to securely transmit payment details to a PCI-compliant payment processor without storing any credit card information directly on Symbient Uptime servers. All fields are required, and the card must have a future expiry date to be accepted.

Arguments

Request Body Parameters

  • cardholderName (required): String - The name of the cardholder as it appears on the credit card.
  • cardNumber (required): String - The credit card number.
  • expiryMonth (required): Integer - The month the credit card expires (MM).
  • expiryYear (required): Integer - The year the credit card expires (YYYY).
  • cvc (required): Integer - The card verification code.
  • zipCode (required): String - The postal code associated with the credit card billing address.

Example JSON Request Body

{
	"cardholderName": "Jane Doe",
	"cardNumber": "4111111111111111",
	"expiryMonth": 12,
	"expiryYear": 2025,
	"cvc": 123,
	"zipCode": "12345"
}
		

Important Notes

  • Security Note: As stated, no credit card information is stored on Symbient Uptime servers. All sensitive data is handled by our PCI-compliant payment processor to ensure security.
  • Updating Payment Methods: This endpoint does not support updating existing payment methods. If updates are necessary, the existing payment method must be deleted first, and then the new information should be saved as a new entry.

/api/v1/paymentmethod/default

Path: https://symbient.online/api/v1/paymentmethod/default

Method: POST

Summary: Modifies the "isdefault" property of a specified Payment Method. This endpoint allows setting a Payment Method as the default (isdefault = true). If another method is already set as the default, the old method will have the default status removed.

Arguments

Request Body Parameters

  • methodid (required): String - The unique identifier of the Payment Method you wish to set as the default. For more information about retrieving a “methodid”, please see /api/v1/paymentmethods/get.

Example JSON Request Body

{
	"methodid": "method123"
}
		

Example Response

{
	"success": true,
	"message": "Default payment method changed successfully.",
	"methodid": "methodid1234"
}
		

/api/v1/paymentmethod/delete

Path: https://symbient.online/api/v1/paymentmethod/delete

Method: POST

Summary: Deletes a specified Payment Method from your account and our PCI-compliant payment processor where Payment Methods are stored. It is important to note that deleting a Payment Method associated with any scheduled payments will cause those payments to fail, resulting in a reset of your membership plan to “None”.

Arguments

Request Body Parameters

  • methodid (required): String - The unique identifier of the Payment Method you wish to delete. For more information about retrieving a “methodid”, please see /api/v1/paymentmethods/get.

Example JSON Request Body

{
	"methodid": "method123"
}
		

Example Response

{
	"success": true,
	"message": "Payment methods deleted successfully.",
	"paymentMethodids": "methodid1234"
}
		

Payment Methods

/api/v1/paymentmethods/get

Path: https://symbient.online/api/v1/paymentmethods/get

Method: GET

Summary: Retrieves information about your saved Payment Methods. For security reasons, only the last 4 digits of each credit card number are displayed. This endpoint is useful for identifying the “methodid” of a target Payment Method, which can be used for transactions or updates.

Arguments

This endpoint does not require any body or query parameters for the request.

Example Response

{
	"success": true,
	"paymentMethods":[
		{
			"methodid": "method123",
			"type": "credit card",
			"last4": "1234",
			"expiryMonth": 12,
			"expiryYear": 2025,
			"cardholderName": "Jane Doe"
		}
	]
}
		

Settings

/api/v1/settings/save

Path: https://symbient.online/api/v1/settings/save

Method: POST

Summary: Overwrites your user settings for email or password. If you do not want to change your password, do not include the "password1" or "password2" fields.

Arguments

Request Body Parameters

  • email (required): String - The email address for the new user account. This must be unique within the system.
  • password1: String - The new password for the user account. This must adhere to the Symbient Uptime Password Policy .
  • password2: String - A repeat of the new password for confirmation. Must match password1.

Example JSON Request Body

{
	"email": "newuser@example.com",
	"password1": "NewSecurePassword123!",
	"password2": "NewSecurePassword123!"
}
		

Example Response

{
	"success": true,
	"message": "User saved successfully.",
	"userid": "12345"
}
		

Important Notes

Unique Email Requirement: The email provided must be unique across all users within Symbient Uptime. If the email is already in use, the registration will fail.

Team

/api/v1/team/get

Path: https://symbient.online/api/v1/team/get

Method: GET

Summary: Retrieves information about all users within the currently authorized user's Team. For security reasons, only the users' email addresses and user IDs are returned. This endpoint is useful for administrators or authorized users needing to manage or review their Team’s account membership.

Arguments

This endpoint does not require any body or query parameters for the request.

Example Response

{
	"success": true,
	"message": []
}
		

/api/v1/team/revoke

Path: https://symbient.online/api/v1/team/revoke

Method: POST

Summary: Revokes all active Bearer Tokens for a specified list of users within your Team. This action ensures that the targeted users are logged out from all devices where they were previously authenticated, ending all active sessions.

Arguments

Request Body Parameters

  • userids (required): Array of Strings - A list of user identifiers for whom Bearer Tokens are to be revoked.

Example JSON Request Body

{
	"userids": [
		"userid123",
		"userid456"
	]
}
		

Example Response

{
	"success": true,
	"message": "Security tokens revoked successfully."
}
		

Important Notes

Immediate Effect: The revocation is immediate, and targeted users will lose access to their sessions without the possibility of recovery. Users will need to re-authenticate to regain access.

/api/v1/team/delete

Path: https://symbient.online/api/v1/team/delete

Method: POST

Summary: Deletes specified users. This action removes the target user accounts and all associated data from the Team.

Arguments

Request Body Parameters

  • userids (required): Array of Strings - A list of user identifiers for whom Bearer Tokens are to be revoked.

Example JSON Request Body

{
	"userids": [
		"userid123",
		"userid456"
	]
}
		

Example Response

{
	"success": true,
	"message": "Users deleted successfully."
}
		

Important Notes

Consequences of Deletion: Deleting a user will result in the loss of all data associated with that user, including access logs, settings, and other personal or operational data.

/api/v1/team/save

Path: https://symbient.online/api/v1/team/save

Method: POST

Summary: Overwrites settings for an existing user or create a new user. If you want to create a new user, do not include a "userid". If you want to update an existing user, you can find their “userid” by using the /api/v1/team/get endpoint.

Arguments

Request Body Parameters

  • userid (required): String - The userid of the user to be updated. Leave this field out if you are adding a new user.
  • email (required): String - The email address to be applied to this account. This must be unique within the system.
  • password1: String - The password to be applied to this account. Leave this field out if you are updating an existing user and do not want to change the password. This must adhere to the Symbient Uptime Password Policy .
  • password2: String - A repeat of the new password for confirmation. Must match password1. Leave this field out if you are updating an existing user and do not want to change the password.

Example JSON Request Body

Adding a new user:

{
	"email": "newuser@example.com",
	"password1": "NewSecurePassword123!",
	"password2": "NewSecurePassword123!"
}
		

Updating an existing user’s email:

{
	"userid": "12345",
	"email": "newuser2@example.com"
}
		

Example Response

{
	"success": true,
	"message": "User saved successfully.",
	"userid": "12345"
}
		

Important Notes

Unique Email Requirement: The email provided must be unique across all users within Symbient Uptime. If the email is already in use, the registration will fail.

User

/api/v1/login

Path: https://symbient.online/api/v1/login

Method: POST

Summary: This endpoint facilitates user authentication and retrieves a login Bearer Token, which is necessary for authorizing subsequent API requests. If Multi-Factor Authentication (MFA) is enabled for the user, a mfacode must be included in the request.

Arguments

Request Body Parameters

  • email (required): String - The user's email address used for logging in.
  • password (required): String - The password corresponding to the user's email.
  • mfacode (optional): String - A code from the user's MFA device. This field is required if the user has MFA enabled.

Example JSON Request Body

For a user without MFA:

{
	"email": "user@example.com",
	"password": "yourPassword"
}
		

For a user with MFA enabled:

{
	"email": "user@example.com",
	"password": "yourPassword",
	"mfacode": "123456"
}
		

Example Response

{
	"success": true,
	"user": {
		"groupid": "group123",
		"userid": "user456",
		"email": "user@example.com"
	},
	"token": "abc123xyz789"
}
		

Important Notes

Bearer Token Usage: The Bearer Token obtained through this endpoint must be used to authorize other API requests. For more information about using the Bearer Token, please see Authorization.

/api/v1/logoutall

Path: https://symbient.online/api/v1/logoutall

Method: POST

Summary: Logs out the current user from all sessions across all devices by invalidating all currently active Bearer Tokens. This endpoint is useful for ensuring that no active logins remain on unsecured or public devices.

Arguments

This endpoint does not require any body or query parameters for the request.

Example Response

{
	"success": true,
	"message": "User logged out of all devices & sessions"
}
		

/api/v1/logout

Path: https://symbient.online/api/v1/logout

Method: POST

Summary: Log out from your current active session by invalidating the active Bearer Token.

Arguments

This endpoint does not require any body or query parameters for the request.

Example Response

{
	"success": true,
	"message": "User logged out successfully"
}
		

/api/v1/signup

Path: https://symbient.online/api/v1/signup

Method: POST

Summary: Registers a new user with Symbient Uptime, creating a new Team account and assigning the user to this newly created Team. The request will not be able to be processed if the provided email is already in use within the system.

Arguments

Request Body Parameters

  • email (required): String - The email address for the new user account. This email must be unique as it will be used as the primary identifier for the user.
  • password (required): String - The password for the new user account. This should comply with Symbient Uptime's Password Policy .
  • name (optional): String - The full name of the new user. This field can help personalize the user's account.

Example JSON Request Body

{
	"email": "newuser@example.com",
	"password": "TotallySecure123!",
	"name": "John Doe"
}
		

Example Response

{
	"success": true,
	"user": {
		"groupid": "newGroupID123",
		"userid": "newUserID456",
		"email": "newuser@example.com"
	},
	"token": "authTokenXYZ123"
}
		

Important Notes

  • Unique Email Requirement: The signup process requires a unique email address. If an email is already associated with another account, the request will fail.
  • Team Creation: When a user is created through this endpoint, a new Team account is automatically created for the user. If you want to add a user to an existing Team, please see /api/v1/settings/save.
  • Token Generation: A Bearer Token is provided upon successful registration. This token should be used for subsequent requests to authenticate the user within the system.

/api/v1/users/me

Path: https://symbient.online/api/v1/users/me

Method: GET

Summary: Retrieves information about your account. This endpoint only provides details about the user who is currently logged in which is identified by the presence of the “Bearer” token in the Authorization header.

Arguments

This endpoint does not require any body or query parameters for the request.

Example Response

{
	"success": true,
	"userid": "j8fD03mkGuiSf73bh34F",
	"email": "user@email.com"
}
		

/api/v1/user/delete

Path: https://symbient.online/api/v1/user/delete

Method: POST

Summary: Deletes your user account. This action removes all settings associated with your user account. Deleting the last active user in a Team will result in the removal of all of your Monitors, Notifiers, and Alerts.

Arguments

This endpoint does not require any body or query parameters for the request.

Example Response

{
	"success": true,
	"message": "Your user account has been deleted."
}
		

Important Notes

WARNING: This endpoint should be used with extreme caution, particularly in scenarios where you might have only one active user. Deleting the last active user will lead to the deletion of all of your account’s Monitors, Notifiers, and Alerts, which could take significant effort to establish again.

Password

/api/v1/password/lost

Path: https://symbient.online/api/v1/password/lost

Method: POST

Summary: Initiates a password reset process for your account. This endpoint sends a reset link to the provided email address, which you can use to create a new password.

Arguments

Request Body Parameters

  • email (required): String - The email address associated with the user account for which a password reset is requested. The system will send a password reset link to this email if it is registered in the system.

Example JSON Request Body

{
	"email": "user@example.com"
}
		

Example Response

{
	"success": true,
	"message": "Check your email for password information."
}
		

/api/v1/password/update

Path: https://symbient.online/api/v1/password/update

Method: POST

Summary: Change your password per the Symbient Uptime Password Policy .

Arguments

Request Body Parameters

  • email (required): String - The email address associated with the user account for which the password is being changed. This must match the account associated with the provided tokenid.
  • password1 (required): String - The new password the user wishes to set. Must comply with the Symbient Uptime Password Policy .
  • password2 (required): String - A confirmation of the new password to ensure there are no typographical errors in the first entry.
  • tokenid (required): String - A Bearer Token that must be included to authorize the password update. For more information about obtaining a Bearer Token, please see Authorization.

Example JSON Request Body

{
	"email": "user@example.com",
	"password1": "NewPassword123!",
	"password2": "NewPassword123!",
	"tokenid": "abc123tokenid456"
}
		

Example Response

{
	"success": true,
	"message": "Your password has been reset. You may now login."
}
		

Web

/api/v1/contactus

Path: https://symbient.online/api/v1/contactus

Method: POST

Summary: Enables you to send a message directly to the Symbient Uptime Support team.

Arguments

Request Body Parameters

  • contact-name (required): String - The name of the person sending the message. This helps the support team address the user properly in responses.
  • contact-email (required): String - The email address where the user wishes to receive responses.
  • contact-subject (required): String - The subject of the message, which helps to categorize the inquiry and route it to the appropriate support personnel.
  • contact-message (required): String - The detailed message or inquiry from the user. Providing a clear and detailed message helps the support team to understand and address the issue more efficiently.

Example JSON Request Body

{
	"contact-name": "John Doe",
	"contact-email": "johndoe@example.com",
	"contact-subject": "Technical Support Request",
	"contact-message": "Can you assist?"
}
		

Example Response

The response for this endpoint will be a “200: OK” response when successful.

Login

Please login to continue setting up your new Monitor
New user? Create an account
Forgot your password? Get it back!

Signup

Already a member? Login