# Create a new questionnaire for a user to answer POST /v1/questionnaires Content-Type: application/json Create a questionnaire for a user to answer using a thymia activity. > **Warning**: Before using this endpoint, please contact thymia to configure the questionnaires you want your users to complete. The response contains: * A link to a thymia activity that allows the user to complete the questionnaire. * The id of the questionnaire which can be used to retrieve results **after the questionnaire has been completed**. Reference: https://docs.thymia.ai/api-reference/plant-store-api/questionnaires/create-questionnaire-v-1-questionnaires-post ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: Thymia API version: 1.0.0 paths: /v1/questionnaires: post: operationId: create-questionnaire-v-1-questionnaires-post summary: Create a new questionnaire for a user to answer description: >- Create a questionnaire for a user to answer using a thymia activity. > **Warning**: Before using this endpoint, please contact thymia to configure the questionnaires you want your users to complete. The response contains: * A link to a thymia activity that allows the user to complete the questionnaire. * The id of the questionnaire which can be used to retrieve results **after the questionnaire has been completed**. tags: - subpackage_questionnaires parameters: - name: x-api-key in: header description: Your API Activation Key required: true schema: type: string responses: '200': description: >- Details of questionnaire created, including a link to a thymia activity. content: application/json: schema: $ref: '#/components/schemas/QuestionnaireCreateResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/QuestionnaireCreate' components: schemas: UserDetailsShort: type: object properties: userLabel: type: string description: A unique label identifying a user in your systems required: - userLabel title: UserDetailsShort QuestionnaireCreate: type: object properties: user: $ref: '#/components/schemas/UserDetailsShort' questionnaireType: type: string description: >- The type of questionnaire to create, using values agreed with thymia. _Before calling, first contact thymia to configure your custom set of questionnaires._ required: - user - questionnaireType title: QuestionnaireCreate QuestionnaireCreateResponse: type: object properties: id: type: string format: uuid description: The id of the newly created questionnaire activityLink: type: string description: >- A link to the thymia app, allowing users to answer the questionnaire as a thymia activity required: - id - activityLink title: QuestionnaireCreateResponse ValidationErrorLocItems: oneOf: - type: string - type: integer title: ValidationErrorLocItems ValidationError: type: object properties: loc: type: array items: $ref: '#/components/schemas/ValidationErrorLocItems' msg: type: string type: type: string required: - loc - msg - type title: ValidationError HTTPValidationError: type: object properties: detail: type: array items: $ref: '#/components/schemas/ValidationError' title: HTTPValidationError securitySchemes: APIKeyHeader: type: apiKey in: header name: x-api-key description: Your API Activation Key ``` ## SDK Code Examples ```python import requests url = "https://api.example.com/v1/questionnaires" payload = { "user": { "userLabel": "user-12345" }, "questionnaireType": "depression-assessment" } headers = { "x-api-key": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.example.com/v1/questionnaires'; const options = { method: 'POST', headers: {'x-api-key': '', 'Content-Type': 'application/json'}, body: '{"user":{"userLabel":"user-12345"},"questionnaireType":"depression-assessment"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.example.com/v1/questionnaires" payload := strings.NewReader("{\n \"user\": {\n \"userLabel\": \"user-12345\"\n },\n \"questionnaireType\": \"depression-assessment\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("x-api-key", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.example.com/v1/questionnaires") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["x-api-key"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"user\": {\n \"userLabel\": \"user-12345\"\n },\n \"questionnaireType\": \"depression-assessment\"\n}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.example.com/v1/questionnaires") .header("x-api-key", "") .header("Content-Type", "application/json") .body("{\n \"user\": {\n \"userLabel\": \"user-12345\"\n },\n \"questionnaireType\": \"depression-assessment\"\n}") .asString(); ``` ```php request('POST', 'https://api.example.com/v1/questionnaires', [ 'body' => '{ "user": { "userLabel": "user-12345" }, "questionnaireType": "depression-assessment" }', 'headers' => [ 'Content-Type' => 'application/json', 'x-api-key' => '', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.example.com/v1/questionnaires"); var request = new RestRequest(Method.POST); request.AddHeader("x-api-key", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"user\": {\n \"userLabel\": \"user-12345\"\n },\n \"questionnaireType\": \"depression-assessment\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "x-api-key": "", "Content-Type": "application/json" ] let parameters = [ "user": ["userLabel": "user-12345"], "questionnaireType": "depression-assessment" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.example.com/v1/questionnaires")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```