Download OpenAPI specification:Download
Dataspace 에서 제공하는 API 에 대해 명세합니다.
Space ID
, API 인증키
가 필수값으로 요구됩니다.
Space ID : ‘데이터스페이스’당 1개의 Space ID가 자동으로 발급되어, 별도의 발급 절차가 필요하지 않습니다. 데이터스페이스에 소속된 사용자라면 누구나 조회할 수 있습니다.
API 인증키 : 발급 이후 조회할 수 있으며, 발급 및 재발급 권한은 ‘데이터스페이스 관리자 계정’에게 있습니다.
데이터스페이스에 로그인 후, [API] > [API 키] 메뉴에 접근하여 조회 및 복사하실 수 있습니다.
로그인 후에도 [API 키] 메뉴에 접근할 수 없다면, '데이터스페이스’에 멤버로 등록되었는지 확인해보세요.
데이터스페이스의 모든 API는 HTTP Authorization header 에 Basic <crendentials>
을 추가해서 요청하도록 설계되어 있습니다.
Space ID 와 API 인증키 사이에 :
(콜론)을 추가하고 base64로 인코딩하세요.
credentials = base64({Space ID}:{API 인증키})
인코딩된 값을 API 의 Authorization header 를 다음과 같이 설정하세요.
Authorization: Basic base64({Space ID}:{API 인증키})
아래와 같은 형태로 API 요청이 가능합니다.
GET /v1/responses/... HTTP/1.1
Authorization: Basic
설문 목록을 조회합니다. 설문에 속한 수집그룹들의 상태에 따른 필터링이 가능합니다.
필터를 지정하지 않으면 모든 설문을 조회하고, RUNNING
은 현재 진행중인 수집그룹이 있는 설문만 조회합니다.
설문 ID 와 설문 제목, 그리고 생성일자 및 최종 수정일자를 조회할 수 있습니다. 생성일 역순으로 1000 건씩 조회합니다.
collectGroupsStatus | string Value: "RUNNING" |
{- "surveys": [
- {
- "surveyId": "a01hb7vt01vpahrwjyxgd28sf3a",
- "title": "생활 관련 조사",
- "createdAt": "2023-10-02T00:00:00",
- "updatedAt": "2023-10-02T00:00:00"
}
], - "nextSurveyId": "a01h1mzpact2df4gjfgq865f1gx"
}
설문 ID(surveyId) 를 통해 설문 정보를 조회합니다.
surveyId required | string Example: a01hb7vt01vpahrwjyxgd28sf3a |
{- "surveyId": "a01hb7vt01vpahrwjyxgd28sf3a",
- "title": "생활 관련 조사",
- "questions": [
- {
- "rank": 1,
- "type": "SingleChoice",
- "text": "<p>거주하시는 집의 형태는 다음 중 어디에 해당하나요?</p>",
- "options": [
- {
- "rank": 1,
- "text": "<p>1번 보기</p>"
}
]
}
], - "parameters": [
- {
- "parameterKey": "region",
- "isCollectable": true
}
], - "createdAt": "2023-10-02T00:00:00",
- "updatedAt": "2023-10-02T00:00:00"
}
설문 내 모든 수집그룹들의 정보를 생성일자 순으로 조회합니다.
surveyId required | string Example: a01hb7vt01vpahrwjyxgd28sf3a |
[- {
- "collectGroupId": "a01h94kt4fyzmp64h40gzyvrjj7",
- "surveyId": "a01hb7vt01vpahrwjyxgd28sf3a",
- "name": "기본 링크 수집그룹",
- "channel": "PUBLIC_LINK",
- "status": "READY",
- "targetCnt": 100,
- "startedAt": "2023-10-04T00:00:00",
- "completedAt": "2023-10-10T00:00:00",
- "isUsingHmac": false,
- "createdAt": "2023-10-02T00:00:00",
- "updatedAt": "2023-10-03T00:00:00"
}
]
수집그룹 ID(collectGroupId) 를 통해 수집그룹 정보를 조회합니다.
collectGroupId required | string |
{- "collectGroupId": "a01h94kt4fyzmp64h40gzyvrjj7",
- "surveyId": "a01hb7vt01vpahrwjyxgd28sf3a",
- "name": "기본 링크 수집그룹",
- "channel": "PUBLIC_LINK",
- "status": "READY",
- "targetCnt": 100,
- "startedAt": "2023-10-04T00:00:00",
- "completedAt": "2023-10-10T00:00:00",
- "isUsingHmac": false,
- "createdAt": "2023-10-02T00:00:00",
- "updatedAt": "2023-10-03T00:00:00"
}
수집그룹에 대한 응답 URL 목록을 조회합니다.
기본 링크(PUBLIC_LINK) 수집그룹의 경우에만 적용 가능합니다.
파라미터 값이 적용된 응답 URL 목록을 반환합니다.
collectGroupId required | string |
parameters | Array of objects 생성할 응답 URL 들에서 사용할 파라미터 값들. URL 별로 파라미터 Key 에 해당하는 파라미터 값들을 지정할 수 있습니다. |
[- {
- "parameters": {
- "age": 30,
- "name": "김패널",
- "uid": "47d5c15a"
}
}, - {
- "parameters": {
- "age": 22,
- "name": "홍길동",
- "uid": "3a5eq19s"
}
}, - {
- "parameters": {
- "age": 44,
- "name": "이오픈",
- "uid": "ba1r6s2g"
}
}
]
[
]
패널 정보를 생성합니다. 생성된 패널 정보가 반환됩니다.
email required | string Example: email=developer@opensurvey.io 개인정보 관련 동작에 대한 작업자 이메일로, 기록을 남기기 위해 필요합니다. |
uid | string <= 128 characters |
name | string <= 64 characters 패널 이름 |
countryCode | string <= 3 characters 패널 휴대전화 번호의 국가코드 |
cellphone | string <= 14 characters 패널 휴대전화 번호, 국가코드, '-' 를 제외한 번호 |
string <= 40 characters 패널 이메일 | |
object 패널 프로필 정보, key는 프로필 이름, value는 변수 옵션 |
{- "uid": "47d5c15a-f080-4673-93a1-9a3ba8c63f45",
- "name": "김패널",
- "countryCode": 82,
- "cellphone": "01000000000",
- "email": "test@opensurvey.io",
- "profileMaps": {
- "지역": "서울",
- "연령대": "30대"
}
}
{- "panelId": "01H8NN0C49ZHDTKG8N6B7CF9E1",
- "uid": "47d5c15a-f080-4673-93a1-9a3ba8c63f45",
- "name": "김패널",
- "countryCode": 82,
- "cellphone": "01000000000",
- "email": "test@opensurvey.io",
- "isSmsOptOut": false,
- "isEmailOptOut": false,
- "profileMaps": {
- "지역": "서울",
- "연령대": "30대"
}
}
스페이스에 있는 모든 패널의 정보를 생성일 역순으로 조회합니다. 1000 건 단위로 끊어서 패널 정보를 조회합니다.
email required | string Example: email=developer@opensurvey.io 개인정보 관련 동작에 대한 작업자 이메일로, 기록을 남기기 위해 필요합니다. |
remark required | string 마스킹 되지 않은 개인정보에 대한 조회 사유 |
panelId | string 해당 패널부터 생성일 역순으로 1000 건씩 조회합니다. |
{- "panels": [
- {
- "panelId": "01H8NN0C49ZHDTKG8N6B7CF9E1",
- "uid": "47d5c15a-f080-4673-93a1-9a3ba8c63f45",
- "name": "김패널",
- "countryCode": 82,
- "cellphone": "01000000000",
- "email": "test@opensurvey.io",
- "isSmsOptOut": false,
- "isEmailOptOut": false,
- "profileMaps": {
- "지역": "서울",
- "연령대": "30대"
}
}
], - "nextPanelId": "01H8N8RZ0F1TB2EE280PZR12VK"
}
패널 ID 를 받아 해당 패널 정보를 수정합니다. 수정된 패널 정보가 반환됩니다.
panelId required | string Example: 01H8NN0C49ZHDTKG8N6B7CF9E1 |
email required | string Example: email=developer@opensurvey.io 개인정보 관련 동작에 대한 작업자 이메일로, 기록을 남기기 위해 필요합니다. |
uid | string <= 128 characters |
name | string <= 64 characters 패널 이름 |
countryCode | string <= 3 characters 패널 휴대전화 번호의 국가코드 |
cellphone | string <= 14 characters 패널 휴대전화 번호, 국가코드, '-' 를 제외한 번호 |
string <= 40 characters 패널 이메일 | |
isSmsOptOut | boolean SMS 수신 거부 여부 (생성 시 초기 값은 false) |
isEmailOptOut | boolean Email 수신 거부 여부 (생성 시 초기 값은 false) |
object 패널 프로필 정보, key는 프로필 이름, value는 변수 옵션 |
{- "uid": "47d5c15a-f080-4673-93a1-9a3ba8c63f45",
- "name": "김패널",
- "countryCode": 82,
- "cellphone": "01000000000",
- "email": "test@opensurvey.io",
- "isSmsOptOut": false,
- "isEmailOptOut": false,
- "profileMaps": {
- "지역": "서울",
- "연령대": "30대"
}
}
{- "panelId": "01H8NN0C49ZHDTKG8N6B7CF9E1",
- "uid": "47d5c15a-f080-4673-93a1-9a3ba8c63f45",
- "name": "김패널",
- "countryCode": 82,
- "cellphone": "01000000000",
- "email": "test@opensurvey.io",
- "isSmsOptOut": false,
- "isEmailOptOut": false,
- "profileMaps": {
- "지역": "서울",
- "연령대": "30대"
}
}
패널 ID 를 받아 해당 패널 정보를 삭제합니다. 삭제된 패널 ID 가 반환됩니다.
panelId required | string Example: 01H8NN0C49ZHDTKG8N6B7CF9E1 |
email required | string Example: email=developer@opensurvey.io 개인정보 관련 동작에 대한 작업자 이메일로, 기록을 남기기 위해 필요합니다. |
"01H8NN0C49ZHDTKG8N6B7CF9E1"
프로필 변수를 생성합니다. 생성된 프로필 변수가 반환됩니다.
name | string <= 64 characters |
{- "name": "지역"
}
{- "profileVariableId": "01H77A5QFW76TKZVNJXJ4H0RV0",
- "name": "지역"
}
스페이스에 있는 모든 프로필 변수의 정보를 생성일 역순으로 조회합니다. 1000 건 단위로 끊어서 프로필 변수를 조회합니다.
profileVariableId | string 해당 프로필 변수부터 생성일 역순으로 1000 건씩 조회합니다. |
{- "profileVariables": [
- {
- "profileVariableId": "01H77A5QFW76TKZVNJXJ4H0RV0",
- "name": "지역"
}
], - "nextProfileVariableId": "01H8N8RZ0EYGEB2MFESJ3VY9PJ"
}
프로필 변수 ID 를 받아 해당 프로필 변수를 수정합니다. 수정된 프로필 변수가 반환됩니다.
profileVariableId required | string Example: 01H77A5QFW76TKZVNJXJ4H0RV0 |
name | string <= 64 characters |
{- "name": "지역"
}
{- "profileVariableId": "01H77A5QFW76TKZVNJXJ4H0RV0",
- "name": "지역"
}
프로필 옵션을 생성합니다. 생성된 프로필 옵션이 반환됩니다.
profileVariableId required | string Example: 01H77A5QFW76TKZVNJXJ4H0RV0 |
name | string <= 64 characters |
{- "name": "서울"
}
{- "profileVariableOptionId": "01H779Z3FQEZ8Q1NPQQ2WNT2JY",
- "profileVariableId": "01H77A5QFW76TKZVNJXJ4H0RV0",
- "name": "서울"
}
프로필 변수에 있는 모든 프로필 옵션의 정보를 생성일 역순으로 조회합니다. 1000 건 단위로 끊어서 프로필 옵션을 조회합니다.
profileVariableId required | string Example: 01H77A5QFW76TKZVNJXJ4H0RV0 |
profileVariableOptionId | string 해당 프로필 옵션부터 생성일 역순으로 1000 건씩 조회합니다. |
{- "profileVariableOptions": [
- {
- "profileVariableOptionId": "01H779Z3FQEZ8Q1NPQQ2WNT2JY",
- "profileVariableId": "01H77A5QFW76TKZVNJXJ4H0RV0",
- "name": "서울"
}
], - "nextProfileVariableOptionId": "01H8N8RZ0E812VQPHN3ZH14TST"
}
프로필 옵션 ID 를 받아 해당 프로필 옵션을 수정합니다. 수정된 프로필 옵션이 반환됩니다.
profileVariableId required | string Example: 01H77A5QFW76TKZVNJXJ4H0RV0 |
profileVariableOptionId required | string Example: 01H779Z3FQEZ8Q1NPQQ2WNT2JY |
name | string <= 64 characters |
{- "name": "서울"
}
{- "profileVariableOptionId": "01H779Z3FQEZ8Q1NPQQ2WNT2JY",
- "profileVariableId": "01H77A5QFW76TKZVNJXJ4H0RV0",
- "name": "서울"
}
프로필 옵션 ID 를 받아 해당 프로필 옵션을 삭제합니다. 삭제된 프로필 옵션 ID 가 반환됩니다.
profileVariableId required | string Example: 01H77A5QFW76TKZVNJXJ4H0RV0 |
profileVariableOptionId required | string Example: 01H779Z3FQEZ8Q1NPQQ2WNT2JY |
"01H779Z3FQEZ8Q1NPQQ2WNT2JY"
설문 ID 를 받고, 해당 설문에 대한 응답을 조회합니다. pageToken 기준으로 1000건의 응답씩 응답 역순으로 조회할 수 있습니다.
surveyId required | string Example: surveyId=a01hb7vt01vpahrwjyxgd28sf3a |
startDateTime | string <date-time> Example: startDateTime=2020-01-01T00:00:00 응답 제출시각 기준으로 조회할 때 범위 시작 시각입니다. (해당 시각 미포함) 값이 없으면 가장 오래된 응답부터 조회합니다. |
endDateTime | string <date-time> Example: endDateTime=2020-01-02T00:00:00 응답 제출시각 기준으로 조회할 때 범위 종료 시각입니다. (해당 시각 포함) 값이 없으면 가장 최근 응답까지 조회합니다. |
pageToken | string Example: pageToken=ZjJrdXJyeWo= response 에서 받은 pageToken 값을 넣어서 다음 페이지의 응답 1000건을 조회할 수 있습니다. |
{- "surveyId": "a01hb7vt01vpahrwjyxgd28sf3a",
- "responses": [
- {
- "serial": "aLACT7Q8Key9C",
- "collectGroupId": "a01h94kt4fyzmp64h40gzyvrjj7",
- "startedAt": "2023-10-02T12:00:00",
- "finishedAt": "2023-10-02T12:10:00",
- "answers": [
- {
- "name": "Q1",
- "answer": [
- {
- "num": 6,
- "str": "주관식 답변입니다."
}
]
}
]
}
], - "pageToken": "ZjJrdXJyeWo="
}
설문 ID 를 받고, 해당 설문에 대한 응답의 메타데이터를 조회합니다. pageToken 기준으로 1000건의 응답씩 응답 역순으로 조회할 수 있습니다.
surveyId required | string Example: surveyId=a01hb7vt01vpahrwjyxgd28sf3a |
startDateTime | string <date-time> Example: startDateTime=2020-01-01T00:00:00 응답 제출시각 기준으로 조회할 때 범위 시작 시각입니다. (해당 시각 미포함) 값이 없으면 가장 오래된 응답부터 조회합니다. |
endDateTime | string <date-time> Example: endDateTime=2020-01-02T00:00:00 응답 제출시각 기준으로 조회할 때 범위 종료 시각입니다. (해당 시각 포함) 값이 없으면 가장 최근 응답까지 조회합니다. |
pageToken | string Example: pageToken=ZjJrdXJyeWo= response 에서 받은 pageToken 값을 넣어서 다음 페이지의 응답 메타데이터 1000건을 조회할 수 있습니다. |
{- "answerSheets": [
- {
- "answerUid": "47d5c15",
- "serial": "aLACT7Q8Key9C",
- "collectGroupId": "a01h94kt4fyzmp64h40gzyvrjj7",
- "startedAt": "2023-10-02T12:00:00",
- "finishedAt": "2023-10-02T12:10:00"
}
], - "pageToken": "ZjJrdXJyeWo="
}