curl --request POST \
--url https://api.stardex.ai/v1/campaigns/enrollment-steps/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"view": "upcoming",
"step_types": [
"email"
],
"sender_team_member_ids": [
"7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20"
],
"campaign_owner_ids": [
"7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20"
],
"campaign_ids": [
"3f9a1c27-8e4b-4d2a-b6f0-7c1e5a9d2b84"
],
"next_send_before": "2026-10-22T23:59:59.000Z",
"limit": 100,
"offset": 0
}
'{
"success": true,
"data": [
{
"enrollment_id": "e7b1d3f5-9a2c-4e6b-8d0f-3a5c7e9b1d42",
"campaign_id": "3f9a1c27-8e4b-4d2a-b6f0-7c1e5a9d2b84",
"campaign_name": "Senior Backend Engineer, Monzo",
"campaign_type": "candidate",
"campaign_owner_id": "7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20",
"person_id": "2f6b9d1e-4a8c-4e3f-b7d2-1c5a9e3b7f40",
"person_name": "Sam Patel",
"person_job_title": "Senior Software Engineer",
"company_name": "Wise",
"email": "sam@gmail.com",
"from_email": "riya@acmetalent.com",
"sender_team_member_id": "7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20",
"enrollment_status": "active",
"reply_intent": null,
"id": "0c4e6a8b-2d5f-4a7c-8e9b-3d5f7b9a1c19",
"step_id": "9d2e7a14-61c3-4b8f-8f0e-3a5c9b2d4e17",
"step_number": 2,
"type": "email",
"subject": "Re: Senior Backend Engineer role at Monzo",
"status": "pending",
"editable": true,
"next_send_at": "2026-10-22T09:14:00.000Z",
"sent_at": null,
"opens": 0,
"clicks": 0
},
{
"enrollment_id": "e7b1d3f5-9a2c-4e6b-8d0f-3a5c7e9b1d42",
"campaign_id": "3f9a1c27-8e4b-4d2a-b6f0-7c1e5a9d2b84",
"campaign_name": "Senior Backend Engineer, Monzo",
"campaign_type": "candidate",
"campaign_owner_id": "7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20",
"person_id": "2f6b9d1e-4a8c-4e3f-b7d2-1c5a9e3b7f40",
"person_name": "Sam Patel",
"person_job_title": "Senior Software Engineer",
"company_name": "Wise",
"email": "sam@gmail.com",
"from_email": "riya@acmetalent.com",
"sender_team_member_id": "7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20",
"enrollment_status": "active",
"reply_intent": null,
"id": "f8a2c4e6-0b3d-4f5a-9c7e-1b3d5f7a9c08",
"step_id": "5b0f3c8e-2a71-4d0e-9a51-6f0c2d7e1a43",
"step_number": 1,
"type": "email",
"subject": "Senior Backend Engineer role at Monzo",
"status": "completed",
"editable": false,
"next_send_at": null,
"sent_at": "2026-10-19T08:03:41.000Z",
"opens": 0,
"clicks": 1
}
],
"meta": {
"total": 12,
"offset": 0,
"limit": 100,
"step_type_counts": {
"email": 8,
"manual": 1,
"text": 0,
"linkedin_message": 1,
"linkedin_connection": 1,
"call": 1
}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Search the campaign queue
Steps across all your campaigns in one list. view: "upcoming" shows each running person’s next step, soonest first, from campaigns that are not archived; view: "sent" shows steps that went out, newest first (the last 30 days by default, at most 90 days per request). Filter by campaigns, campaign owners, senders and step types, and by next_send_before (upcoming) or sent_after and sent_before (sent). meta.step_type_counts counts each step type across every page. Use GET /v1/campaigns/{id}/enrollments/{enrollment_id} for a person’s full steps and PATCH /v1/campaigns/{id}/enrollments/{enrollment_id}/steps/{step_id} with a row’s id to edit an upcoming step. Needs campaigns:read.
curl --request POST \
--url https://api.stardex.ai/v1/campaigns/enrollment-steps/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"view": "upcoming",
"step_types": [
"email"
],
"sender_team_member_ids": [
"7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20"
],
"campaign_owner_ids": [
"7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20"
],
"campaign_ids": [
"3f9a1c27-8e4b-4d2a-b6f0-7c1e5a9d2b84"
],
"next_send_before": "2026-10-22T23:59:59.000Z",
"limit": 100,
"offset": 0
}
'{
"success": true,
"data": [
{
"enrollment_id": "e7b1d3f5-9a2c-4e6b-8d0f-3a5c7e9b1d42",
"campaign_id": "3f9a1c27-8e4b-4d2a-b6f0-7c1e5a9d2b84",
"campaign_name": "Senior Backend Engineer, Monzo",
"campaign_type": "candidate",
"campaign_owner_id": "7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20",
"person_id": "2f6b9d1e-4a8c-4e3f-b7d2-1c5a9e3b7f40",
"person_name": "Sam Patel",
"person_job_title": "Senior Software Engineer",
"company_name": "Wise",
"email": "sam@gmail.com",
"from_email": "riya@acmetalent.com",
"sender_team_member_id": "7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20",
"enrollment_status": "active",
"reply_intent": null,
"id": "0c4e6a8b-2d5f-4a7c-8e9b-3d5f7b9a1c19",
"step_id": "9d2e7a14-61c3-4b8f-8f0e-3a5c9b2d4e17",
"step_number": 2,
"type": "email",
"subject": "Re: Senior Backend Engineer role at Monzo",
"status": "pending",
"editable": true,
"next_send_at": "2026-10-22T09:14:00.000Z",
"sent_at": null,
"opens": 0,
"clicks": 0
},
{
"enrollment_id": "e7b1d3f5-9a2c-4e6b-8d0f-3a5c7e9b1d42",
"campaign_id": "3f9a1c27-8e4b-4d2a-b6f0-7c1e5a9d2b84",
"campaign_name": "Senior Backend Engineer, Monzo",
"campaign_type": "candidate",
"campaign_owner_id": "7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20",
"person_id": "2f6b9d1e-4a8c-4e3f-b7d2-1c5a9e3b7f40",
"person_name": "Sam Patel",
"person_job_title": "Senior Software Engineer",
"company_name": "Wise",
"email": "sam@gmail.com",
"from_email": "riya@acmetalent.com",
"sender_team_member_id": "7c1e4a9b-3d6f-4b2e-8a5c-9f1d3b7e5a20",
"enrollment_status": "active",
"reply_intent": null,
"id": "f8a2c4e6-0b3d-4f5a-9c7e-1b3d5f7a9c08",
"step_id": "5b0f3c8e-2a71-4d0e-9a51-6f0c2d7e1a43",
"step_number": 1,
"type": "email",
"subject": "Senior Backend Engineer role at Monzo",
"status": "completed",
"editable": false,
"next_send_at": null,
"sent_at": "2026-10-19T08:03:41.000Z",
"opens": 0,
"clicks": 1
}
],
"meta": {
"total": 12,
"offset": 0,
"limit": 100,
"step_type_counts": {
"email": 8,
"manual": 1,
"text": 0,
"linkedin_message": 1,
"linkedin_connection": 1,
"call": 1
}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}{
"success": false,
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
}
}Authorizations
Authenticate with a Bearer token: API key, OAuth token, or session token.
Body
Records to skip for pagination, up to 1,000,000. Defaults to 0.
0 <= x <= 1000000Max records per page (1–100). Defaults to 100.
1 <= x <= 100upcoming lists each running person's next step across your campaigns, soonest first. sent lists steps that went out, newest first. Defaults to upcoming.
upcoming, sent Only steps of these campaigns, up to 100.
1 - 100 elementsOnly steps of campaigns owned by these team members, up to 100.
1 - 100 elementsOnly steps sent (or to be sent) by these team members, up to 100.
1 - 100 elementsOnly steps of these types. meta.step_type_counts still counts every type, so you can show how many of each there are.
1email, manual, text, linkedin_message, linkedin_connection, call upcoming only: steps due to go out before this time, for example the end of today.
sent only: steps sent at or after this time. Defaults to 30 days before sent_before (or now). The period can be at most 90 days.
sent only: steps sent before this time. Defaults to now.
Was this page helpful?