Mock sample for your project: Rudder API

Integrate with "Rudder API" from rudder.example.local in no time with Mockoon's ready to use mock sample

Version: 13


Use this API in your project

Start working with "Rudder API" right away by using this ready-to-use mock sample. API mocking can greatly speed up your application development by removing all the tedious tasks or issues: API key provisioning, account creation, unplanned downtime, etc.
It also helps reduce your dependency on third-party APIs and improves your integration tests' quality and reliability by accounting for random failures, slow response time, etc.

Description

Download OpenAPI specification: openapi.yml
Introduction
Rudder exposes a REST API, enabling the user to interact with Rudder without using the webapp, for example in scripts or cronjobs.
Versioning
Each time the API is extended with new features (new functions, new parameters, new responses, ...), it will be assigned a new version number. This will allow you
to keep your existing scripts (based on previous behavior). Versions will always be integers (no 2.1 or 3.3, just 2, 3, 4, ...) or latest.
You can change the version of the API used by setting it either within the url or in a header:
the URL: each URL is prefixed by its version id, like /api/version/function.
Version 10
curl -X GET -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/10/rules
Latest
curl -X GET -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/rules
Wrong (not an integer) => 404 not found
curl -X GET -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/3.14/rules
the HTTP headers. You can add the X-API-Version header to your request. The value needs to be an integer or latest.
Version 10
curl -X GET -H "X-API-Token: yourToken" -H "X-API-Version: 10" https://rudder.example.com/rudder/api/rules
Wrong => Error response indicating which versions are available
curl -X GET -H "X-API-Token: yourToken" -H "X-API-Version: 3.14" https://rudder.example.com/rudder/api/rules
In the future, we may declare some versions as deprecated, in order to remove them in a later version of Rudder, but we will never remove any versions without warning, or without a safe
period of time to allow migration from previous versions.
Existing versions
Version
Rudder versions it appeared in
Description
1
Never released (for internal use only)
Experimental version
2 to 10 (deprecated)
4.3 and before
These versions provided the core set of API features for rules, directives, nodes global parameters, change requests and compliance, rudder settings and system API
11
5.0
New system API (replacing old localhost v1 api): status, maintenance operations and server behavior
12
6.0 and 6.1
Node key management
13
6.2
Node status endpoint
System health check
System maintenance job to purge software [that endpoint was back-ported in 6.1]
Response format
All responses from the API are in the JSON format.
{
"action": The name of the called function,
"id": The ID of the element you want, if relevant,
"result": The result of your action: success or error,
"data": Only present if this is a success and depends on the function, it's usually a JSON object,
"errorDetails": Only present if this is an error, it contains the error message
}
Success responses are sent with the 200 HTTP (Success) code
Error responses are sent with a HTTP error code (mostly 5xx...)
HTTP method
Rudder's REST API is based on the usage of HTTP methods. We use them to indicate what action will be done by the request. Currently, we use four of them:
GET: search or retrieve information (get rule details, get a group, ...)
PUT: add new objects (create a directive, clone a Rule, ...)
DELETE: remove objects (delete a node, delete a parameter, ...)
POST: update existing objects (update a directive, reload a group, ...)
Parameters
General parameters
Some parameters are available for almost all API functions. They will be described in this section.
They must be part of the query and can't be submitted in a JSON form.
Available for all requests
Field
Type
Description
prettify
boolean optional
Determine if the answer should be prettified (human friendly) or not. We recommend using this for debugging purposes, but not for general script usage as this does add some unnecessary load on the server side.
Default value: false
Available for modification requests (PUT/POST/DELETE)
Field
Type
Description
reason
string optional or required
Set a message to explain the change. If you set the reason messages to be mandatory in the web interface, failing to supply this value will lead to an error.
Default value:""
changeRequestName
string optional
Set the change request name, is used only if workflows are enabled. The default value depends on the function called
Default value: A default string for each function
changeRequestDescription
string optional
Set the change request description, is used only if workflows are enabled.
Default value:""
Passing parameters
Parameters to the API can be sent:
As part of the URL for resource identification
As data for POST/PUT requests
Directly in JSON format
As request arguments
As part of the URL for resource identification
Parameters in URLs are used to indicate which resource you want to interact with. The function will not work if this resource is missing.
Get the Rule of ID "id"
curl -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/latest/rules/id
Sending data for POST/PUT requests
Directly in JSON format
JSON format is the preferred way to interact with Rudder API for creating or updating resources.
You'll also have to set the Content-Type header to application/json (without it the JSON content would be ignored).
In a curl POST request, that header can be provided with the -H parameter:
curl -X POST -H "Content-Type: application/json" ...
The supplied file must contain a valid JSON: strings need quotes, booleans and integers don't, etc.
The (human readable) format is:
Here is an example with inlined data:
Update the Rule 'id' with a new name, disabled, and setting it one directive
curl -X POST -H "X-API-Token: yourToken" -H "Content-Type: application/json"
https://rudder.example.com/rudder/api/rules/latest/{id}
-d '{ "displayName": "new name", "enabled": false, "directives": "directiveId"}'
You can also pass a supply the JSON in a file:
Update the Rule 'id' with a new name, disabled, and setting it one directive
curl -X POST -H "X-API-Token: yourToken" -H "Content-Type: application/json" https://rudder.example.com/rudder/api/rules/latest/{id} -d @jsonParam
Note that the general parameters view in the previous chapter cannot be passed in a JSON, and you will need to pass them a URL parameters if you want them to be taken into account (you can't mix JSON and request parameters):
Update the Rule 'id' with a new name, disabled, and setting it one directive with reason message "Reason used"
curl -X POST -H "X-API-Token: yourToken" -H "Content-Type: application/json" "https://rudder.example.com/rudder/api/rules/latest/{id}?reason=Reason used" -d @jsonParam -d "reason=Reason ignored"
Request parameters
In some cases, when you have little, simple data to update, JSON can feel bloated. In such cases, you can use
request parameters. You will need to pass one parameter for each data you want to change.
Parameters follow the following schema:
key=value
You can pass parameters by two means:
As query parameters: At the end of your url, put a ? then your first parameter and then a & before next parameters
Update the Rule 'id' with a new name, disabled, and setting it one directive
curl -X POST -H "X-API-Token: yourToken" https://rudder.example.com/rudder/api/rules/latest/{id}?"displayName=my new name"&"enabled=false"&"directives=aDirectiveId"
As request data: You can pass those parameters in the request data, they won't figure in the URL, making it lighter to read, You can pass a file that contains data.
Update the Rule 'id' with a new name, disabled, and setting it one directive (in file directive-info.json)
curl -X POST -H "X-API-Token: yourToken"
https://rudder.example.com/rudder/api/rules/latest/{id} -d "displayName=my new name" -d "enabled=false" -d @directive-info.json

Other APIs in the same category

Swagger Generator

swagger.io
This is an online swagger codegen server. You can find out more at https://github.com/swagger-api/swagger-codegen or on irc.freenode.net, #swagger.

News Search Client

microsoft.com
The News Search API lets you send a search query to Bing and get back a list of news that are relevant to the search query. This section provides technical details about the query parameters and headers that you use to request news and the JSON response objects that contain them. For examples that show how to make requests, see Searching the web for news.

Computer Vision Client

microsoft.com
The Computer Vision API provides state-of-the-art algorithms to process images and return information. For example, it can be used to determine if an image contains mature content, or it can be used to find all the faces in an image. It also has other features like estimating dominant and accent colors, categorizing the content of images, and describing an image with complete English sentences. Additionally, it can also intelligently generate images thumbnails for displaying large images effectively.

Stoplight

stoplight.io

vRealize Network Insight API Reference

vmware.local
vRealize Network Insight API Reference

Shorten.REST API Documentation

Introduction
The Shorten.rest API allows you to programmatically create short URLs (an 'alias') for longer URL (a 'destination').
Each alias you create can be used to redirect the end user (person clicking on the link) to one or more destination URLs
A default destination is always set and specific destinations can be set to redirect the end user to preferred destinations based on the user's geographical location (country) and device Operating System.
In order to use the Shorten.Rest URL Shortening API you can choose to bind your own branded domain, sub-domain or to use our default domain - Short.FYI
Destination Matching
When creating or editing a short URL ('alias') you can choose to specify a destination for each country and OS (Supported OSes list) combination.
When a user clicks on the short link, Shorten.rest will examine the end user's country (determined by User's IP) and OS (User agent) and match the most suitable destination for each user.
(*) If no destination is set for a specific request combination Shorten.rest will use the default destination that exists within each short URL
(**) BRANDED DOMAINS: If the requested alias does not exist in our database - Shorten.rest will redirect the user to the default fallback you set within your dashboard under the ‘Alias Not Found Page Url’ value for a custom domain.
(*) Operating System (OS) destinations are stronger than a country destination!
For example - if you have a custom landing page that is targeting people in the USA and a second landing page that is hyper focused for people who use iOS devices - a person clicking on your link in the USA that is on an iPhone will be redirected to the iOS landing page, while all other devices will be redirected to the USA landing page.
| OS | Country | Destination |
| :------------: |:---------------:| -----|
| iOS | | YourDestination.com/ios |
| | US | YourDestination.com/usa |
Shorten.rest will choose the YourDestination.com/ios url as the most suitable destination.
Branded Domain Attributes
When setting up your custom domain you can include optional metatags and snippets (Supported snippets list). These parameters (such as retargeting, tracking and conversion pixels) are populated and fired on click - at the time of the redirect.
By default the parameters you set in the domain setting will be included in all Short URLs associated with that domain.
You can always override the domain defaults for each URL by passing the appropriate variables when creating or updating a short URL
Setting a Custom string for an Alias (short.fyi/alias)
While creating a short URL you can specify which domain to use. You can choose to use your own branded domain or our default domain - Short.fyi.
Each Alias is unique within a domain they are related to. This means that if multiple accounts use you the same domain (for example short.fyi), if an alias is already taken you may not create a new destination for it.
That said - If you would like to use a specific alias which is already taken - the only way to do so is to create it on a new domain you own and have attached to your Shorten.rest account.
Random Aliases
By default - unless you specify a vanity URI for your alias each URL that is shortened on our platform will have a random string generated by the API. This means that if the 'alias' attribute of a /aliases POST request is not provided, or is an empty string, a random string of seven characters will be generated and returned as part of the POST response.
You can also place the @rnd macro within the alias field when you create a new alias, for example /vanity/@rnd, which might return an alias like /vanity/ZMAefRt, or /vanity@rnd, which might produce something like /vanityMRtvxadf. Only the first @rnd in an alias attribute will be replaced.
NOTES
( * ) All methods of the Shorten.REST API require that your API key be provided in x-api-key header.
(**) All API parameters are case sensitive

Interzoid Get Global Phone Number Information API

This API provides geographic information for a global telephone number, including city and country information, primary languages spoken, and mobile device identification.

Kubernetes

kubernetes.io

Otoroshi Admin API

Admin API of the Otoroshi reverse proxy

The Jira Cloud platform REST API

Jira Cloud platform REST API documentation

Catalog Inventory

redhat.com
Catalog Inventory

Vault API

Welcome to the Vault API 👋
When you're looking to connect to an API, the first step is authentication.
Vault helps you handle OAuth flows, store API keys, and refresh access tokens from users (called consumers in Apideck).
Base URL
The base URL for all API requests is https://unify.apideck.com
Get Started
To use the Apideck APIs, you need to sign up for free at https://app.apideck.com/signup. Follow the steps below to get started.
Create a free account.
Go to the Dashboard.
Get your API key and the application ID.
Select and configure the integrations you want to make available to your users. Through the Unify dashboard, you can configure which connectors you want to support as integrations.
Retrieve the clientid and clientsecret for the integration you want to activate (Only needed for OAuth integrations).
Soon, you can skip the previous step and use the Apideck sandbox credentials to get you started instead (upcoming)
Register the redirect URI for the example app (https://unify.apideck.com/vault/callback) in the list of redirect URIs under your app's settings
Use the publishing guides to get your integration listed across app marketplaces.
Hosted Vault
Hosted Vault (vault.apideck.com) is a no-code solution, so you don't need to build your own UI to handle the integration settings and authentication.
Hosted Vault - Integrations portal
Behind the scenes, Hosted Vault implements the Vault API endpoints and handles the following features for your customers:
Add a connection
Handle the OAuth flow
Configure connection settings per integration
Manage connections
Discover and propose integration options
Search for integrations (upcoming)
Give integration suggestions based on provided metadata (email or website) when creating the session (upcoming)
To use Hosted Vault, you will need to first create a session. This can be achieved by making a POST request to the Vault API to create a valid session for a user, hereafter referred to as the consumer ID.
Example using curl:
Vault API
Beware, this is strategy takes more time to implement in comparison to Hosted Vault.
If you are building your integration settings UI manually, you can call the Vault API directly.
The Vault API is for those who want to completely white label the in-app integrations overview and authentication experience. All the available endpoints are listed below.
Through the API, your customers authenticate directly in your app, where Vault will still take care of redirecting to the auth provider and back to your app.
If you're already storing access tokens, we will help you migrate through our Vault Migration API (upcoming).
Domain model
At its core, a domain model creates a web of interconnected entities.
Our domain model contains five main entity types: Consumer (user, account, team, machine), Application, Connector, Integration, and Connection.
Connection state
The connection state is computed based on the connection flow below.
Unify and Proxy integration
The only thing you need to use the Unify APIs and Proxy is the consumer id; thereafter, Vault will do the look-up in the background to handle the token injection before performing the API call(s).
Headers
Custom headers that are expected as part of the request. Note that RFC7230 states header names are case insensitive.
| Name | Type | Required | Description |
| --------------------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| x-apideck-app-id | String | Yes | The id of your Unify application. Available at https://app.apideck.com/api-keys. |
| x-apideck-consumer-id | String | Yes | The id of the customer stored inside Apideck Vault. This can be a user id, account id, device id or whatever entity that can have integration within your app. |
| x-apideck-raw | Boolean | No | Include raw response. Mostly used for debugging purposes. |
Sandbox (upcoming)
The sandbox is pre-loaded with data similar to a real-life integrations setup. You can use the preconfigured OAauth configured connectors for testing purposes and can skip this step by using the Apideck sandbox credentials to get you started.
Guides
How to build an integrations UI with Vault
How to configure the OAuth credentials for integration providers (COMING SOON)
FAQ
What purpose does Vault serve? Can I just handle the authentication and access token myself?
You can store everything yourself, but that defeats the purpose of using Apideck Unify. Handling tokens for multiple providers can quickly become very complex.
Is my data secure?
Vault employs data minimization, therefore only requesting the minimum amount of scopes needed to perform an API request.
How do I migrate existing data?
Using our migration API, you can migrate the access tokens and accounts to Apideck Vault. (COMING SOON)
Can I use Vault in combination with existing integrations?
Yes, you can. The flexibility of Unify allows you to quickly the use cases you need while keeping a gradual migration path based on your timeline and requirements.
How does Vault work for Apideck Ecosystem customers?
Once logged in, pick your ecosystem; on the left-hand side of the screen, you'll have the option to create an application underneath the Unify section.
How to integrate Apideck Vault
This section covers everything you need to know to authenticate your customers through Vault.
Vault provides three auth strategies to use API tokens from your customers:
Vault API
Hosted Vault
Apideck Ecosystem (COMING SOON)
You can also opt to bypass Vault and still take care of authentication flows yourself. Make sure to put the right safeguards in place to protect your customers' tokens and other sensitive data.
What auth types does Vault support?
What auth strategies does Vault handle? We currently support three flows so your customers can activate an integration.
API keys
For Services supporting the API key strategy, you can use Hosted Vault will need to provide an in-app form where users can configure their API keys provided by the integration service.
OAuth 2.0
Authorization Code Grant Type Flow
Vault handles the complete Authorization Code Grant Type Flow for you. This flow only supports browser-based (passive) authentication because most identity providers don't allow entering a username and password to be entered into applications that they don't own.
Certain connectors require an OAuth redirect authentication flow, where the end-user is redirected to the provider's website or mobile app to authenticate.
This is being handled by the /authorize endpoint.
Basic auth
Basic authentication is a simple authentication scheme built into the HTTP protocol. The required fields to complete basic auth are handled by Hosted Vault or by updating the connection through the Vault API below.