PublicApiGetCampaignProgress
curl --request GET \
--url https://sandbox.api.app.firstsales.io/api/v1/organizations/{orgId}/workspaces/{wsId}/campaigns/{campaignId}/progress \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.api.app.firstsales.io/api/v1/organizations/{orgId}/workspaces/{wsId}/campaigns/{campaignId}/progress', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"campaignId": "<string>",
"percentage": 50,
"completedComponents": [
"<string>"
],
"missingComponents": [
"<string>"
],
"missingRequiredComponents": [
"<string>"
],
"missingOptionalComponents": [
"<string>"
],
"launchReady": true,
"nextQuestion": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}Campaigns
PublicApiGetCampaignProgress
GET /api/v1/organizations//workspaces//campaigns//progress
GET
/
api
/
v1
/
organizations
/
{orgId}
/
workspaces
/
{wsId}
/
campaigns
/
{campaignId}
/
progress
PublicApiGetCampaignProgress
curl --request GET \
--url https://sandbox.api.app.firstsales.io/api/v1/organizations/{orgId}/workspaces/{wsId}/campaigns/{campaignId}/progress \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.api.app.firstsales.io/api/v1/organizations/{orgId}/workspaces/{wsId}/campaigns/{campaignId}/progress', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"campaignId": "<string>",
"percentage": 50,
"completedComponents": [
"<string>"
],
"missingComponents": [
"<string>"
],
"missingRequiredComponents": [
"<string>"
],
"missingOptionalComponents": [
"<string>"
],
"launchReady": true,
"nextQuestion": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"requestId": "<string>",
"details": {}
}
}Use this endpoint through the Developer API or the matching
firstsales CLI command when available. Responses use the stable FirstSales public error envelope.Authorizations
FirstSales developer API key bearer token (fs-key-*).
Path Parameters
Pattern:
^[0-9a-fA-F]{24}$Response
Successful response
Minimum string length:
1Required range:
0 <= x <= 100