DISQO Audience Projects API

Create, list, retrieve, update and delete survey Projects and their Quotas against the DISQO panel, and manage the included-users, excluded-users and excluded-projects lists that drive recontact and wave studies. Projects carry completesWanted, conversionRate, cpi, country, devices, loi, studyType, supplierId and a qualifications set drawn from over 100 panelist attributes.

Postman Collection

disqo-audience-api-postman.json Raw ↑
{"info":{"_postman_id":"e6346f68-81be-4a17-897c-d3bce4f0f655","name":"DISQO Audience API","description":"# Welcome to the DISQO Audience API Postman Collection\n\nUse this collection to make requests to the Audience API endpoints, Projects and Quotas.\n\nPrior to running requests, you will need to define some values. It is best practice to create a [Postman environment](https://learning.getpostman.com/docs/postman/environments-and-globals/manage-environments/).\n\nYou'll see that on the Authorization section (under the **Edit** menu), we've selected Basic Auth and included the variables `{{clientId}}` for username and `{{apiKey}}` for password. Define these variables using your own `clientId` and `API Key`.\n\nWhen you create your environment, you will also need to define the variable `{{url}}`.\n\nOnce you have created your environment, you can begin testing requests from the Projects and Quotas sections.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json"},"item":[{"name":"Projects","item":[{"name":"Create Project","id":"a6fc15ee-ef6c-4744-a897-489007a80b24","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"id\": \"55t0est9\",\n  \"studyType\": \"AD_HOC\",\n  \"url\": \"https://www.example.com\",\n  \"redirectUrl\": \"https://www.examplearm.com\",\n  \"loi\": 24,\n  \"conversionRate\": 24,\n  \"cpi\": 4,\n  \"supplierId\": 28793,\n  \"completesWanted\": 10,\n  \"qualifications\": {\n    \"and\": [\n      {\n        \"range\": {\n          \"values\": [\n            {\n              \"gte\": 16,\n              \"lte\": 20\n            },\n            {\n              \"gte\": 21,\n              \"lte\": 35\n            }\n          ],\n          \"question\": \"age\"\n        }\n      },\n      {\n        \"equals\": {\n          \"values\": [\n            \"1\"\n          ],\n          \"question\": \"gender\"\n        }\n      }\n    ]\n  },\n  \"devices\": [\"DESKTOP\"],\n  \"country\" : \"US\"\n}\n"},"url":"{{url}}/v1/clients/{{clientId}}/projects","description":"This request creates a new project."},"response":[]},{"name":"List Projects","id":"b98da1fa-adb9-4143-b130-bea37017cbd3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":""},"url":"https://projects-api.audience.disqo.com/v1/clients/82788/projects","description":"This request returns a list of projects associated with a specific client ID."},"response":[]},{"name":"Get Project by projectId","id":"d63bc80a-95c7-4d5e-bef3-e9364e88afb5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":""},"url":"{{url}}/v1/clients/73295/projects/1kaUEfpl8SChTbqK","description":"This request returns a project specified by projectId."},"response":[]},{"name":"Update Project","id":"258d3e2f-1df3-4b55-be78-02e5755e8b30","request":{"auth":{"type":"basic","basic":{"username":"{{clientId}}","password":"{{apiKey}}","showPassword":false}},"method":"PUT","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"buyer\": \"The Generic Two Company\",\n  \"name\": \"updated-project-54321\",\n  \"studyType\": \"AD_HOC\",\n  \"url\": \"https://www.example2.com\",\n  \"loi\": 10,\n  \"conversionRate\": 85,\n  \"cpi\": 2.5,\n  \"country\": \"US\",\n  \"devices\": [\n    \"DESKTOP\"\n  ],\n  \"completesWanted\": 0,\n  \"qualifications\": {\n    \"and\": [\n      {\n        \"or\": [\n          {\n            \"and\": [\n              {\n                \"range\": {\n                  \"values\": [\n                    {\n                      \"gte\": 18,\n                      \"lte\": 24\n                    }\n                  ],\n                  \"question\": \"age\"\n                }\n              },\n              {\n                \"equals\": {\n                  \"values\": [\n                    1\n                  ],\n                  \"question\": \"gender\"\n                }\n              }\n            ]\n          },\n          {\n            \"and\": [\n              {\n                \"range\": {\n                  \"values\": [\n                    {\n                      \"gte\": 18,\n                      \"lte\": 32\n                    }\n                  ],\n                  \"question\": \"age\"\n                }\n              },\n              {\n                \"equals\": {\n                  \"values\": [\n                    2\n                  ],\n                  \"question\": \"ethnicity\"\n                }\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  }\n}\n"},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}","description":"This request updates an entire Project object. The entire body must be passed in the body."},"response":[]},{"name":"Update Project Status","id":"473eaa60-0a1f-4f18-910a-f70dfa66858c","request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"status\" : \"COMPLETED\"\n}\n"},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}/status","description":"This request updates the status of a project."},"response":[]},{"name":"Update Project","id":"2474f7b3-8d19-4089-8ae4-e578cc707bfa","request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"completesWanted\": 0,\n  \"qualifications\": {\n    \"and\": [\n      {\n        \"or\": [\n          {\n            \"and\": [\n              {\n                \"range\": {\n                  \"values\": [\n                    {\n                      \"gte\": 18,\n                      \"lte\": 24\n                    }\n                  ],\n                  \"question\": \"age\"\n                }\n              },\n              {\n                \"equals\": {\n                  \"values\": [\n                    1\n                  ],\n                  \"question\": \"gender\"\n                }\n              }\n            ]\n          },\n          {\n            \"and\": [\n              {\n                \"range\": {\n                  \"values\": [\n                    {\n                      \"gte\": 18,\n                      \"lte\": 32\n                    }\n                  ],\n                  \"question\": \"age\"\n                }\n              },\n              {\n                \"equals\": {\n                  \"values\": [\n                    2\n                  ],\n                  \"question\": \"ethnicity\"\n                }\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  }\n}"},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}","description":"This request partially updates a Project object. Pass the fields and values that you want to update to the request body."},"response":[]},{"name":"Delete Project by projectId","id":"da0f119d-10d5-4ea6-9301-25d192eb2ddf","request":{"method":"DELETE","header":[],"url":"{{url}}/v1/clients/{clientId}/projects/{projectId}","description":"This request permanently deactivates a Project specified by projectId."},"response":[]}],"id":"6d5d22e7-313c-49e2-9906-24fd336262d3","description":"Projects are specific jobs that need to be completed and include a set of qualifications. Each Project can contain one or more Quotas."},{"name":"Quotas","item":[{"name":"Create Project Quota","id":"5857d1b8-68ad-499e-9c12-d3e68c197346","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"id\": \"12347\",\n  \"cpi\": 2.5,\n  \"completesWanted\": 0,\n  \"qualifications\" : {\n      \"and\": [\n        {\n          \"range\": {\n            \"values\": [\n              {\n                \"gte\": 18,\n                \"lte\": 25\n              },\n              {\n                \"gte\": 35,\n                \"lte\": 50\n              },\n              {\n                \"gte\": 60,\n                \"lte\": 70\n              }\n            ],\n            \"question\": \"age\"\n          }\n        },\n        {\n          \"equals\": {\n            \"values\": [\n              \"2\",\n              \"1\"\n            ],\n            \"question\": \"gender\"\n          }\n        },\n        {\n          \"equals\": {\n            \"values\": [\n              \"3\",\n              \"9\",\n              \"10\",\n              \"11\",\n              \"12\",\n              \"13\",\n              \"14\",\n              \"15\",\n              \"16\",\n              \"17\",\n              \"18\",\n              \"19\",\n              \"8\"\n            ],\n            \"question\": \"ethnicity\"\n          }\n        }\n      ]\n    }\n}"},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}/quotas","description":"This request creates a new quota for a project."},"response":[]},{"name":"List Project Quotas","id":"bd34ab8e-90b5-4292-bbd5-d51687fef4b3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":""},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}/quotas","description":"This request returns quotas specific to a project."},"response":[]},{"name":"Get Project Quota by QuotaId","id":"a6e18120-e177-4c88-a58e-f9def0130087","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":""},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}/quotas/{{quotaId}}","description":"This request returns a specific quota for a project."},"response":[]},{"name":"Update Project Quota","id":"0b2b1e27-6465-42e2-a5b3-1a3e98e543b6","request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"cpi\": 2.5,\n  \"completesWanted\": 4,\n  \"qualifications\" : {\n  \"and\": [\n    {\n      \"or\": [\n        {\n          \"and\": [\n            {\n              \"range\": {\n                \"values\": [\n                  {\n                    \"gte\": 18,\n                    \"lte\": 24\n                  }\n                ],\n                \"question\": \"age\"\n              }\n            },\n            {\n              \"equals\": {\n                \"values\": [\n                  1\n                ],\n                \"question\": \"gender\"\n              }\n            }\n          ]\n        },\n        {\n          \"and\": [\n            {\n              \"range\": {\n                \"values\": [\n                  {\n                    \"gte\": 18,\n                    \"lte\": 32\n                  }\n                ],\n                \"question\": \"age\"\n              }\n            },\n            {\n              \"equals\": {\n                \"values\": [\n                  2\n                ],\n                \"question\": \"ethnicity\"\n              }\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}\n}"},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}/quotas/{{quotaId}}","description":"This request updates an entire Quota object. The entire Quota object must be passed in the body."},"response":[]},{"name":"Update Project Quota Status","id":"be8fd6c7-f044-431a-aaa4-9d83dfc011a0","request":{"method":"PUT","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"status\" : \"LIVE\"\n}"},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}/quotas/{{quotaId}}/status","description":"This request updates the status of a quota."},"response":[]},{"name":"Update Project Quota","id":"fb5acbd5-17f4-4ec3-aba3-0399d0e85720","request":{"method":"PATCH","header":[{"key":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"qualifications\" : {\n  \"and\": [\n    {\n      \"or\": [\n        {\n          \"and\": [\n            {\n              \"range\": {\n                \"values\": [\n                  {\n                    \"gte\": 18,\n                    \"lte\": 24\n                  }\n                ],\n                \"question\": \"age\"\n              }\n            },\n            {\n              \"equals\": {\n                \"values\": [\n                  1\n                ],\n                \"question\": \"gender\"\n              }\n            }\n          ]\n        },\n        {\n          \"and\": [\n            {\n              \"range\": {\n                \"values\": [\n                  {\n                    \"gte\": 18,\n                    \"lte\": 32\n                  }\n                ],\n                \"question\": \"age\"\n              }\n            },\n            {\n              \"equals\": {\n                \"values\": [\n                  2\n                ],\n                \"question\": \"ethnicity\"\n              }\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}\n}"},"url":"{{url}}/v1/clients/{{clientId}}/projects/{{projectId}}/quotas/{{quotaId}}","description":"This request partially updates a Quota object. Pass the fields and values that you want to update in the Quota object."},"response":[]},{"name":"Delete Project Quotas","id":"099b0841-6f7b-4cb2-83fd-f8811dca8383","request":{"method":"DELETE","header":[],"url":"{{url}}/v1/clients/{clientId}/projects/{projectId}/quotas","description":"This request permanently deactivates all Quotas associated with a Project, or all Quotas specified if parameters quotaId are added to the URL.\n\nTo delete Quotas by quotaId, add the information to the request URL in the following format: &quotaId=quota1&quotaId=quota2."},"response":[]},{"name":"Delete Project Quota by quotaId","id":"1b7e421e-09c3-46df-b3f4-35d45dae89fc","request":{"method":"DELETE","header":[],"url":"{{url}}/v1/clients/{clientId}/projects/{projectId}/quotas/{quotaId}","description":"This request permanently deactivates a Quota specified by quotaId."},"response":[]}],"id":"d4c0d1e3-37f7-490a-bc04-e4c8c165461d","description":"A Quota belongs to a Project and a Project can have multiple Quotas. Quotas are a set of qualifications necessary for a panelist to be able to participate in the Project."},{"name":"Feasibility","item":[{"name":"Get Feasibility Info","id":"42c6fa08-73fd-4ee0-b53d-78e1bcfcb703","request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n \t\"project\": {\n \t\t\"country\": \"US\",\n \t\t\"daysInField\": 1,\n \t\t\"incidenceRate\": 12,\n \t\t\"loi\": 3,\n \t\t\"devices\": [ 1, 2 ],\n \t\t\"quotas\": [\n \t\t\t{\n \t\t\t\t\"id\": \"quotaId\",\n \t\t\t\t\"cpi\": 2,\n \t\t\t\t\"completesWanted\": 44,\n \t\t\t\t\"qualifications\": {\n \t\t\t\t\t\"and\": [\n \t\t\t\t\t\t{\n \t\t\t\t\t\t\t\"range\": {\n \t\t\t\t\t\t\t\t\"values\": [\n \t\t\t\t\t\t\t\t\t{ \"gte\": 20, \"lte\": 30 },\n \t\t\t\t\t\t\t\t\t{ \"gte\": 60, \"lte\": 80 }\n \t\t\t\t\t\t\t\t],\n \t\t\t\t\t\t\t\t\"question\": \"age\"\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t},\n \t\t\t\t\t\t{\n \t\t\t\t\t\t\t\"range\": {\n \t\t\t\t\t\t\t\t\"values\": [ { \"gte\": 1, \"lte\": 4 } ],\n \t\t\t\t\t\t\t\t\"question\": \"anychildage\"\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t},\n \t\t\t\t\t\t{\n \t\t\t\t\t\t\t\"and\": [\n \t\t\t\t\t\t\t\t{\n \t\t\t\t\t\t\t\t\t\"range\": {\n \t\t\t\t\t\t\t\t\t\t\"values\": [ { \"gte\": 1, \"lte\": 4 } ],\n \t\t\t\t\t\t\t\t\t\t\"question\": \"anychildage\"\n \t\t\t\t\t\t\t\t\t}\n \t\t\t\t\t\t\t\t},\n \t\t\t\t\t\t\t\t{\n \t\t\t\t\t\t\t\t\t\"equals\": {\n \t\t\t\t\t\t\t\t\t\t\"values\": [ \"1\" ],\n \t\t\t\t\t\t\t\t\t\t\"question\": \"anychildgender\"\n \t\t\t\t\t\t\t\t\t}\n \t\t\t\t\t\t\t\t}\n \t\t\t\t\t\t\t]\n \t\t\t\t\t\t}\n \t\t\t\t\t]\n \t\t\t\t}\n \t\t\t}\n \t\t]\n \t}\n }"},"url":"https://feasibility-api.audience.disqo.com/v1/number-of-panelists/","description":"This request returns an estimated number of users that are reasonably expected to successfully complete a survey if it is run, given the Project's Quota details."},"response":[]}],"id":"c90fa942-6764-4779-ab57-c800bec50a86","description":"Feasibility is an endpoint enabling retrieval of an estimate of the number of feasible completes for a Project."},{"name":"Testing","item":[{"name":"Verify Clickable Projects","id":"21246382-fed7-49c3-bd5b-774691c11680","request":{"method":"GET","header":[],"url":"https://go.audience.disqo-demo.com/verify/","description":"This request returns a list of projects that are open, accepting panelists, and contain live quotas that are accepting panelists.\n\nThis endpoint is enabled on the demo environment, and not the production environment, since it is only used for testing."},"response":[]},{"name":"Verify Returning from Survey","id":"d3bd5117-a26f-4482-a09a-3425ef87316e","request":{"method":"GET","header":[],"url":"https://go.audience.disqo-demo.com/verify/callbacks","description":"This request simulates a redirection back to the Survey Junkie supplier, receives the same query parameters as the Callback endpoint. The returned data indicates whether the redirection was successful or not, displaying any errors present in the request.\n\nThis endpoint is enabled on the demo environment, and not the production environment, since it is only used for testing."},"response":[]}],"id":"bc437274-4846-4e69-b6c6-030c4448c22f","description":"These endpoints can be used to verify redirection for returning to SurveyJunkie and clickable projects for panelists that qualify.\n\nNote that these endpoints are only available on the demo environment, and not in the production environment."}],"auth":{"type":"basic","basic":{"password":"{{vault:authorization-password}}","username":"{{clientId}}"}},"event":[{"listen":"prerequest","script":{"id":"c287991e-df07-4c9e-892d-79e9b0500908","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"436bca7f-88e6-44de-a796-0c01320ee961","type":"text/javascript","exec":[""]}}]}