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

AppVeyor REST API

AppVeyor is a hosted continuous integration service which runs on Microsoft
Windows. The AppVeyor REST API provides a RESTful way to interact with the
AppVeyor service. This includes managing projects, builds, deployments,
and the teams that build them.
Additional help and discussion of the AppVeyor REST API is available at
http://help.appveyor.com/discussions
This Swagger definition is an unofficial description of the AppVeyor
REST API maintained at https://github.com/kevinoid/appveyor-swagger
Please report any issues or suggestions for this Swagger definition at
https://github.com/kevinoid/appveyor-swagger/issues/new
API Conventions
Fields which are missing from update operations (PUT requests) are
typically reset to their default values. So although most fields are not
technically required, they should usually be specified in practice.

Spell Check Client

microsoft.com
The Spell Check API - V7 lets you check a text string for spelling and grammar errors.

vRealize Network Insight API Reference

vmware.local
vRealize Network Insight API Reference

Airbyte Configuration API

Airbyte Configuration API
https://airbyte.io.
This API is a collection of HTTP RPC-style methods. While it is not a REST API, those familiar with REST should find the conventions of this API recognizable.
Here are some conventions that this API follows:
All endpoints are http POST methods.
All endpoints accept data via application/json request bodies. The API does not accept any data via query params.
The naming convention for endpoints is: localhost:8000/{VERSION}/{METHODFAMILY}/{METHODNAME} e.g. localhost:8000/v1/connections/create.
For all update methods, the whole object must be passed in, even the fields that did not change.
Change Management:
The major version of the API endpoint can be determined / specified in the URL localhost:8080/v1/connections/create
Minor version bumps will be invisible to the end user. The user cannot specify minor versions in requests.
All backwards incompatible changes will happen in major version bumps. We will not make backwards incompatible changes in minor version bumps. Examples of non-breaking changes (includes but not limited to...):
Adding fields to request or response bodies.
Adding new HTTP endpoints.

AutoSuggest Client

microsoft.com
Autosuggest supplies search terms derived from a root text sent to the service. The terms Autosuggest supplies are related to the root text based on similarity and their frequency or ratings of usefulness in other searches. For examples that show how to use Autosuggest, see Search using AutoSuggest.

Registry

apigee.local
The Registry service allows teams to manage descriptions of APIs.

CircleCI REST API

circleci.com
The CircleCI API is a RESTful, fully-featured API that allows you to do almost anything in CircleCI.
You can access all information and trigger all actions.
The only thing we don’t provide access to is billing functions, which must be done from the CircleCI web UI.

Local Search Client

microsoft.com
The Local Search client lets you send a search query to Bing and get back search results that include local businesses such as restaurants, hotels, retail stores, or other local businesses. The query can specify the name of the local business or it can ask for a list (for example, restaurants near me).

link.fish API

API to easily extract data from websites.
Base URL
All URLs referenced in the documentation have the following base:
You can check anytime how many credits you did use already by logging into your link.fish account at https://app.link.fish and checking under: "Plugins" -> "API Dashboard"
If you have problems, questions or improvement advice please send us an email to [email protected]

Image Search Client

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

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.

Ecosystem API

Ecosystem API