Our.
External API

Jireh Proxy API

OurDots 서버가 Jireh integration API를 서비스 토큰으로 호출한 뒤 외부 클라이언트에는 비식별 응답만 전달합니다.

Problem list

문제 목록

GET/api/v1/external/jireh/problems

scope jireh.problems

Jireh 문제 DB를 검색합니다. 외부 API의 page는 1부터 받지만, 응답의 pagesize는 Jireh 상류 응답을 그대로 전달합니다.

파라미터

  • q — 선택 검색어, 최대 120자
  • page — 1 이상 정수, 기본값 1
  • pageSize — 1 이상 100 이하 정수, 기본값 20. size 별칭도 허용

cURL

curl -sS "https://our.co.kr/api/v1/external/jireh/problems?q=돌봄&page=1&pageSize=20" \
  -H "Authorization: Bearer od_xxxx.{secret}"

응답 예시

{
  "items": [
    {
      "id": "problem_od_xxxx",
      "title": "지역 돌봄 공백",
      "summary": "청년 보호자의 돌봄 부담이 커지고 있습니다.",
      "status": "OPEN",
      "createdAt": "2026-07-01T00:00:00.000Z",
      "reporterName": "홍*동",
      "contactEmail": "h***@example.invalid"
    }
  ],
  "page": 0,
  "size": 20,
  "totalCount": 1
}

오류

  • 400 INVALID_QUERY — q, page 또는 pageSize 조건 오류
  • 401 UNAUTHORIZED — credential 누락 또는 불일치
  • 403 FORBIDDEN — jireh.problems scope 없음
  • 429 RATE_LIMITED — IP 기준 120 req/min 초과
  • 502 UPSTREAM — Jireh 문제 DB 조회 실패
Problem detail

문제 상세

GET/api/v1/external/jireh/problems/{id}

scope jireh.problems

단일 문제를 조회합니다. 기본 필드 외 상류가 추가로 보내는 필드는 응답에 남을 수 있으며, 개인정보 필드는 비식별 후 반환됩니다.

파라미터

  • id — Jireh 문제 ID

cURL

curl -sS "https://our.co.kr/api/v1/external/jireh/problems/problem_od_xxxx" \
  -H "Authorization: Bearer od_xxxx.{secret}"

응답 예시

{
  "id": "problem_od_xxxx",
  "title": "지역 돌봄 공백",
  "summary": "청년 보호자의 돌봄 부담이 커지고 있습니다.",
  "status": "OPEN",
  "createdAt": "2026-07-01T00:00:00.000Z",
  "studentNumber": "208***50",
  "ownerName": "박*수"
}

오류

  • 401 UNAUTHORIZED — credential 누락 또는 불일치
  • 403 FORBIDDEN — jireh.problems scope 없음
  • 404 NOT_FOUND — Jireh 문제 없음
  • 429 RATE_LIMITED — IP 기준 120 req/min 초과
  • 502 UPSTREAM — Jireh 문제 DB 조회 실패
Mission list

미션 목록

GET/api/v1/external/jireh/missions

scope jireh.missions

활성 Jireh 미션 목록을 검색합니다. 응답에는 문제 연결 수와 혁신 연결 수가 함께 포함됩니다.

파라미터

  • q — 선택 검색어, 최대 120자
  • page — 1 이상 정수, 기본값 1
  • pageSize — 1 이상 100 이하 정수, 기본값 20. size 별칭도 허용

cURL

curl -sS "https://our.co.kr/api/v1/external/jireh/missions?q=돌봄&page=1&pageSize=20" \
  -H "Authorization: Bearer od_xxxx.{secret}"

응답 예시

{
  "items": [
    {
      "id": "mission_od_xxxx",
      "code": "MIS-OD-001",
      "title": "지역 돌봄 연결망 만들기",
      "summary": "돌봄 공백을 줄이는 실행 프로젝트를 모집합니다.",
      "regionName": "서울",
      "topicName": "돌봄",
      "innovationField": "community-care",
      "status": "ACTIVE",
      "linkedProblemCount": 3,
      "linkedInnovationCount": 2,
      "createdAt": "2026-07-01T00:00:00.000Z"
    }
  ],
  "page": 0,
  "size": 20,
  "totalCount": 1
}

오류

  • 400 INVALID_QUERY — q, page 또는 pageSize 조건 오류
  • 401 UNAUTHORIZED — credential 누락 또는 불일치
  • 403 FORBIDDEN — jireh.missions scope 없음
  • 429 RATE_LIMITED — IP 기준 120 req/min 초과
  • 502 UPSTREAM — Jireh 미션 DB 조회 실패
Innovation detail

혁신 프로젝트 상세

GET/api/v1/external/jireh/innovations/{projectRef}

scope jireh.innovations

OurDots 프로젝트 참조값으로 연결된 Jireh 혁신 데이터를 조회합니다. 응답에는 innovationId와 호환용 id가 함께 포함됩니다.

파라미터

  • projectRef — externalProjectId로 쓰는 OurDots 프로젝트 참조값

cURL

curl -sS "https://our.co.kr/api/v1/external/jireh/innovations/project_od_xxxx" \
  -H "Authorization: Bearer od_xxxx.{secret}"

응답 예시

{
  "innovationId": "innovation_od_xxxx",
  "id": "innovation_od_xxxx",
  "missionId": "mission_od_xxxx",
  "missionIds": ["mission_od_xxxx"],
  "externalProjectId": "project_od_xxxx",
  "externalGroupId": "group_od_xxxx",
  "title": "돌봄 연결 앱 실험",
  "stage": "PILOT",
  "progressPct": 65,
  "externalReportId": "report_od_xxxx",
  "managerName": "김*영"
}

오류

  • 401 UNAUTHORIZED — credential 누락 또는 불일치
  • 403 FORBIDDEN — jireh.innovations scope 없음
  • 404 NOT_FOUND — 연결된 Jireh 혁신 데이터 없음
  • 429 RATE_LIMITED — IP 기준 120 req/min 초과
  • 502 UPSTREAM — Jireh 혁신 DB 조회 실패
Impact list

임팩트 목록

GET/api/v1/external/jireh/impacts

scope jireh.impacts

Jireh 임팩트 데이터를 조회합니다. route는 Jireh 목록 결과의 items만 외부 응답에 담습니다.

파라미터

  • externalProjectId — 선택 프로젝트 필터, 최대 120자
  • page — 1 이상 정수, 기본값 1
  • pageSize — 1 이상 100 이하 정수, 기본값 20. size 별칭도 허용

cURL

curl -sS "https://our.co.kr/api/v1/external/jireh/impacts?externalProjectId=project_od_xxxx&page=1&pageSize=20" \
  -H "Authorization: Bearer od_xxxx.{secret}"

응답 예시

{
  "items": [
    {
      "id": "impact_od_xxxx",
      "impactId": "impact_od_xxxx",
      "innovationId": "innovation_od_xxxx",
      "externalProjectId": "project_od_xxxx",
      "title": "돌봄 대기 시간 감소",
      "summary": "시범 운영 지역의 평균 대기 시간이 줄었습니다.",
      "qualitativeResult": "참여자 만족도가 높아졌습니다.",
      "beneficiaryDesc": "지역 보호자",
      "beneficiaryCount": 48,
      "verificationStatus": "REPORTED",
      "createdSource": "jireh",
      "metrics": [
        {
          "name": "wait_time",
          "label": "평균 대기 시간",
          "value": 18,
          "metricName": "대기 시간",
          "metricType": "minutes",
          "baselineValue": 42,
          "resultValue": 18,
          "unit": "분",
          "measuredAt": "2026-07-01"
        }
      ],
      "createdAt": "2026-07-01T00:00:00.000Z"
    }
  ]
}

오류

  • 400 INVALID_QUERY — externalProjectId, page 또는 pageSize 조건 오류
  • 401 UNAUTHORIZED — credential 누락 또는 불일치
  • 403 FORBIDDEN — jireh.impacts scope 없음
  • 429 RATE_LIMITED — IP 기준 120 req/min 초과
  • 502 UPSTREAM — Jireh 임팩트 DB 조회 실패