Update notification action status
Update in-app (inbox) notification’s action status by its unique key identifier messageId and type field type. type field can be primary or secondary
declare(strict_types=1);
require 'vendor/autoload.php';
use novu;
use novu\Models\Components;
use novu\Models\Operations;
$sdk = novu\Novu::builder()
->setSecurity(
'YOUR_SECRET_KEY_HERE'
)
->build();
$request = new Operations\SubscribersV1ControllerMarkActionAsSeenRequest(
messageId: '<id>',
type: '<value>',
subscriberId: '<id>',
markMessageActionAsSeenDto: new Components\MarkMessageActionAsSeenDto(
status: Components\MarkMessageActionAsSeenDtoStatus::Pending,
),
);
$response = $sdk->subscribers->messages->updateAsSeen(
request: $request
);
if ($response->messageResponseDto !== null) {
// handle response
}import novu_py
from novu_py import Novu
with Novu(
secret_key="YOUR_SECRET_KEY_HERE",
) as novu:
res = novu.subscribers.messages.update_as_seen(request={
"message_id": "<id>",
"type": "<value>",
"subscriber_id": "<id>",
"mark_message_action_as_seen_dto": {
"status": novu_py.MarkMessageActionAsSeenDtoStatus.PENDING,
},
})
# Handle response
print(res)package main
import(
"context"
"github.com/novuhq/novu-go/v3"
"github.com/novuhq/novu-go/v3/models/components"
"github.com/novuhq/novu-go/v3/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := v3.New(
v3.WithSecurity("YOUR_SECRET_KEY_HERE"),
)
res, err := s.Subscribers.Messages.UpdateAsSeen(ctx, operations.SubscribersV1ControllerMarkActionAsSeenRequest{
MessageID: "<id>",
Type: "<value>",
SubscriberID: "<id>",
MarkMessageActionAsSeenDto: components.MarkMessageActionAsSeenDto{
Status: components.MarkMessageActionAsSeenDtoStatusPending,
},
})
if err != nil {
log.Fatal(err)
}
if res.MessageResponseDto != nil {
switch res.MessageResponseDto.Content.Type {
case components.ContentTypeArrayOfEmailBlock:
// res.MessageResponseDto.Content.ArrayOfEmailBlock is populated
case components.ContentTypeStr:
// res.MessageResponseDto.Content.Str is populated
}
}
}import { Novu } from "@novu/api";
const novu = new Novu({
secretKey: "YOUR_SECRET_KEY_HERE",
});
async function run() {
const result = await novu.subscribers.messages.updateAsSeen({
messageId: "<id>",
type: "<value>",
subscriberId: "<id>",
markMessageActionAsSeenDto: {
status: "pending",
},
});
console.log(result);
}
run();using Novu;
using Novu.Models.Components;
using Novu.Models.Requests;
var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");
SubscribersV1ControllerMarkActionAsSeenRequest req = new SubscribersV1ControllerMarkActionAsSeenRequest() {
MessageId = "<id>",
Type = "<value>",
SubscriberId = "<id>",
MarkMessageActionAsSeenDto = new MarkMessageActionAsSeenDto() {
Status = MarkMessageActionAsSeenDtoStatus.Pending,
},
};
var res = await sdk.SubscribersMessages.UpdateActionAsync(req);
// handle responsecurl --request POST \
--url https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"payload": {}
}'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({payload: {}})
};
fetch('https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"payload\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"payload\": {}\n}"
response = http.request(request)
puts response.read_body{
"_environmentId": "<string>",
"_organizationId": "<string>",
"_notificationId": "<string>",
"_subscriberId": "<string>",
"createdAt": "<string>",
"transactionId": "<string>",
"read": true,
"seen": true,
"cta": {
"type": "redirect",
"data": {
"url": "<string>"
},
"action": {
"buttons": [
{
"content": "<string>",
"resultContent": "<string>"
}
],
"result": {
"payload": {}
}
}
},
"_id": "<string>",
"_templateId": "<string>",
"_messageTemplateId": "<string>",
"subscriber": {
"subscriberId": "<string>",
"_organizationId": "<string>",
"_environmentId": "<string>",
"deleted": true,
"createdAt": "<string>",
"updatedAt": "<string>",
"_id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phone": "<string>",
"avatar": "<string>",
"locale": "<string>",
"channels": [
{
"credentials": {
"webhookUrl": "https://example.com/webhook",
"channel": "general",
"deviceTokens": [
"token1",
"token2",
"token3"
],
"alertUid": "12345-abcde",
"title": "Critical Alert",
"imageUrl": "https://example.com/image.png",
"state": "resolved",
"externalUrl": "https://example.com/details"
},
"_integrationId": "<string>",
"integrationIdentifier": "<string>"
}
],
"topics": [
"<string>"
],
"isOnline": true,
"lastOnlineAt": "<string>",
"__v": 123,
"data": {},
"timezone": "<string>"
},
"template": {
"name": "<string>",
"description": "<string>",
"active": true,
"draft": true,
"preferenceSettings": {
"email": true,
"sms": false,
"in_app": true,
"chat": false,
"push": true
},
"critical": true,
"tags": [
"<string>"
],
"steps": [
{
"_id": "<string>",
"uuid": "<string>",
"name": "<string>",
"_templateId": "<string>",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"children": [
{
"field": "<string>",
"value": "<string>"
}
]
}
],
"_parentId": "<string>",
"metadata": {
"amount": 123,
"digestKey": "<string>",
"backoff": true,
"backoffAmount": 123,
"updateMode": true
},
"replyCallback": {
"active": true,
"url": "<string>"
},
"variants": [
{
"_id": "<string>",
"uuid": "<string>",
"name": "<string>",
"_templateId": "<string>",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"children": [
{
"field": "<string>",
"value": "<string>"
}
]
}
],
"_parentId": "<string>",
"metadata": {
"amount": 123,
"digestKey": "<string>",
"backoff": true,
"backoffAmount": 123,
"updateMode": true
},
"replyCallback": {
"active": true,
"url": "<string>"
}
}
]
}
],
"_organizationId": "<string>",
"_creatorId": "<string>",
"_environmentId": "<string>",
"triggers": [
{
"type": "event",
"identifier": "<string>",
"variables": [
{
"name": "<string>"
}
],
"subscriberVariables": [
{
"name": "<string>"
}
]
}
],
"_notificationGroupId": "<string>",
"deleted": true,
"deletedAt": "<string>",
"deletedBy": "<string>",
"_id": "<string>",
"_parentId": "<string>",
"notificationGroup": {
"name": "<string>",
"_environmentId": "<string>",
"_organizationId": "<string>",
"_id": "<string>",
"_parentId": "<string>"
},
"data": {},
"workflowIntegrationStatus": {}
},
"templateIdentifier": "<string>",
"deliveredAt": [
"<string>"
],
"lastSeenDate": "<string>",
"lastReadDate": "<string>",
"content": [
{
"content": "<string>",
"url": "<string>",
"styles": {}
}
],
"subject": "<string>",
"snoozedUntil": "<string>",
"email": "<string>",
"phone": "<string>",
"directWebhookUrl": "<string>",
"providerId": "<string>",
"deviceTokens": [
"<string>"
],
"title": "<string>",
"_feedId": "<string>",
"errorId": "<string>",
"errorText": "<string>",
"payload": {},
"overrides": {},
"contextKeys": [
"tenant:org-123",
"region:us-east-1"
]
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"errors": {
"fieldName1": {
"messages": [
"Field is required",
"Must be a valid email address"
],
"value": "invalidEmail"
},
"fieldName2": {
"messages": [
"Must be at least 18 years old"
],
"value": 17
},
"fieldName3": {
"messages": [
"Must be a boolean value"
],
"value": true
},
"fieldName4": {
"messages": [
"Must be a valid object"
],
"value": {
"key": "value"
}
},
"fieldName5": {
"messages": [
"Field is missing"
],
"value": null
},
"fieldName6": {
"messages": [
"Undefined value"
]
}
},
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}"API rate limit exceeded"{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}"Please wait some time, then try again."Authorizations
API key authentication. Allowed headers-- "Authorization: ApiKey <novu_secret_key>".
Headers
A header for idempotency purposes
Body
Response
Created
Environment ID where the message is sent
Organization ID associated with the message
Notification ID associated with the message
Subscriber ID associated with the message
Creation date of the message
Transaction ID associated with the message
Channel type through which the message is sent
in_app, email, sms, chat, push Indicates if the message has been read
Indicates if the message has been seen
Call to action associated with the message
Show child attributes
Show child attributes
Status of the message
sent, error, warning Unique identifier for the message
Template ID associated with the message
Message template ID
Subscriber details, if available
Show child attributes
Show child attributes
Workflow template associated with the message
Show child attributes
Show child attributes
Identifier for the message template
Array of delivery dates for the message, if the message has multiple delivery dates, for example after being snoozed
Last seen date of the message, if available
Last read date of the message, if available
Content of the message, can be an email block or a string
Show child attributes
Show child attributes
Subject of the message, if applicable
Date when the message will be unsnoozed
Email address associated with the message, if applicable
Phone number associated with the message, if applicable
Direct webhook URL for the message, if applicable
Provider ID associated with the message, if applicable
Device tokens associated with the message, if applicable
Title of the message, if applicable
Feed ID associated with the message, if applicable
Error ID if the message has an error
Error text if the message has an error
The payload that was used to send the notification trigger
Provider specific overrides used when triggering the notification
Context (single or multi) in which the message was sent
["tenant:org-123", "region:us-east-1"]Was this page helpful?
declare(strict_types=1);
require 'vendor/autoload.php';
use novu;
use novu\Models\Components;
use novu\Models\Operations;
$sdk = novu\Novu::builder()
->setSecurity(
'YOUR_SECRET_KEY_HERE'
)
->build();
$request = new Operations\SubscribersV1ControllerMarkActionAsSeenRequest(
messageId: '<id>',
type: '<value>',
subscriberId: '<id>',
markMessageActionAsSeenDto: new Components\MarkMessageActionAsSeenDto(
status: Components\MarkMessageActionAsSeenDtoStatus::Pending,
),
);
$response = $sdk->subscribers->messages->updateAsSeen(
request: $request
);
if ($response->messageResponseDto !== null) {
// handle response
}import novu_py
from novu_py import Novu
with Novu(
secret_key="YOUR_SECRET_KEY_HERE",
) as novu:
res = novu.subscribers.messages.update_as_seen(request={
"message_id": "<id>",
"type": "<value>",
"subscriber_id": "<id>",
"mark_message_action_as_seen_dto": {
"status": novu_py.MarkMessageActionAsSeenDtoStatus.PENDING,
},
})
# Handle response
print(res)package main
import(
"context"
"github.com/novuhq/novu-go/v3"
"github.com/novuhq/novu-go/v3/models/components"
"github.com/novuhq/novu-go/v3/models/operations"
"log"
)
func main() {
ctx := context.Background()
s := v3.New(
v3.WithSecurity("YOUR_SECRET_KEY_HERE"),
)
res, err := s.Subscribers.Messages.UpdateAsSeen(ctx, operations.SubscribersV1ControllerMarkActionAsSeenRequest{
MessageID: "<id>",
Type: "<value>",
SubscriberID: "<id>",
MarkMessageActionAsSeenDto: components.MarkMessageActionAsSeenDto{
Status: components.MarkMessageActionAsSeenDtoStatusPending,
},
})
if err != nil {
log.Fatal(err)
}
if res.MessageResponseDto != nil {
switch res.MessageResponseDto.Content.Type {
case components.ContentTypeArrayOfEmailBlock:
// res.MessageResponseDto.Content.ArrayOfEmailBlock is populated
case components.ContentTypeStr:
// res.MessageResponseDto.Content.Str is populated
}
}
}import { Novu } from "@novu/api";
const novu = new Novu({
secretKey: "YOUR_SECRET_KEY_HERE",
});
async function run() {
const result = await novu.subscribers.messages.updateAsSeen({
messageId: "<id>",
type: "<value>",
subscriberId: "<id>",
markMessageActionAsSeenDto: {
status: "pending",
},
});
console.log(result);
}
run();using Novu;
using Novu.Models.Components;
using Novu.Models.Requests;
var sdk = new NovuSDK(secretKey: "YOUR_SECRET_KEY_HERE");
SubscribersV1ControllerMarkActionAsSeenRequest req = new SubscribersV1ControllerMarkActionAsSeenRequest() {
MessageId = "<id>",
Type = "<value>",
SubscriberId = "<id>",
MarkMessageActionAsSeenDto = new MarkMessageActionAsSeenDto() {
Status = MarkMessageActionAsSeenDtoStatus.Pending,
},
};
var res = await sdk.SubscribersMessages.UpdateActionAsync(req);
// handle responsecurl --request POST \
--url https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"payload": {}
}'const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({payload: {}})
};
fetch('https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"payload\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novu.co/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"payload\": {}\n}"
response = http.request(request)
puts response.read_body{
"_environmentId": "<string>",
"_organizationId": "<string>",
"_notificationId": "<string>",
"_subscriberId": "<string>",
"createdAt": "<string>",
"transactionId": "<string>",
"read": true,
"seen": true,
"cta": {
"type": "redirect",
"data": {
"url": "<string>"
},
"action": {
"buttons": [
{
"content": "<string>",
"resultContent": "<string>"
}
],
"result": {
"payload": {}
}
}
},
"_id": "<string>",
"_templateId": "<string>",
"_messageTemplateId": "<string>",
"subscriber": {
"subscriberId": "<string>",
"_organizationId": "<string>",
"_environmentId": "<string>",
"deleted": true,
"createdAt": "<string>",
"updatedAt": "<string>",
"_id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phone": "<string>",
"avatar": "<string>",
"locale": "<string>",
"channels": [
{
"credentials": {
"webhookUrl": "https://example.com/webhook",
"channel": "general",
"deviceTokens": [
"token1",
"token2",
"token3"
],
"alertUid": "12345-abcde",
"title": "Critical Alert",
"imageUrl": "https://example.com/image.png",
"state": "resolved",
"externalUrl": "https://example.com/details"
},
"_integrationId": "<string>",
"integrationIdentifier": "<string>"
}
],
"topics": [
"<string>"
],
"isOnline": true,
"lastOnlineAt": "<string>",
"__v": 123,
"data": {},
"timezone": "<string>"
},
"template": {
"name": "<string>",
"description": "<string>",
"active": true,
"draft": true,
"preferenceSettings": {
"email": true,
"sms": false,
"in_app": true,
"chat": false,
"push": true
},
"critical": true,
"tags": [
"<string>"
],
"steps": [
{
"_id": "<string>",
"uuid": "<string>",
"name": "<string>",
"_templateId": "<string>",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"children": [
{
"field": "<string>",
"value": "<string>"
}
]
}
],
"_parentId": "<string>",
"metadata": {
"amount": 123,
"digestKey": "<string>",
"backoff": true,
"backoffAmount": 123,
"updateMode": true
},
"replyCallback": {
"active": true,
"url": "<string>"
},
"variants": [
{
"_id": "<string>",
"uuid": "<string>",
"name": "<string>",
"_templateId": "<string>",
"active": true,
"shouldStopOnFail": true,
"template": {},
"filters": [
{
"isNegated": true,
"children": [
{
"field": "<string>",
"value": "<string>"
}
]
}
],
"_parentId": "<string>",
"metadata": {
"amount": 123,
"digestKey": "<string>",
"backoff": true,
"backoffAmount": 123,
"updateMode": true
},
"replyCallback": {
"active": true,
"url": "<string>"
}
}
]
}
],
"_organizationId": "<string>",
"_creatorId": "<string>",
"_environmentId": "<string>",
"triggers": [
{
"type": "event",
"identifier": "<string>",
"variables": [
{
"name": "<string>"
}
],
"subscriberVariables": [
{
"name": "<string>"
}
]
}
],
"_notificationGroupId": "<string>",
"deleted": true,
"deletedAt": "<string>",
"deletedBy": "<string>",
"_id": "<string>",
"_parentId": "<string>",
"notificationGroup": {
"name": "<string>",
"_environmentId": "<string>",
"_organizationId": "<string>",
"_id": "<string>",
"_parentId": "<string>"
},
"data": {},
"workflowIntegrationStatus": {}
},
"templateIdentifier": "<string>",
"deliveredAt": [
"<string>"
],
"lastSeenDate": "<string>",
"lastReadDate": "<string>",
"content": [
{
"content": "<string>",
"url": "<string>",
"styles": {}
}
],
"subject": "<string>",
"snoozedUntil": "<string>",
"email": "<string>",
"phone": "<string>",
"directWebhookUrl": "<string>",
"providerId": "<string>",
"deviceTokens": [
"<string>"
],
"title": "<string>",
"_feedId": "<string>",
"errorId": "<string>",
"errorText": "<string>",
"payload": {},
"overrides": {},
"contextKeys": [
"tenant:org-123",
"region:us-east-1"
]
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"errors": {
"fieldName1": {
"messages": [
"Field is required",
"Must be a valid email address"
],
"value": "invalidEmail"
},
"fieldName2": {
"messages": [
"Must be at least 18 years old"
],
"value": 17
},
"fieldName3": {
"messages": [
"Must be a boolean value"
],
"value": true
},
"fieldName4": {
"messages": [
"Must be a valid object"
],
"value": {
"key": "value"
}
},
"fieldName5": {
"messages": [
"Field is missing"
],
"value": null
},
"fieldName6": {
"messages": [
"Undefined value"
]
}
},
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}"API rate limit exceeded"{
"statusCode": 404,
"timestamp": "2024-12-12T13:00:00Z",
"path": "/api/v1/resource",
"message": "xx xx xx ",
"ctx": {
"workflowId": "some_wf_id",
"stepId": "some_wf_id"
},
"errorId": "abc123"
}"Please wait some time, then try again."