Overview
<p>Use our API for systems integration or to build your own use cases. Sample scenarios include but are not limited to:</p><ul><li>2-way integration: Triggering of Signls and updates in the third party systems when alert state changes occur</li><li>Retrieving alarms for logging purposes</li><li>Calendar integrations: Creation and management of on-call duties</li><li>Punch users in and out based on external calendars</li><li>etc.</li></ul><p>AUTHENTICATION<br>Using the API requires an API key, which you can generate in the SIGNL4 portal under 'Developers'.<br>This key must then be specified in a special header in every HTTP request.<br>This header is called <b style='color:#F8B41F'>X-S4-Api-Key</b>.<br><br>The base URL of the API is <a rel='noopener noreferrer' target='_blank' href='https://connect.signl4.com/api/'>https://connect.signl4.com/api/</a>.<br>Copyright © Derdack GmbH<br></p>
SIGNL4 API is a messaging API from signl4.com. Requests are authenticated with OAuth. It is served over HTTPS. Its OpenAPI description documents 101 endpoints.
At a glance
- Authentication
- OAuth
- HTTPS
- Yes
- CORS
- Unknown
- Category
- Messaging
- Base URL
https://connect.signl4.com/api- Version
- v1
- Endpoints
- 101
- OpenAPI
- Specification ↗
- Spec updated
- 2021-06-21
Make a first request
Replace the placeholders; the documentation says exactly where credentials go.
curl -X GET "https://connect.signl4.com/api/alerts/report" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("https://connect.signl4.com/api/alerts/report", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer YOUR_TOKEN",
},
});
const data = await response.json();
console.log(data);import requests
response = requests.request(
"GET",
"https://connect.signl4.com/api/alerts/report",
headers={
"Accept": "application/json",
"Authorization": "Bearer YOUR_TOKEN",
},
timeout=30,
)
print(response.json())Endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /alerts | Trigger Alert |
| POST | /alerts/acknowledgeAll | Confirms all visible alerts |
| POST | /alerts/acknowledgeMultiple | Acknowlegde multiple alerts |
| POST | /alerts/closeAll | Close all acknowledged alerts. |
| POST | /alerts/closeMultiple | Close multiple alerts |
| POST | /alerts/paged | Gets alerts paged |
| GET | /alerts/report | Get Alert Report |
| POST | /alerts/undoAcknowledgeMultiple | Queue undo of multiple acknowledgments. |
| POST | /alerts/undoCloseMultiple | Withdraw closure of multiple alerts |
| GET | /alerts/{alertId} | Get Alert |
| POST | /alerts/{alertId}/acknowledge | Acknowledge an alert |
| POST | /alerts/{alertId}/annotate | Annotate Alert |
| GET | /alerts/{alertId}/annotations | Get annotations of an alert |
| GET | /alerts/{alertId}/attachments | Get attachments of an alert |
| GET | /alerts/{alertId}/attachments/{attachmentId} | Gets a specified attachment of a specified alert. |
| POST | /alerts/{alertId}/close | Close an alert |
| GET | /alerts/{alertId}/notifications | Get alert notifications |
| GET | /alerts/{alertId}/overview | Get an overview alert. |
| POST | /alerts/{alertId}/undoAcknowledge | Undo the acknowledgement of an alert. |
| POST | /alerts/{alertId}/undoClose | Undo the closure of an alert. |
| GET | /categories/images | Gets the names of all alert category images. You can get the image by going to account.signl4.com/images/alerts/categoryImageName.svg |
| GET | /categories/{teamId} | Get all categories |
| POST | /categories/{teamId} | Create a new category |
| GET | /categories/{teamId}/metrics | Get metrics for all categories |
| GET | /categories/{teamId}/{categoryId} | Get a specific category |
| PUT | /categories/{teamId}/{categoryId} | Update an existing category |
| DELETE | /categories/{teamId}/{categoryId} | Delete an existing category |
| GET | /categories/{teamId}/{categoryId}/metrics | Get metrics for a specific category |
| GET | /categories/{teamId}/{categoryId}/subscriptions | Get category subscriptions |
| POST | /categories/{teamId}/{categoryId}/subscriptions | Set category subscriptions |
| POST | /events/paged | Get overview event paged. |
| GET | /events/{eventId}/overview | Get overview event |
| GET | /events/{eventId}/parameters | Get event parameters |
| GET | /prepaid/balance | Get your subscription's current prepaid balance. |
| GET | /prepaid/settings | Get your subscription's current prepaid settings. |
| PUT | /prepaid/settings | Update your subscription's current prepaid settings. |
| GET | /prepaid/transactions | Get your subscription's prepaid transactions. |
| GET | /scripts/instances | Returns all script instances of the SIGNL4 team |
| POST | /scripts/instances | Creates a new script instance in the in the SIGNL4 team. |
| GET | /scripts/instances/{instanceId} | Returns all information about a given script instance which includes its runtime status. |
| PUT | /scripts/instances/{instanceId} | Updates a given script instance, typically used for updating the configuration of a script. |
| DELETE | /scripts/instances/{instanceId} | Deletes a script instance. |
| PUT | /scripts/instances/{instanceId}/data | Updates custom data of a given script instance which includes its display name. |
| POST | /scripts/instances/{instanceId}/disable | Disables a given script instance. |
| POST | /scripts/instances/{instanceId}/enable | Enables a script instance. |
| GET | /scripts/inventory | Returns all available inventory scripts which can be added to a SIGNL4 subscription. |
| GET | /scripts/inventory/parsed | Returns all inventory scripts. |
| GET | /scripts/inventory/parsed/{scriptId} | Returns an inventory script by its id. |
| GET | /subscriptions | Get infos of all available/managed subscriptions. |
| GET | /subscriptions/{subscriptionId} | Get infos of a specific subscription. |
| GET | /subscriptions/{subscriptionId}/channelPrices | Returns the subscription's channel price information. |
| GET | /subscriptions/{subscriptionId}/features | Returns the features of a specified subscription. |
| GET | /subscriptions/{subscriptionId}/prepaidBalance | Get a subscription's current prepaid balance. |
| GET | /subscriptions/{subscriptionId}/prepaidSettings | Get a subscription's current prepaid settings. |
| PUT | /subscriptions/{subscriptionId}/prepaidSettings | Update a subscription's current prepaid settings. |
| GET | /subscriptions/{subscriptionId}/prepaidTransactions | Get a subscription's prepaid transactions. |
| PUT | /subscriptions/{subscriptionId}/profile | Updates a subscriptions profile. |
| GET | /subscriptions/{subscriptionId}/teams | Get infos for all teams of the subscription. |
| GET | /subscriptions/{subscriptionId}/userLicenses | Gets a subscription's user licenses. |
| GET | /teams | Get infos of all teams. |
| GET | /teams/{teamId} | Gets infos of a specific team. |
| GET | /teams/{teamId}/alertReports | Get information about downloadable alert reports |
| GET | /teams/{teamId}/alertReports/{fileName} | Returns Alert Report |
| GET | /teams/{teamId}/alertSettings | Gets alert settings of a specific team. |
| POST | /teams/{teamId}/alertSettings | Sets alert settings of a specific team. |
| GET | /teams/{teamId}/dutyReports | Get Information about downloadable reports |
| GET | /teams/{teamId}/dutyReports/{fileName} | Download duty report with a specific fileName |
| GET | /teams/{teamId}/dutysummary | Get duty assistant info for a team |
| GET | /teams/{teamId}/eventSources | Gets event sources of a specific team. |
| GET | /teams/{teamId}/memberships | Get all invites of a team. |
| POST | /teams/{teamId}/memberships | Invite users to a team |
| POST | /teams/{teamId}/memberships/resendInviteMail | Sends invite email again if an invite exists |
| PUT | /teams/{teamId}/memberships/{userId} | Update user's team membership. |
| DELETE | /teams/{teamId}/memberships/{userId} | Removes a user or invitation from a team, and may delete the user if he is not in any team. |
| PUT | /teams/{teamId}/profile | Updates team profile of a team |
| GET | /teams/{teamId}/schedules | Returns information about all duties that belong to the team. |
| POST | /teams/{teamId}/schedules | Create/Update given duty schedule. |
| POST | /teams/{teamId}/schedules/deleteRange | Delete duty schedules in range |
| POST | /teams/{teamId}/schedules/multiple | Save multiple schedules. It is possible to override existing schedules if you wish |
| DELETE | /teams/{teamId}/schedules/{dutyId} | Delete a specific duty. |
| GET | /teams/{teamId}/schedules/{scheduleId} | Returns information of the duty schedule with the specified Id. |
| GET | /teams/{teamId}/setupProgress | Gets setup progress of a specific team. |
| GET | /users | Get all Users |
| GET | /users/{userId} | Get User by Id |
| PUT | /users/{userId}/changePassword | Updates the password of a user |
| POST | /users/{userId}/checkPermissions | Checks if a user has the provided permission. |
| GET | /users/{userId}/dutyStatus | Get duty status by user Id |
| GET | /users/{userId}/image | — |
| POST | /users/{userId}/image | Uploaded a profile image for a specified user. |
| PUT | /users/{userId}/profile | Updates user profile of an user |
| POST | /users/{userId}/punchIn | Punch User in |
| POST | /users/{userId}/punchInAsManager | Punch User in as Manager |
| POST | /users/{userId}/punchOut | Punch User out |
| GET | /users/{userId}/setupProgress | Gets setup progress of a specific user. |
| GET | /webhooks | Get Webhooks |
| POST | /webhooks | Create Webhook |
| GET | /webhooks/{webhookId} | Get Webhook by Id |
| PUT | /webhooks/{webhookId} | Update Webhook by Id |
| DELETE | /webhooks/{webhookId} | Delete Webhook by Id |
| POST | /webhooks/{webhookId}/disable | Ability to enable a webHook. |
Showing the first 100 of 101 endpoints; the full list is in the documentation.
Questions
Does the SIGNL4 API API need an API key?
Yes. The SIGNL4 API API uses OAuth authentication; the documentation explains how to get credentials.
Does the SIGNL4 API API support HTTPS?
Yes, the SIGNL4 API API is served over HTTPS.
How many endpoints does the SIGNL4 API API have?
Its OpenAPI description lists 101 endpoints in version v1. The first 100 are shown on this page.
What are alternatives to the SIGNL4 API API?
Other Messaging APIs include Qakka, Telegram Bot API, Airflow API (Stable), Sakari, The Mercure protocol.
Similar messaging APIs
Compare alternatives →Qakka
MessagingAPI for Qakka Queue System
Telegram Bot API
MessagingAuto-generated OpenAPI schema
Airflow API (Stable)
Messaging# Overview To facilitate management, Apache Airflow supports a range of REST API endpoints across its objects. This section provides an overview of the API design, methods, and supported use cases. Most of the endpoints accept `JSON` as input and return `JSON` responses. This means that you must usually add the following headers to your request: ``` Content-type: application/json Accept: application/json ``` ## Resources The term `resource` refers to a single type of object in the Airflow metadata. An API is broken up by its endpoint's corresponding resource. The name of a resource is typically plural and expressed in camelCase. Example: `dagRuns`. Resource names are used as part of endpoint URLs, as well as in API parameters and responses. ## CRUD Operations The platform supports **C**reate, **R**ead, **U**pdate, and **D**elete operations on most resources. You can review the standards for these operations and their standard parameters below. Some endpoints have special behavior as exceptions. ### Create To create a resource, you typically submit an HTTP `POST` request with the resource's required metadata in the request body. The response returns a `201 Created` response code upon success with the resource's metadata, including its internal `id`, in the response body. ### Read The HTTP `GET` request can be used to read a resource or to list a number of resources. A resource's `id` can be submitted in the request parameters to read a specific resource. The response usually returns a `200 OK` response code upon success, with the resource's metadata in the response body. If a `GET` request does not include a specific resource `id`, it is treated as a list request. The response usually returns a `200 OK` response code upon success, with an object containing a list of resources' metadata in the response body. When reading resources, some common query parameters are usually available. e.g.: ``` v1/connections?limit=25&offset=25 ``` |Query Parameter|Type|Description| |---------------|----|-----------| |limit|integer|Maximum number of objects to fetch. Usually 25 by default| |offset|integer|Offset after which to start returning objects. For use with limit query parameter.| ### Update Updating a resource requires the resource `id`, and is typically done using an HTTP `PATCH` request, with the fields to modify in the request body. The response usually returns a `200 OK` response code upon success, with information about the modified resource in the response body. ### Delete Deleting a resource requires the resource `id` and is typically executing via an HTTP `DELETE` request. The response usually returns a `204 No Content` response code upon success. ## Conventions - Resource names are plural and expressed in camelCase. - Names are consistent between URL parameter name and field name. - Field names are in snake_case. ```json { "name": "string", "slots": 0, "occupied_slots": 0, "used_slots": 0, "queued_slots": 0, "open_slots": 0 } ``` ### Update Mask Update mask is available as a query parameter in patch endpoints. It is used to notify the API which fields you want to update. Using `update_mask` makes it easier to update objects by helping the server know which fields to update in an object instead of updating all fields. The update request ignores any fields that aren't specified in the field mask, leaving them with their current values. Example: ``` resource = request.get('/resource/my-id').json() resource['my_field'] = 'new-value' request.patch('/resource/my-id?update_mask=my_field', data=json.dumps(resource)) ``` ## Versioning and Endpoint Lifecycle - API versioning is not synchronized to specific releases of the Apache Airflow. - APIs are designed to be backward compatible. - Any changes to the API will first go through a deprecation phase. # Trying the API You can use a third party client, such as [curl](https://curl.haxx.se/), [HTTPie](https://httpie.org/), [Postman](https://www.postman.com/) or [the Insomnia rest client](https:
Sakari
Messaging# Introduction Welcome to the documentation for the Sakari Messaging REST API. Sakari provides an advanced platform to drive large scale customized SMS communication REST is a web-service protocol that lends itself to rapid development by using everyday HTTP and JSON technology. To find out more about our product offering, please visit [https://sakari.io](https://sakari.io). # Quickstart For your convenience we have created a quickstart guide to get you up and running in 5 minutes. [https://sakari.io/blog/sakari-api-quickstart](https://sakari.io/blog/sakari-api-quickstart) # PostMan Collection We've created a simple set of examples using [PostMan](https://www.getpostman.com/) Simply click below to import these. You will need to setup three environment variables in PostMan - AccountId, ClientId and ClientSecret. Check out our PostMan blog post for more information [](https://app.getpostman.com/run-collection/d616e273edc916a7a6eb) # Finding your client id, client secret and account id To authenticate against the API's you will need three key pieces of data - client id - client secret - account id To retrieve these, simply login into [https://hub.sakari.io](https://hub.sakari.io) and click on the "cog" in the top right corner. In the popup dialog at the bottom you should see your API credentials and account id. If these are not visible you will need to click on "Request Credentials" # Versioning With any breaking changes we will introduce a new version of the API. The latest version is v1. The API uses an open schema model, which means server may add extra properties to responses. Likewise, the server will ignore any extra query parameters and request body properties. When you write clients, you need to ignore additional properties in responses to ensure they do not break. # Testing There are numerous tools available for testing the API's. We will include examples using curl and the client SDKs that we have created. If you would like to see an SDK in a language not currently available, please let us know. # Throttling / Limits Our API's have been specifically designed to support bulk messaging in a single API call. We therefore impose limits on the frequency of calling the APIs to prevent abuse or runaway processes. If you feel you need a higher limit, please contact us. If you hit the limit you will get a 429 error code returned from our servers # Errors The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format: ``` { "success": false, "error": { "code": "CONT-001", "message": "Invalid mobile number" } } ``` # Pagination For performance, most GET calls return a subset of data. This data is paginated for easy access. Most APIs which return collections of data will return a pagination object as such: ``` { "pagination": { "offset": 0, "limit": 10 "totalCount": 21 } } ``` When making calls to the API, you can adjust the slice of data returned using query parameters such as: `` https://api.sakari.io/v1/accounts/123/contacts?offset=20&limit=25 `` This will return 25 contacts with an offset of 20.
The Mercure protocol
Messaging[Mercure](https://mercure.rocks) is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way.
API iSendPro
Messaging[1] Liste des fonctionnalités : - envoi de SMS à un ou plusieurs destinataires, - lookup HLR, - récupération des récapitulatifs de campagne, - gestion des répertoires, - ajout en liste noire. - comptage du nombre de caractères des SMS [2] Pour utiliser cette API vous devez: - Créer un compte iSendPro sur https://isendpro.com/ - Créditer votre compte - Remarque: obtention d'un crédit de test possible sous conditions - Noter votre clé de compte (keyid) - Elle vous sera indispensable à l'utilisation de l'API - Vous pouvez la trouver dans le rubrique mon "compte", sous-rubrique "mon API" - Configurer le contrôle IP - Le contrôle IP est configurable dans le rubrique mon "compte", sous-rubrique "mon API" - Il s'agit d'un système de liste blanche, vous devez entrer les IP utilisées pour appeler l'API - Vous pouvez également désactiver totalement le contrôle IP
Listed from APIs.guru (CC0).