JavaScript
import Courier from '@trycourier/courier';
const client = new Courier({
apiKey: process.env['COURIER_API_KEY'], // This is the default and can be omitted
});
const journeyRunResponse = await client.journeys.runs.retrieve('x');
console.log(journeyRunResponse.run);import os
from courier import Courier
client = Courier(
api_key=os.environ.get("COURIER_API_KEY"), # This is the default and can be omitted
)
journey_run_response = client.journeys.runs.retrieve(
"x",
)
print(journey_run_response.run)package main
import (
"context"
"fmt"
"github.com/trycourier/courier-go/v4"
"github.com/trycourier/courier-go/v4/option"
)
func main() {
client := courier.NewClient(
option.WithAPIKey("My API Key"),
)
journeyRunResponse, err := client.Journeys.Runs.Get(context.TODO(), "x")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", journeyRunResponse.Run)
}
package com.courier.example;
import com.courier.client.CourierClient;
import com.courier.client.okhttp.CourierOkHttpClient;
import com.courier.models.journeys.JourneyRunResponse;
import com.courier.models.journeys.runs.RunRetrieveParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
CourierClient client = CourierOkHttpClient.fromEnv();
JourneyRunResponse journeyRunResponse = client.journeys().runs().retrieve("x");
}
}require "courier"
courier = Courier::Client.new(api_key: "My API Key")
journey_run_response = courier.journeys.runs.retrieve("x")
puts(journey_run_response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Courier\Client;
use Courier\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('COURIER_API_KEY') ?: 'My API Key');
try {
$journeyRunResponse = $client->journeys->runs->retrieve('x');
var_dump($journeyRunResponse);
} catch (APIException $e) {
echo $e->getMessage();
}using System;
using TryCourier;
using TryCourier.Models.Journeys.Runs;
CourierClient client = new();
RunRetrieveParams parameters = new() { RunID = "x" };
var journeyRunResponse = await client.Journeys.Runs.Retrieve(parameters);
Console.WriteLine(journeyRunResponse);courier journeys:runs retrieve \
--api-key 'My API Key' \
--run-id xcurl --request GET \
--url https://api.courier.com/journeys/runs/{run_id} \
--header 'Authorization: Bearer <token>'{
"run": {
"run_id": "778b97e1-4850-4d56-87b7-b4c9b2d88004",
"template_id": "jry_01kx4m9ntrfk6vnxzww2rbpfd1",
"status": "PROCESSED",
"created_at": "2026-08-10T23:40:17.015Z",
"updated_at": "2026-08-10T23:41:09.702Z",
"source": [
"invoke/jry_01kx4m9ntrfk6vnxzww2rbpfd1"
]
}
}{
"message": "invalid run id",
"type": "invalid_request_error"
}{
"message": "run not found",
"type": "invalid_request_error"
}Journeys
Fetch a Journey run
Fetch one Journey run by id. Returns 404 for an unknown run, a run belonging to another workspace, a run past the 95-day retention window, or an Automation run id — the same body in every case, so the response never reveals whether a run exists elsewhere.
GET
/
journeys
/
runs
/
{run_id}
JavaScript
import Courier from '@trycourier/courier';
const client = new Courier({
apiKey: process.env['COURIER_API_KEY'], // This is the default and can be omitted
});
const journeyRunResponse = await client.journeys.runs.retrieve('x');
console.log(journeyRunResponse.run);import os
from courier import Courier
client = Courier(
api_key=os.environ.get("COURIER_API_KEY"), # This is the default and can be omitted
)
journey_run_response = client.journeys.runs.retrieve(
"x",
)
print(journey_run_response.run)package main
import (
"context"
"fmt"
"github.com/trycourier/courier-go/v4"
"github.com/trycourier/courier-go/v4/option"
)
func main() {
client := courier.NewClient(
option.WithAPIKey("My API Key"),
)
journeyRunResponse, err := client.Journeys.Runs.Get(context.TODO(), "x")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", journeyRunResponse.Run)
}
package com.courier.example;
import com.courier.client.CourierClient;
import com.courier.client.okhttp.CourierOkHttpClient;
import com.courier.models.journeys.JourneyRunResponse;
import com.courier.models.journeys.runs.RunRetrieveParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
CourierClient client = CourierOkHttpClient.fromEnv();
JourneyRunResponse journeyRunResponse = client.journeys().runs().retrieve("x");
}
}require "courier"
courier = Courier::Client.new(api_key: "My API Key")
journey_run_response = courier.journeys.runs.retrieve("x")
puts(journey_run_response)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Courier\Client;
use Courier\Core\Exceptions\APIException;
$client = new Client(apiKey: getenv('COURIER_API_KEY') ?: 'My API Key');
try {
$journeyRunResponse = $client->journeys->runs->retrieve('x');
var_dump($journeyRunResponse);
} catch (APIException $e) {
echo $e->getMessage();
}using System;
using TryCourier;
using TryCourier.Models.Journeys.Runs;
CourierClient client = new();
RunRetrieveParams parameters = new() { RunID = "x" };
var journeyRunResponse = await client.Journeys.Runs.Retrieve(parameters);
Console.WriteLine(journeyRunResponse);courier journeys:runs retrieve \
--api-key 'My API Key' \
--run-id xcurl --request GET \
--url https://api.courier.com/journeys/runs/{run_id} \
--header 'Authorization: Bearer <token>'{
"run": {
"run_id": "778b97e1-4850-4d56-87b7-b4c9b2d88004",
"template_id": "jry_01kx4m9ntrfk6vnxzww2rbpfd1",
"status": "PROCESSED",
"created_at": "2026-08-10T23:40:17.015Z",
"updated_at": "2026-08-10T23:41:09.702Z",
"source": [
"invoke/jry_01kx4m9ntrfk6vnxzww2rbpfd1"
]
}
}{
"message": "invalid run id",
"type": "invalid_request_error"
}{
"message": "run not found",
"type": "invalid_request_error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
A unique identifier representing the Journey run.
Minimum string length:
1Response
The Journey run.
A single Journey run.
One run of a Journey. status and created_at are absent on a small number of legacy runs stored without them.
Show child attributes
Show child attributes
⌘I