Surveys

On this page, we'll dive into the different survey endpoints you can use to schedule surveys to recipients, collect their responses, and manage the reusable forms behind them.

In Babele, a Survey Definition schedules a Survey Form to a set of recipients on a recurring (or one-off) iteration. As recipients answer, their Survey Responses are collected against that definition, and — when kpiConvert is enabled — eligible answers convert into KPI values. A Survey Form is the reusable question template (questions, options, sections) that one or more survey definitions can point at via its formId.

All survey endpoints require an authenticated principal (a Bearer JWT or an API key). There are no community-admin or platform-admin role attributes on these endpoints; access to a specific community, survey, or response is enforced in the service layer, which surfaces a 404 Not Found when the resource is missing or inaccessible to you.


GET/api/Survey/survey-definition/{id}

Get a survey definition

This endpoint allows you to fetch a single survey definition (its metadata and scheduling configuration) by its ID.

Path parameters

  • Name
    id
    Type
    integer
    Description

    The ID of the survey definition to retrieve.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey definition with that ID exists, or it is not accessible to you.

Request

GET
/api/Survey/survey-definition/{id}
curl -X GET https://api.babele.co/api/Survey/survey-definition/1 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4"

Response

{
"id": 1,
"title": "Startup Feedback Survey",
"description": "We have selected 12 startups who are currently enrolled in our programme. The programme started in July and will continue until this year's Demo Day...",
"surveyType": 1,
"communityId": 999,
"formId": 1515,
"iterationNumber": 0,
"iterationDuration": 0,
"iterationType": 6,
"kpiConvert": true,
"startDate": "2024-01-01T09:00:00Z",
"startDateTimezoneCode": "Europe/Bucharest",
"endDate": "2024-01-31T18:00:00Z",
"endDateTimezoneCode": "Europe/Bucharest",
"timezone": "Europe/Bucharest",
"surveyPrivacyCircles": [11, 22, 33, 1886],
"surveyCommunityUserTags": ["feedback", "satisfaction", "New2025"],
"surveyMethodologies": [101, 202],
"surveyProjectTags": ["some", "tags"],
"deadline": "2024-03-01T09:00:00Z"
}

POST/api/Survey/survey-definitions

List survey definitions

This endpoint allows you to retrieve a paginated, filtered list of survey definitions for a community. Filters are passed in the request body, so although it lists data this is a POST. It is a read, not a mutation.

The response returns a trimmed shape (SurveyDefinitionBaseDto) — id, title, startDate, endDate, and iterationNumber only — not the full definition.

Request body attributes

  • Name
    communityId
    Type
    integer
    Description

    The ID of the community to list surveys for. Required.

  • Name
    take
    Type
    integer
    Description

    The page size (number of definitions to return). Required.

  • Name
    skip
    Type
    integer
    Description

    The number of definitions to skip. Required.

  • Name
    statusFilters
    Type
    object
    Description

    Optional filter of shape { "type": 0, "values": [..] }, where type is a DynamicFilterType (0 IsAnyOf, 1 IsNoneOf) and values is an integer array.

  • Name
    iterationFilters
    Type
    object
    Description

    Optional iteration filter, same shape as statusFilters.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

Request

POST
/api/Survey/survey-definitions
curl -X POST https://api.babele.co/api/Survey/survey-definitions \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '{"communityId":999,"skip":0,"take":20}'

Response

{
"count": 12,
"list": [
    {
        "id": 1,
        "title": "Startup Feedback Survey",
        "startDate": "2024-01-01T09:00:00Z",
        "endDate": "2024-01-31T18:00:00Z",
        "iterationNumber": 0
    },
    {
        "id": 2,
        "title": "Quarterly Impact Check-in",
        "startDate": "2024-04-01T09:00:00Z",
        "endDate": "2024-04-30T18:00:00Z",
        "iterationNumber": 3
    }
]
}

POST/api/Survey/survey-definition

Create a survey definition

This endpoint allows you to create a new survey definition in a community, scheduling a form to its targeted recipients. Creating a definition triggers invitation notifications to the targeted users.

The surveyType enum is 0 Individual / 1 Startup. The iterationType enum is 0 Weekly, 1 Monthly, 2 Quarterly, 3 Semestral, 4 Yearly, 5 Custom, 6 NonRecurrent. Set customIteration only when iterationType is 5 (Custom).

Request body attributes

  • Name
    communityId
    Type
    integer
    Description

    The ID of the community. Required.

  • Name
    title
    Type
    string
    Description

    The survey title.

  • Name
    description
    Type
    string
    Description

    A description of the survey.

  • Name
    surveyType
    Type
    integer
    Description

    The SurveyType enum value. Required.

  • Name
    formId
    Type
    integer
    Description

    The ID of the form whose questions this survey uses. Required.

  • Name
    iterationType
    Type
    integer
    Description

    The SurveyIterationType enum value. Required.

  • Name
    kpiConvert
    Type
    boolean
    Description

    Whether responses convert into KPI values. Required.

  • Name
    startDate
    Type
    string
    Description

    The survey start date-time (ISO 8601). Required.

  • Name
    timezone
    Type
    string
    Description

    The IANA timezone code for the schedule.

  • Name
    endDate
    Type
    string
    Description

    The survey end date-time (ISO 8601).

  • Name
    surveyPrivacyCircles
    Type
    array
    Description

    Privacy-circle IDs that can see the survey.

  • Name
    surveyMethodologies
    Type
    array
    Description

    Methodology IDs associated with the survey.

  • Name
    deadline
    Type
    string
    Description

    The response deadline (ISO 8601).

  • Name
    surveyCommunityUserTags
    Type
    array
    Description

    Community-user tags the survey targets.

  • Name
    surveyProjectTags
    Type
    array
    Description

    Project tags the survey targets.

  • Name
    customIteration
    Type
    integer
    Description

    Custom iteration length, used when iterationType is Custom.

Possible errors

  • Name
    400 Bad Request
    Description

    The request body failed validation.

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

Request

POST
/api/Survey/survey-definition
curl -X POST https://api.babele.co/api/Survey/survey-definition \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '{"communityId":999,"title":"Startup Feedback Survey","description":"Quarterly feedback from enrolled startups.","surveyType":1,"formId":1515,"iterationType":2,"kpiConvert":true,"startDate":"2024-01-01T09:00:00Z","timezone":"Europe/Bucharest","endDate":"2024-01-31T18:00:00Z","surveyPrivacyCircles":[11,22,33,1886],"surveyMethodologies":[101,202],"deadline":"2024-03-01T09:00:00Z","surveyCommunityUserTags":["feedback","satisfaction"],"surveyProjectTags":["cohort-2024"],"customIteration":null}'

Response

{
"id": 1771,
"title": "Startup Feedback Survey",
"description": "Quarterly feedback from enrolled startups.",
"surveyType": 1,
"communityId": 999,
"formId": 1515,
"iterationNumber": 0,
"iterationDuration": 0,
"iterationType": 2,
"kpiConvert": true,
"startDate": "2024-01-01T09:00:00Z",
"startDateTimezoneCode": "Europe/Bucharest",
"endDate": "2024-01-31T18:00:00Z",
"endDateTimezoneCode": "Europe/Bucharest",
"timezone": "Europe/Bucharest",
"surveyPrivacyCircles": [11, 22, 33, 1886],
"surveyCommunityUserTags": ["feedback", "satisfaction"],
"surveyMethodologies": [101, 202],
"surveyProjectTags": ["cohort-2024"],
"deadline": "2024-03-01T09:00:00Z"
}

PUT/api/Survey/survey-definitions/{surveyId}

Update a survey definition

This endpoint allows you to update an existing survey definition. Note the path segment is plural (survey-definitions) and the path parameter is named surveyId.

The update body differs from the create body: it has iterationDuration instead of deadline.

Path parameters

  • Name
    surveyId
    Type
    integer
    Description

    The ID of the survey definition to update.

Request body attributes

  • Name
    communityId
    Type
    integer
    Description

    The ID of the community. Required.

  • Name
    title
    Type
    string
    Description

    The survey title.

  • Name
    description
    Type
    string
    Description

    A description of the survey.

  • Name
    surveyType
    Type
    integer
    Description

    The SurveyType enum value.

  • Name
    formId
    Type
    integer
    Description

    The ID of the form whose questions this survey uses.

  • Name
    iterationDuration
    Type
    integer
    Description

    The duration of an iteration.

  • Name
    kpiConvert
    Type
    boolean
    Description

    Whether responses convert into KPI values.

  • Name
    startDate
    Type
    string
    Description

    The survey start date-time (ISO 8601).

  • Name
    surveyPrivacyCircles
    Type
    array
    Description

    Privacy-circle IDs that can see the survey.

  • Name
    surveyMethodologies
    Type
    array
    Description

    Methodology IDs associated with the survey.

  • Name
    endDate
    Type
    string
    Description

    The survey end date-time (ISO 8601).

  • Name
    surveyCommunityUserTags
    Type
    array
    Description

    Community-user tags the survey targets.

  • Name
    surveyProjectTags
    Type
    array
    Description

    Project tags the survey targets.

  • Name
    iterationType
    Type
    integer
    Description

    The SurveyIterationType enum value.

  • Name
    customIteration
    Type
    integer
    Description

    Custom iteration length, used when iterationType is Custom.

  • Name
    timezone
    Type
    string
    Description

    The IANA timezone code for the schedule.

Possible errors

  • Name
    400 Bad Request
    Description

    The request body failed validation.

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey definition with that surveyId exists.

Request

PUT
/api/Survey/survey-definitions/{surveyId}
curl -X PUT https://api.babele.co/api/Survey/survey-definitions/1771 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '{"title":"Startup Feedback Survey (rev 2)","communityId":999,"description":"Updated description.","surveyType":1,"formId":1515,"iterationDuration":90,"kpiConvert":true,"startDate":"2024-01-01T09:00:00Z","surveyPrivacyCircles":[11,22,33,1886],"surveyMethodologies":[101,202],"endDate":"2024-01-31T18:00:00Z","surveyCommunityUserTags":["feedback"],"surveyProjectTags":["cohort-2024"],"iterationType":2,"customIteration":null,"timezone":"Europe/Bucharest"}'

Response

204 No Content

DELETE/api/Survey/survey-definition/{surveyId}

Delete a survey definition

This endpoint allows you to delete a survey definition. The path segment is singular (survey-definition) and the path parameter is named surveyId.

Path parameters

  • Name
    surveyId
    Type
    integer
    Description

    The ID of the survey definition to delete.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey definition with that surveyId exists.

Request

DELETE
/api/Survey/survey-definition/{surveyId}
curl -X DELETE https://api.babele.co/api/Survey/survey-definition/1771 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4"

Response

204 No Content

GET/api/Survey/survey-response/{id}

Get a survey response

This endpoint allows you to fetch a single survey response — one user's answers for one iteration — by its ID. The status field is a SurveyResponseStatus enum (0 Pending/Draft, 1 Submitted).

Path parameters

  • Name
    id
    Type
    integer
    Description

    The ID of the survey response to retrieve.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey response with that ID exists.

Request

GET
/api/Survey/survey-response/{id}
curl -X GET https://api.babele.co/api/Survey/survey-response/5012 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4"

Response

{
"id": 5012,
"userId": 15,
"userName": "Ana Popescu",
"status": 0,
"iterationDeadline": "2024-03-01T09:00:00Z",
"projectId": 101,
"surveyId": 10,
"surveyTitle": "Startup Feedback Survey",
"iterationNumber": 1,
"iteration": 1,
"projectName": "Project 1",
"tags": ["high-priority", "reviewed"],
"isCurrentIteration": true,
"answers": [
    {
        "id": 1,
        "formQuestionId": 8801,
        "formId": 1515,
        "userId": 15,
        "answer": "Answer 1",
        "lastSubmitedTime": "2024-12-01T00:00:00",
        "optionAnswerOrder": 1,
        "optionRowAnswerOrder": 2
    },
    {
        "id": 2,
        "formQuestionId": 8802,
        "formId": 1515,
        "userId": 15,
        "answer": "Answer 2",
        "lastSubmitedTime": "2024-12-01T00:00:00",
        "optionAnswerOrder": 1,
        "optionRowAnswerOrder": 2
    }
]
}

POST/api/Survey/survey-definition/{id}/survey-responses

List survey responses

This endpoint allows you to retrieve a filtered, paginated list of responses for a given survey definition, plus the available filter facets. Filters are passed in the request body, so although it lists data this is a POST. It is a read, not a mutation.

Each *SurveyFilterDto.type is a DynamicFilterType (0 IsAnyOf, 1 IsNoneOf). The response wraps the responses in a SurveyResponseListDto with count, list, and surveyResponseFilters (the same facet metadata returned by the response-filters endpoint below).

Path parameters

  • Name
    id
    Type
    integer
    Description

    The ID of the survey definition whose responses to list.

Request body attributes

  • Name
    submissionDateFilters
    Type
    object
    Description

    Optional date filter of shape { "type", "values": [..] } with date-time string values.

  • Name
    tagFilters
    Type
    object
    Description

    Optional tag filter with string values.

  • Name
    statusFilters
    Type
    object
    Description

    Optional status filter with integer (SurveyResponseStatus) values.

  • Name
    iterationFilters
    Type
    object
    Description

    Optional iteration filter with integer values.

  • Name
    projectFilters
    Type
    object
    Description

    Optional project filter with integer values.

  • Name
    userFilters
    Type
    object
    Description

    Optional user filter with integer values.

  • Name
    take
    Type
    integer
    Description

    The page size. Required.

  • Name
    skip
    Type
    integer
    Description

    The number of responses to skip. Required.

  • Name
    includeAnswers
    Type
    boolean
    Description

    Whether to embed each response's answers. Required.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey definition with that ID exists.

Request

POST
/api/Survey/survey-definition/{id}/survey-responses
curl -X POST https://api.babele.co/api/Survey/survey-definition/10/survey-responses \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '{"submissionDateFilters":{"type":0,"values":["2024-01-01T00:00:00Z","2024-12-31T23:59:59Z"]},"tagFilters":{"type":0,"values":["high-priority"]},"statusFilters":{"type":0,"values":[1]},"iterationFilters":{"type":0,"values":[1,2]},"projectFilters":{"type":0,"values":[101]},"userFilters":{"type":0,"values":[15,16]},"take":20,"skip":0,"includeAnswers":true}'

Response

{
"count": 2,
"list": [
    {
        "id": 5012,
        "userId": 15,
        "userName": "Ana Popescu",
        "status": 0,
        "iterationDeadline": "2024-03-01T09:00:00Z",
        "projectId": 101,
        "surveyId": 10,
        "surveyTitle": "Startup Feedback Survey",
        "iterationNumber": 1,
        "iteration": 1,
        "projectName": "Project 1",
        "tags": ["high-priority"],
        "isCurrentIteration": true,
        "answers": [
            {
                "id": 1,
                "formQuestionId": 8801,
                "formId": 1515,
                "userId": 15,
                "answer": "Answer 1",
                "lastSubmitedTime": "2024-12-01T00:00:00",
                "optionAnswerOrder": 1,
                "optionRowAnswerOrder": 2
            }
        ]
    }
],
"surveyResponseFilters": {
    "submissionDateMinimum": "2024-11-01T00:00:00Z",
    "submissionDateMaximum": "2024-12-15T00:00:00Z",
    "tagFilters": ["high-priority", "reviewed"],
    "statusFilters": [0, 1],
    "iterationFilters": [1, 2, 3],
    "projectFilters": [{ "id": 101, "name": "Project 1" }],
    "userFilters": [{ "id": 15, "firstName": "Ana", "lastName": "Popescu" }]
}
}

POST/api/Survey/survey-response

Create a survey response

This endpoint allows you to submit a new survey response — a user's set of answers, saved either as a draft or fully submitted. The response body is a bare integer: the new survey response ID.

File answers are not uploaded here. Upload the file first, then put the resulting URL into the answer's answer field.

Request body attributes

  • Name
    surveyId
    Type
    integer
    Description

    The ID of the survey being answered. Required.

  • Name
    status
    Type
    integer
    Description

    The SurveyResponseStatus enum value (0 Pending/Draft, 1 Submitted). Required.

  • Name
    projectId
    Type
    integer
    Description

    The project the response is on behalf of (for Startup surveys).

  • Name
    tags
    Type
    array
    Description

    Tags to attach to the response.

  • Name
    answers
    Type
    array
    Description

    The answers. Each item has formQuestionId (integer, required), answer (string — text/value or uploaded file URL), optionAnswerOrder (integer, for choice questions), and optionRowAnswerOrder (integer, for matrix questions).

Possible errors

  • Name
    400 Bad Request
    Description

    The request body failed validation.

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey with the given surveyId exists.

Request

POST
/api/Survey/survey-response
curl -X POST https://api.babele.co/api/Survey/survey-response \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '{"surveyId":10,"status":1,"projectId":101,"tags":["cohort-2024"],"answers":[{"formQuestionId":8801,"answer":"Very satisfied","optionAnswerOrder":1,"optionRowAnswerOrder":0},{"formQuestionId":8802,"answer":"/Images/Uploads/999/survey/pitch-deck.pdf","optionAnswerOrder":0,"optionRowAnswerOrder":0}]}'

Response

5012

PATCH/api/Survey/survey-response/{surveyResponseId}

Update a survey response

This endpoint allows you to update an existing survey response — edit its answers or change its status to Submitted. The body is the same as the create body but without surveyId.

Path parameters

  • Name
    surveyResponseId
    Type
    integer
    Description

    The ID of the survey response to update.

Request body attributes

  • Name
    status
    Type
    integer
    Description

    The SurveyResponseStatus enum value. Required.

  • Name
    projectId
    Type
    integer
    Description

    The project the response is on behalf of.

  • Name
    tags
    Type
    array
    Description

    The replacement set of tags.

  • Name
    answers
    Type
    array
    Description

    The answers (same item shape as the create endpoint).

Possible errors

  • Name
    400 Bad Request
    Description

    The request body failed validation.

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey response with that surveyResponseId exists.

Request

PATCH
/api/Survey/survey-response/{surveyResponseId}
curl -X PATCH https://api.babele.co/api/Survey/survey-response/5012 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '{"status":1,"projectId":101,"tags":["cohort-2024","final"],"answers":[{"formQuestionId":8801,"answer":"Extremely satisfied","optionAnswerOrder":2,"optionRowAnswerOrder":0}]}'

Response

204 No Content

PUT/api/Survey/survey-response/tags

Update survey response tags

This endpoint allows you to bulk-set the tags on one or more survey responses. The body is an array; each item's tags is the full replacement set for that response.

Request body attributes

  • Name
    surveyResponseId
    Type
    integer
    Description

    The ID of the response to retag. Required (per array item).

  • Name
    tags
    Type
    array
    Description

    The full replacement set of tags for that response.

Possible errors

  • Name
    400 Bad Request
    Description

    The request body failed validation.

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    A referenced response ID does not exist.

Request

PUT
/api/Survey/survey-response/tags
curl -X PUT https://api.babele.co/api/Survey/survey-response/tags \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '[{"surveyResponseId":5012,"tags":["reviewed","high-priority"]},{"surveyResponseId":5013,"tags":[]}]'

Response

204 No Content

GET/api/Survey/survey-definition/{id}/survey-response-filters

Get survey response filters

This endpoint allows you to retrieve the available filter facets for a survey's responses — date range, tags, statuses, iterations, projects, and users — so a client can build filter dropdowns.

Path parameters

  • Name
    id
    Type
    integer
    Description

    The ID of the survey definition.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey definition with that ID exists.

Request

GET
/api/Survey/survey-definition/{id}/survey-response-filters
curl -X GET https://api.babele.co/api/Survey/survey-definition/10/survey-response-filters \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4"

Response

{
"submissionDateMinimum": "2024-11-01T00:00:00Z",
"submissionDateMaximum": "2024-12-15T00:00:00Z",
"tagFilters": ["high-priority", "reviewed", "cohort-2024"],
"statusFilters": [0, 1],
"iterationFilters": [1, 2, 3],
"projectFilters": [
    { "id": 101, "name": "Project 1" },
    { "id": 102, "name": "Project 2" }
],
"userFilters": [
    { "id": 15, "firstName": "Ana", "lastName": "Popescu" },
    { "id": 16, "firstName": "Mihai", "lastName": "Ionescu" }
]
}

GET/api/Survey/ExportSurveyResponses/{surveyId}

Export survey responses (CSV)

This endpoint streams all responses for a survey as a CSV file download, with one row per response and columns for user, project, iteration, status, submission date, and each form question's answer.

Path parameters

  • Name
    surveyId
    Type
    integer
    Description

    The ID of the survey whose responses to export.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    404 Not Found
    Description

    No survey with that surveyId exists.

Request

GET
/api/Survey/ExportSurveyResponses/{surveyId}
curl -X GET https://api.babele.co/api/Survey/ExportSurveyResponses/10 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-o SurveyResponses.csv

Survey Forms

Survey Forms are the reusable question templates referenced by a survey definition's formId. A form holds an ordered set of questions (with options, conditional logic, privacy levels, and limits) and optional sections. These endpoints live on a separate controller, /api/SurveyForm.

The list and get-by-id responses use FormDetailDto. At runtime the survey variant adds one extra field, associatedSurveysCount (integer), counting how many survey definitions reference the form; it is not reflected in the swagger schema. A question's answerType is a FormQuestionAnswerType enum (0 RadioChoice, 1 CheckBox, 2 DropDown, 3 MultipleChoice, 4 AccountMoney, 5 Calendar, 7 ShortText, 8 LongText, 9 File, 10 Scale, 11 Country, 12 Table, 13 Numeric; negative values map to project fields).


GET/api/SurveyForm/GetAll?communityId={communityId}

List survey forms

This endpoint allows you to retrieve all survey-form definitions belonging to a community, with their full question trees. The literal GetAll segment is part of the URL (it is an action-name route).

Required query parameters

  • Name
    communityId
    Type
    integer
    Description

    The ID of the community whose survey forms to list. Required. A missing or invalid value binds to 0 and yields an empty list.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    403 Forbidden
    Description

    You are not authorized to access this community's forms.

Request

GET
/api/SurveyForm/GetAll?communityId={communityId}
curl -X GET https://api.babele.co/api/SurveyForm/GetAll?communityId=999 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4"

Response

{
"count": 1,
"list": [
    {
        "id": 1258,
        "name": "Impact Baseline Survey",
        "description": "<p>Test all questions</p>",
        "communityId": 999,
        "creationDate": "2023-05-23T14:19:16.203812Z",
        "lastEditionDate": "2024-12-16T23:56:29.628361Z",
        "userCreatorId": 398964,
        "associatedSurveysCount": 3,
        "questions": [
            {
                "id": 781,
                "title": "Short question test",
                "description": "<p>Short question description</p>",
                "question": "Tell me your hobbies",
                "questionOrder": 0,
                "mandatoryAnswer": true,
                "editableAnswer": false,
                "answerType": 7,
                "allowMultipleAnswer": false,
                "questionLinks": [],
                "questionOptions": [
                    { "id": 1011, "questionOption": "Cricket", "questionOptionOrder": 0 },
                    { "id": 1012, "questionOption": "Programming", "questionOptionOrder": 1 }
                ],
                "isFilterable": false,
                "privacyLevel": 1,
                "conditionalLogicType": 0,
                "formQuestionConditionalLogicList": []
            },
            {
                "id": 1996,
                "title": "Account money test",
                "description": "<p>Account money description</p>",
                "question": null,
                "questionOrder": 11,
                "mandatoryAnswer": true,
                "editableAnswer": false,
                "answerType": 4,
                "allowMultipleAnswer": false,
                "questionLinks": [],
                "questionOptions": [],
                "isFilterable": null,
                "privacyLevel": 1,
                "conditionalLogicType": 0,
                "formQuestionConditionalLogicList": [
                    {
                        "id": 949,
                        "conditionFormQuestionId": 1989,
                        "formQuestionOptionId": 3588,
                        "customValue": "",
                        "conditionLogic": 1
                    }
                ]
            }
        ]
    }
],
"filters": null
}

GET/api/SurveyForm/{id}

Get a survey form

This endpoint allows you to fetch a single survey-form definition — its full question and section tree — by its ID.

Path parameters

  • Name
    id
    Type
    integer
    Description

    The ID of the survey form to retrieve.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    403 Forbidden
    Description

    You are not authorized to access this form.

  • Name
    404 Not Found
    Description

    No survey form with that ID exists.

Request

GET
/api/SurveyForm/{id}
curl -X GET https://api.babele.co/api/SurveyForm/1258 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4"

Response

{
"id": 1258,
"name": "Impact Baseline Survey",
"description": "<p>Test all questions</p>",
"communityId": 999,
"creationDate": "2023-05-23T14:19:16.203812Z",
"lastEditionDate": "2024-12-16T23:56:29.628361Z",
"userCreatorId": 398964,
"associatedSurveysCount": 3,
"questions": [
    {
        "id": 15,
        "title": "First question test?",
        "description": "<p>Long question description</p>",
        "question": null,
        "questionOrder": 1,
        "mandatoryAnswer": true,
        "editableAnswer": false,
        "answerType": 7,
        "allowMultipleAnswer": false,
        "questionLinks": [],
        "questionOptions": [],
        "isFilterable": null,
        "privacyLevel": 1,
        "conditionalLogicType": 0,
        "formQuestionConditionalLogicList": []
    },
    {
        "id": 1963,
        "title": "Radio button",
        "description": "",
        "question": "Radio button",
        "questionOrder": 3,
        "mandatoryAnswer": true,
        "editableAnswer": false,
        "answerType": 0,
        "allowMultipleAnswer": false,
        "questionLinks": [],
        "questionOptions": [
            { "id": 3529, "questionOption": "Option 1", "questionOptionOrder": 0 },
            { "id": 3530, "questionOption": "Option 2", "questionOptionOrder": 1 }
        ],
        "isFilterable": false,
        "privacyLevel": 1,
        "conditionalLogicType": 0,
        "formQuestionConditionalLogicList": []
    }
]
}

POST/api/SurveyForm

Create a survey form

This endpoint allows you to create a new survey form — its questions, options, and sections — in a community. The saved form is returned with server-assigned IDs as a FormDetailDto. Note this responds with 200 OK, not 201 Created.

Use id: 0 for new questions and options. The type field is a FormType enum; survey forms are typically 0 (Undefined).

Request body attributes

  • Name
    name
    Type
    string
    Description

    The form title.

  • Name
    description
    Type
    string
    Description

    A description of the form. HTML allowed.

  • Name
    communityId
    Type
    integer
    Description

    The owning community ID. Required.

  • Name
    type
    Type
    integer
    Description

    The FormType enum value. Required.

  • Name
    questions
    Type
    array
    Description

    The full set of questions (FormQuestionDto). Each carries id (0 for new), title, question, questionOrder, mandatoryAnswer, answerType, questionOptions, privacyLevel, conditionalLogicType, convertToKpi, and related fields.

  • Name
    sections
    Type
    array
    Description

    The form sections, each of shape { id, title, description, order }.

  • Name
    includeInLandingPage
    Type
    boolean
    Description

    Whether to show this form on the community landing page.

  • Name
    isDefaultCommunityProjectForm
    Type
    boolean
    Description

    Whether this is the default community project form.

Possible errors

  • Name
    400 Bad Request
    Description

    The request body failed validation (e.g. invalid enum).

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    403 Forbidden
    Description

    You are not authorized to create forms in this community.

Request

POST
/api/SurveyForm
curl -X POST https://api.babele.co/api/SurveyForm \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '{"name":"Impact Baseline Survey","description":"<p>Annual impact baseline</p>","communityId":999,"type":0,"includeInLandingPage":false,"isDefaultCommunityProjectForm":false,"sections":[],"questions":[{"id":0,"title":"Tell me your hobbies","description":"<p>Short question description</p>","question":"Tell me your hobbies","questionOrder":0,"mandatoryAnswer":true,"editableAnswer":false,"answerType":7,"allowMultipleAnswer":false,"questionLinks":[],"questionOptions":[{"id":0,"questionOption":"Cricket","questionOptionOrder":0},{"id":0,"questionOption":"Programming","questionOptionOrder":1}],"isFilterable":false,"privacyLevel":1,"privacyCirclesIds":[],"conditionalLogicType":0,"formQuestionConditionalLogicList":[],"hasWeightedAverage":false,"convertToKpi":false,"changePermissionPrivacyLevel":0,"questionType":0,"includeInProjectProfile":false,"hasLimit":false,"limitType":null,"limitValue":null,"sectionId":null}]}'

Response

{
"id": 1258,
"name": "Impact Baseline Survey",
"description": "<p>Annual impact baseline</p>",
"communityId": 999,
"creationDate": "2024-12-16T23:56:29.628361Z",
"lastEditionDate": "2024-12-16T23:56:29.628361Z",
"userCreatorId": 398964,
"associatedSurveysCount": 0,
"questions": [
    {
        "id": 781,
        "title": "Tell me your hobbies",
        "description": "<p>Short question description</p>",
        "question": "Tell me your hobbies",
        "questionOrder": 0,
        "mandatoryAnswer": true,
        "editableAnswer": false,
        "answerType": 7,
        "allowMultipleAnswer": false,
        "questionLinks": [],
        "questionOptions": [
            { "id": 1011, "questionOption": "Cricket", "questionOptionOrder": 0 },
            { "id": 1012, "questionOption": "Programming", "questionOptionOrder": 1 }
        ],
        "isFilterable": false,
        "privacyLevel": 1,
        "conditionalLogicType": 0,
        "formQuestionConditionalLogicList": []
    }
]
}

PUT/api/SurveyForm/{id}

Update a survey form

This endpoint allows you to replace an existing survey form definition. It is a full replace of the form, not a patch, and responds with 200 OK returning the saved FormDetailDto. The body is the same FormDto as the create endpoint.

Path parameters

  • Name
    id
    Type
    integer
    Description

    The ID of the survey form to update.

Request body attributes

  • Name
    name
    Type
    string
    Description

    The form title.

  • Name
    description
    Type
    string
    Description

    A description of the form. HTML allowed.

  • Name
    communityId
    Type
    integer
    Description

    The owning community ID. Required.

  • Name
    type
    Type
    integer
    Description

    The FormType enum value. Required.

  • Name
    questions
    Type
    array
    Description

    The full set of questions (FormQuestionDto). Existing questions keep their IDs; new ones use id: 0.

  • Name
    sections
    Type
    array
    Description

    The form sections.

  • Name
    includeInLandingPage
    Type
    boolean
    Description

    Whether to show this form on the community landing page.

  • Name
    isDefaultCommunityProjectForm
    Type
    boolean
    Description

    Whether this is the default community project form.

Possible errors

  • Name
    400 Bad Request
    Description

    The request body failed validation.

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    403 Forbidden
    Description

    You are not authorized to update this form.

  • Name
    404 Not Found
    Description

    No survey form with that ID exists.

Request

PUT
/api/SurveyForm/{id}
curl -X PUT https://api.babele.co/api/SurveyForm/1258 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4" \
-H "Content-Type: application/json" \
-d '{"name":"Impact Baseline Survey (rev 2)","description":"<p>Annual impact baseline</p>","communityId":999,"type":0,"includeInLandingPage":false,"isDefaultCommunityProjectForm":false,"sections":[],"questions":[{"id":781,"title":"Tell me your hobbies","question":"Tell me your hobbies","questionOrder":0,"mandatoryAnswer":true,"editableAnswer":false,"answerType":7,"allowMultipleAnswer":false,"questionLinks":[],"questionOptions":[{"id":1011,"questionOption":"Cricket","questionOptionOrder":0}],"isFilterable":false,"privacyLevel":1,"privacyCirclesIds":[],"conditionalLogicType":0,"formQuestionConditionalLogicList":[],"hasWeightedAverage":false,"convertToKpi":false,"changePermissionPrivacyLevel":0,"questionType":0,"includeInProjectProfile":false,"hasLimit":false,"limitType":null,"limitValue":null,"sectionId":null}]}'

Response

{
"id": 1258,
"name": "Impact Baseline Survey (rev 2)",
"description": "<p>Annual impact baseline</p>",
"communityId": 999,
"creationDate": "2023-05-23T14:19:16.203812Z",
"lastEditionDate": "2024-12-16T23:56:29.628361Z",
"userCreatorId": 398964,
"associatedSurveysCount": 3,
"questions": [
    {
        "id": 781,
        "title": "Tell me your hobbies",
        "question": "Tell me your hobbies",
        "questionOrder": 0,
        "mandatoryAnswer": true,
        "editableAnswer": false,
        "answerType": 7,
        "allowMultipleAnswer": false,
        "questionLinks": [],
        "questionOptions": [
            { "id": 1011, "questionOption": "Cricket", "questionOptionOrder": 0 }
        ],
        "isFilterable": false,
        "privacyLevel": 1,
        "conditionalLogicType": 0,
        "formQuestionConditionalLogicList": []
    }
]
}

DELETE/api/SurveyForm/{id}

Delete a survey form

This endpoint allows you to permanently remove a survey-form definition.

Path parameters

  • Name
    id
    Type
    integer
    Description

    The ID of the survey form to delete.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    403 Forbidden
    Description

    You are not authorized to delete this form.

  • Name
    404 Not Found
    Description

    No survey form with that ID exists.

Request

DELETE
/api/SurveyForm/{id}
curl -X DELETE https://api.babele.co/api/SurveyForm/1258 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4"

Response

204 No Content

DELETE/api/SurveyForm/RemoveQuestionById/{questionId}

Delete a survey form question

This endpoint allows you to delete a single question from a survey form by its question ID. The literal RemoveQuestionById segment is part of the URL.

Path parameters

  • Name
    questionId
    Type
    integer
    Description

    The ID of the form question to delete.

Possible errors

  • Name
    401 Unauthorized
    Description

    The request is missing valid authentication.

  • Name
    403 Forbidden
    Description

    You are not authorized to modify this form.

  • Name
    404 Not Found
    Description

    No form question with that ID exists.

Request

DELETE
/api/SurveyForm/RemoveQuestionById/{questionId}
curl -X DELETE https://api.babele.co/api/SurveyForm/RemoveQuestionById/781 \
-H "Authorization: Bearer eyJhbGcgwgwe7gfwgwZZVCJ9.eyJTdWJqZWN0IjoiN2ZkMjc4YmUtMzA1Zi00ZWExLWJmODItNTQ5Yjg0NDBiM2E5IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc2lkIjoiYjE5ZDE0NWYtZDZiZC00Y2U5LTljYTQtYjFlOTgzNmRhODlhIiwidXBuIjoiNDAxMTQ0IiwiaHR0cDovL2JhYmVsZS5jby9jbGFpbXMvcGxhdGZvcm1hZG1pbmNsYWltIjoiRmFsc2UiLCJodHRwOi8vYmFiZWxlLmNvL2NsYWltcy9sb2dpbnJlcXFWFWGFQFsc2UiLCJuYmYiOjE3NDMyNjA0MDcsImV4cCI6MTc0Mzg2NTIwNywiaWF0IjoxNzQzMjYwNDA3fQ.K34301vGXSvFQC-5ypvDbfEr-L-uX57zw6GBjNa3sT4"

Response

204 No Content