Introduction
The JourneyApps API allows you to integrate or "sync" your own databases or systems with your JourneyApps application. In other words, it allows you to connect one of your own systems to your app in a way that the two can "talk" to each other behind the scenes.
On a technical level, the API takes the form of an HTTP REST API, and uses standard HTTP authentication.
Enabling the API
The API is configured on an App Deployment level, which means that each deployment of your app (you can see each deployment listed in the Deployments workspace or panel in OXIDE) has its own API credentials.
To obtain the API credentials for a specific App Deployment:
Open the deployment in the Data Browser
Open the dropdown in the top right corner, and click on Manage API. If this option is not immediately visible, you may need to elevate your permissions.
On the Manage API page, you'll be able to see the deployment's HTTP Basic Username and Password or create Named Tokens. Please keep this information private and record it in a secure place.
Authentication
API authentication uses either a Named Token specified in the HTTP Authorization
header, or using HTTP Basic Authentication.
The syntax for the Named Token header is Authorization: Bearer O:mytokenhere
.
All API requests must occur over HTTPS and each request must include authentication credentials.
HTTP Endpoints
An endpoint is the base URL that you connect to when using the API.
These base URLs are dynamic for each of your app's deployments, and can be reviewed on the Manage API data browser page for your deployment (see steps to access this page in the Enabling the API section above).
Base URLs have the following structure:
For deployments created after 31 January 2023, the following structure applies:
https://{app-deployment-id}.backend.{region-code}.journeyapps.com/api/v4/{backend-deployment-id}
Deployment IDs
Note that deployments are identified by different IDs in the app (OXIDE), backend and CloudCode. The Backend API typically uses the backend deployment ID.
Example:
https://62d541f4156bc4dd685318da.backend.us.journeyapps.com/api/v4/62d541ff9f54b7000706c585
Base URL and Relative URL
Throughout the rest of the documentation, we will indicate the URL that you need to use relative to the base URL to perform a particular function (e.g. Retrieve all Objects, Create a New Object, Update a Single Object, etc).
For example, in the Create a New Object section, we indicate that you need to send an HTTP POST request to the relative URL /api/v4/
backend-deployment-id
/objects/
model
.json
In order to create an object. In other words, let's say your deployment's backend ID is 54c89f71923a3be4fe00000f
and you want to create a new 'car' object in in this deployment (which is in the United States region), you'll send an HTTP request to:
https://62d541f4156bc4dd685318da.backend.us.journeyapps.com/api/v4/54c89f71923a3be4fe00000f/objects/car.json
Request Parameter Formats
Parameters supplied to API functions may be in any of the following formats. It may be necessary to set the Content-Type HTTP header as shown.
How do I format fields?
For details on how to format the object fields that you send to the API, please see the Field Representation section:
Response Data Formats
All v4 API responses are in currently in JSON. It is however still recommended that you indicate the acceptance of JSON by either:
Setting the Accept HTTP header to
application/json
By appending
.json
to the end of the URL. For example:BASE-URL/api/v4/backend-deployment-id/objects/assets.json
. Note: See the section about HTTP Endpoints above to get the value for the BASE-URL placeholder.
In what format will my fields be returned?
For details on how your object fields received from the API will be formatted, please see the Field Representation section.
Error Handling
Response Codes
The API uses standard HTTP status codes to indicate the outcome of an API request.
A status code in the
2xx
range indicates that the operation has completed successfully.A status code in the
3xx
range indicates a redirect. This is only used for specific calls, for example for fetching attachments.Any other status code indicates that the operation has failed:
A status code in the 4xx range indicates that invalid input from your side is responsible for the error.
A status code in the 5xx range indicates that an internal server error on the JourneyApps side is responsible for the error.
Full details on error responses are described on the Error Responses page:
API Stability
No breaking changes will be made to an existing stable API version. If we do need to make a breaking change, we will do one of:
Publish it as part of a new API version, e.g. API v5.
Place it behind a feature flag, that is enabled on request for specific apps.
Give sufficient notice in the rare case that a change to an existing API cannot be avoided.
Note that we will periodically add new API calls to an existing API version, as well as new fields or HTTP headers to API responses. This is not considered a breaking change, and API clients must ignore any unrecognized fields.
Removing, renaming or changing the type or behavior of an existing API call or field is considered a breaking change, and the above breaking change policy will apply.
Last updated