SyntheticsAsyncBulkCreate API

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 04월 20일
  • 소요 시간: 25분
  • SyntheticsAsyncBulkCreate API는 비동기 합성 모니터 생성을 관리하는 엔드포인트를 제공합니다.

    이 API를 사용하여 요청당 최대 5,000개의 모니터를 생성합니다. 즉각적인 확인 및 결과가 필요한 소규모 배치 작업의 경우 또는 모니터를 인시던트에 연결하려면 요청당 최대 50개의 모니터 생성을 지원하는 SyntheticsBulkCreate API를 사용합니다.

    JSON 또는 CSV 형식의 데이터를 사용하여 모니터를 만들 수 있습니다. Postman 또는 터미널에서 JSON 또는 CSV 파일을 사용하는 방법에 대한 자세한 내용은 을 참조하십시오 합성 모니터링 개발자 가이드.

    이 API에는 애플리케이션(com.snc.uib.sow_synthetics)이 필요하며 Synthetic monitoring , 이 애플리케이션은 에서 사용할 수 ServiceNow Store있습니다. 이 API를 호출하기 전에 합성 모니터링을 위해 하나 MID 서버 이상의 위치를 구성해야 합니다. 지침은 Create synthetic monitoring locations 문서를 참조하십시오. 또한 모니터링되는 엔드포인트의 CI(구성 항목)가 위치에 Configuration Management Database (CMDB)있어야 합니다.

    SyntheticsAsyncBulkCreate - GET /sn_sow_synthetics/synthetics_async_bulk_create/{job_id}

    대량 모니터 작성 작업의 진행률을 확인합니다.

    이 엔드포인트를 호출하려면 사용자에게 x_snc_sow_synthetics.synthetics_viewer 역할이 있어야 합니다.

    URL 형식

    버전이 지정된 URL: /api/sn_sow_synthetics/{api_version}/synthetics_async_bulk_create/{job_id}

    기본 URL: /api/sn_sow_synthetics/synthetics_async_bulk_create/{job_id}

    지원되는 요청 매개변수

    표 1. 경로 매개변수
    이름 설명
    api_version 옵션입니다. 액세스할 엔드포인트의 버전입니다. 예를 들어 v1 또는 v2입니다. 최신 버전이 아닌 엔드포인트 버전을 사용하도록 이 값만 지정하십시오.

    데이터 유형: 문자열

    job_id 모니터 생성 작업의 ID입니다.

    테이블: 합성 대량 작업 [sn_sow_synthetics_bulk_job]

    열: 작업 ID

    데이터 유형: 문자열

    표 2. 쿼리 매개변수
    이름 설명
    없음
    표 3. 요청 본문 매개변수
    이름 설명
    안 함

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하십시오.

    표 4. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. application/json만 지원합니다.
    권한 부여 HTTP 기본 인증 또는 OAuth 전달자 토큰입니다.
    기본 인증 형식:
    Authorization: Basic <base64-encoded-username:password>
    OAuth 형식:
    Authorization: Bearer <access-token>
    표 5. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다. REST API에 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하십시오.

    표 6. 상태 코드
    상태 코드 설명
    202 수락됨. 작업 상태를 성공적으로 검색했습니다.
    401 권한이 해제되었습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다.
    403 금지되었습니다. 작업 상태를 확인하려면 사용자에게 x_snc_sow_synthetics.synthetics_viewer 역할이 있어야 합니다.
    404 찾을 수 없습니다. 입력한 ID의 작업을 합성 대량 작업 [sn_sow_synthetics_bulk_job] 테이블에서 찾을 수 없습니다.
    500 내부 서버 오류입니다. 요청을 처리하는 동안 예기치 않은 오류가 발생했습니다. 응답에는 오류에 대한 추가 정보가 포함되어 있습니다.

    응답 본문 매개변수(JSON)

    이름 설명
    오류 API 요청이 실패한 경우 반환되는 객체입니다.

    데이터 유형: 객체

    "error": {
       "code": "String",
       "details": {Object},
       "message": "String"
    }
    오류.코드 오류 코드입니다.
    가능한 값:
    • AUTHENTICATION_FAILED
    • AUTHORIZATION_FAILED
    • JOB_NOT_FOUND
    • INTERNAL_ERROR

    데이터 유형: 문자열

    오류.상세 정보 오류에 대한 추가 정보입니다.

    이 객체에 포함된 요소는 오류 유형에 따라 다릅니다.

    데이터 유형: 객체

    오류.메시지 오류 메시지.

    데이터 유형: 문자열

    결과 모니터 생성 작업의 상태에 대한 정보를 포함하는 객체입니다.

    데이터 유형: 객체

    "result": {
       "errors": [Array],
       "job_id": "String",
       "message": "String",
       "status": "String",
       "summary": {Object}
    }
    result.job_id 모니터 생성 작업의 ID입니다.

    테이블: 합성 대량 작업 [sn_sow_synthetics_bulk_job]

    열: 작업 ID

    데이터 유형: 문자열

    결과.메시지 모니터 생성 작업의 상태에 대한 메시지입니다.

    데이터 유형: 문자열

    결과.상태 모니터 생성 작업의 상태입니다.
    가능한 값:
    • 보류 중
    • 처리 중
    • 완료됨
    • 실패

    데이터 유형: 문자열

    결과.요약 모니터 생성 작업에 대한 현재 요약 데이터입니다.

    데이터 유형: 객체

    "summary": {
       "created": Number,
       "failed": Number,
       "processed": Number,
       "successful": Number,
       "total": Number,
       "updated": Number
    }
    결과.요약.생성됨 성공적으로 만든 모니터 수입니다.

    데이터 유형: 숫자

    결과.요약.실패 만들거나 업데이트할 수 없는 모니터 수입니다.

    데이터 유형: 숫자

    결과.요약.처리됨 작업에서 처리한 모니터 수입니다.

    데이터 유형: 숫자

    결과.요약.성공 성공적으로 작성되거나 업데이트된 모니터 수입니다.

    데이터 유형: 숫자

    result.summary.total 작업에 포함된 총 모니터 수입니다.

    데이터 유형: 숫자

    결과.요약.업데이트됨 모니터 수를 성공적으로 업데이트했습니다.

    데이터 유형: 숫자

    결과.오류 실패한 모니터에 대한 오류 정보입니다.

    데이터 유형: 배열

    "errors": [
       {
          "check_number": Number,
          "error_code": "String",
          "error_message": "String",
          "name": "String"      
       }
    ]
    result.errors.check_number POST /sn_sow_synthetics/synthetics_async_bulk_create에 대한 요청 본문에 제공된 배열의 checks 모니터 순서입니다.

    데이터 유형: 숫자

    result.errors.error_code 오류 코드입니다.
    가능한 값:
    • CREATE_FAILED
    • UPDATE_FAILED

    데이터 유형: 문자열

    result.errors.error_message 오류 메시지.

    데이터 유형: 문자열

    result.errors.name 모니터의 이름입니다.

    데이터 유형: 문자열

    cURL 요청

    이 예에서는 모니터 생성 작업의 상태를 확인합니다.

    curl "https://instance.service-now.com/api/sn_sow_synthetics/v1/synthetics_async_bulk_create/BCJ-1776889518281-0baf339f" \
    --request GET \
    --header "Accept:application/json" \
    --user 'username':'password'

    응답 본문 - 작업 처리입니다.

    {
       "result": {
          "job_id": "BCJ-1776889518281-0baf339f",
          "status": "processing",
          "message": "Processing in progress: 150/500 (30%)",
          "summary": {
             "total": 500,
             "processed": 150,
             "successful": 148,
             "created": 145,
             "updated": 3,
             "failed": 2
          }
       }
    }

    응답 본문 - 작업이 성공적으로 완료되었습니다.

    {
       "result": {
          "job_id": "BCJ-1776889518281-0baf339f",
          "status": "completed",
          "message": "Job completed successfully. 497 monitors created, 3 updated, 0 failed out of 500 total.",
          "summary": {
             "total": 500,
             "processed": 500,
             "successful": 500,
             "created": 497,
             "updated": 3,
             "failed": 0
          }
       }
    }

    응답 본문 - 작업이 오류와 함께 완료되었습니다.

    {
       "result": {
          "job_id": "BCJ-1776889518281-0baf339f",
          "status": "completed",
          "message": "Job completed. 98 monitors created, 0 updated, 2 failed out of 100 total.",
          "summary": {
             "total": 100,
             "processed": 100,
             "successful": 98,
             "created": 98,
             "updated": 0,
             "failed": 2
          },
          "errors": [
             {
                "check_number": 23,
                "name": "Invalid Monitor",
                "error_code": "CREATE_FAILED",
                "error_message": "cmdb_ci is required"
             },
             {
                "check_number": 45,
                "name": "Bad Location Monitor",
                "error_code": "CREATE_FAILED",
                "error_message": "Location not found: invalid_sys_id"
             }
          ]
       }
    }

    SyntheticsAsyncBulkCreate - 게시 /sn_sow_synthetics/synthetics_async_bulk_create

    단일 비동기 작업에서 여러 합성 모니터를 생성합니다.

    이 엔드포인트는 요청당 최대 5,000개의 모니터를 생성할 수 있도록 지원하며, 최대 페이로드 크기는 10MB입니다. 이 엔드포인트를 호출하면 모니터를 500개 배치로 비동기적으로 만드는 작업이 제출됩니다. 엔드포인트 GET /sn_sow_synthetics/v1/synthetics_async_bulk_create/{job_id}를 호출하여 작업 상태를 확인합니다.

    이 엔드포인트를 호출하려면 사용자에게 x_snc_sow_synthetics.synthetics_editor 역할이 있어야 합니다.

    URL 형식

    버전이 지정된 URL: /api/sn_sow_synthetics/{api_version}/synthetics_async_bulk_create

    기본 URL: /api/sn_sow_synthetics/synthetics_async_bulk_create

    지원되는 요청 매개변수

    표 7. 경로 매개변수
    이름 설명
    api_version 옵션입니다. 액세스할 엔드포인트의 버전입니다. 예를 들어 v1 또는 v2입니다. 최신 버전이 아닌 엔드포인트 버전을 사용하도록 이 값만 지정하십시오.

    데이터 유형: 문자열

    표 8. 쿼리 매개변수
    이름 설명
    없음
    표 9. 요청 본문 매개변수(JSON 또는 CSV)
    이름 설명
    검사 필수 모니터를 생성할 엔드포인트 구성 객체의 배열입니다. 이 배열에는 API 요청당 최대 5,000개의 객체가 포함될 수 있습니다.

    데이터 유형: 배열

    "checks": [
       {
          "alert_severity": Number,
          "alert_tags": {Object},
          "body": "String",
          "body_condition": {Object},
          "cmdb_ci": "String",
          "credential": "String",
          "description": "String",
          "enabled": Boolean,
          "headers": [Array],
          "interval": Number,
          "locations": [Array],
          "max_latency_ms": Number,
          "method": "String",
          "name": "String",
          "parent_service_sys_id": "String",
          "query_string": "String",
          "should_create_alert": Boolean,
          "single_api_check_sys_id": "String",
          "support_group_sys_id": "String",
          "valid_http_code": "String",
          "valid_http_code_type": "String"
       }
    ]
    checks.alert_severity 실패한 모니터 테스트에 대해 생성된 경보의 심각도 수준입니다. true로 설정된 경우에만 checks.should_create_alert 이 매개변수를 사용합니다.
    유효한 값은 다음과 같습니다.
    • 1: 중요
    • 2: 전공
    • 3: 경미함
    • 4: 경고
    • 5: 확인

    기본값: 1

    데이터 유형: 숫자

    checks.alert_tags 실패한 모니터 테스트에 대해 생성된 경보에 사용할 사용자 지정 태그입니다. true로 설정된 경우에만 checks.should_create_alert 이 매개변수를 사용합니다.
    이 객체에 포함된 요소는 사용되는 태그에 따라 다릅니다. 예를 들어 아래와 같이 환경이나 팀에 태그를 사용할 수 있습니다.
    //Example custom tags
    "alert_tags": {
       "environment": "production",     
       "team": "platform"     
    }

    기본값: 빈 객체

    데이터 유형: 객체

    checks.body POST, PUT 또는 PATCH 엔드포인트에 대한 요청 본문입니다. 콘텐츠 유형 헤더에 따라 유효한 JSON 또는 XML 문자열이어야 합니다. 최대 크기는 10KB입니다.

    기본값: null

    데이터 유형: 문자열

    checks.body_condition 응답 본문 확인.

    데이터 유형: 객체

    "body_condition": {     
       "expression": "String",
       "type": "String"     
    }
    checks.body_condition.expression 응답 본문을 확인할 표현식입니다. 표현식은 정규 표현식, JSONPath 및 XPath에 대한 지원을 포함하여 모든 문자열 값이 될 수 있습니다.

    기본값: null

    데이터 유형: 문자열

    checks.body_condition.type 다음에 대해 checks.body_condition.expression응답 본문을 평가하는 데 사용되는 확인 유형입니다.
    유효한 값(대/소문자 구분):
    • 같음: 정확히 일치합니다.
    • not_equals: 같지 않음.
    • 포함: 하위 문자열을 포함합니다.
    • not_contains: 하위 문자열이 포함되지 않습니다.
    • regex: 정규 표현식 일치입니다.
    • jsonpath: JSONPath 표현식이 일치합니다.
    • xpath: XPath 표현식 일치. XML 응답에 사용됩니다.

    기본값: null

    데이터 유형: 문자열

    checks.cmdb_ci 필수 엔드포인트 CI(구성 항목)의 CMDB Sys_id입니다.

    테이블: HTTP 엔드포인트 [cmdb_ci_endpoint_http]

    데이터 유형: 문자열

    checks.credential 엔드포인트 요청에 포함할 모니터의 자격 증명 Sys_id입니다.

    테이블:

    기본값: null

    데이터 유형: 문자열

    checks.description 모니터에 대한 설명입니다.

    데이터 유형: 문자열

    checks.enabled 모니터가 생성 직후 실행을 시작할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 모니터는 생성 직후 실행을 시작합니다.
    • false: 사용하도록 설정할 때까지 모니터가 실행을 시작하지 않습니다.

    기본값: true

    데이터 유형: 부울

    checks.headers 모니터가 엔드포인트 요청에 포함할 HTTP 헤더의 배열입니다.

    데이터 유형: 배열

    기본값: 빈 배열(헤더 없음)

    "headers": [
       {
          "name": "String",
          "value": "String"
       }
    ]
    checks.headers.name 인증 또는 컨텐츠 형식과 같은 HTTP 헤더의 이름입니다.

    데이터 유형: 문자열

    checks.headers.value 전달자 토큰 또는 application/json과 같은 HTTP 헤더의 값입니다.

    데이터 유형: 문자열

    checks.interval 필수 모니터 실행 빈도(분)입니다.

    ServiceNow 호스팅된 위치는 모니터당 분당 6개의 테스트로 제한됩니다.

    유효한 값: 1-60

    예를 들어 값이 5 이면 모니터가 5분마다 한 번씩 실행되도록 설정됩니다.

    데이터 유형: 숫자

    checks.locations 필수 모니터에 사용할 위치 sys_ids MID 서버 목록입니다.

    테이블: 합성 위치 [sn_sow_synthetics_location]

    데이터 유형: 문자열

    checks.max_latency_ms 최대 허용 응답시간(밀리초)입니다. 일반적인 지침은 엔드포인트 유형에 따라 500-5000ms입니다.

    테스트할 때 모니터가 이 값을 기준으로 검사하고 응답시간이 이 값을 초과하면 테스트가 실패합니다.

    기본값: null(대기 시간 임계치 없음)

    데이터 유형: 숫자

    checks.method 필수 사용할 HTTP 메서드입니다.
    유효한 값(대/소문자 구분 안 함):
    • 삭제
    • GET
    • HEAD
    • PATCH
    • POST
    • 넣기

    데이터 유형: 문자열

    checks.name 필수 모니터의 표시 이름입니다.

    최대 길이: 100자

    데이터 유형: 문자열

    checks.parent_service_sys_id 필수 이 엔드포인트가 지원하는 비즈니스 서비스의 Sys_id입니다. 서비스 수준 보고 및 영향 분석에 사용됩니다.

    테이블: 비즈니스 서비스 [cmdb_ci_service]

    데이터 유형: 문자열

    checks.query_string 엔드포인트 요청에 포함할 모니터의 쿼리 매개변수입니다.

    기본값: null

    데이터 유형: 문자열

    checks.should_create_alert 테스트가 실패할 경우 모니터가 경보를 생성할지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 모니터 테스트가 실패하면 경보가 생성됩니다.
    • false: 모니터 테스트가 실패하면 경보가 생성되지 않습니다.

    기본값: false

    데이터 유형: 부울

    checks.single_api_check_sys_id 엔드포인트에 대한 모니터의 Sys_id입니다. 이 매개변수를 사용하여 기존 모니터를 업데이트합니다.

    테이블: 단일 API [sn_sow_synthetics_check_single_api]

    기본값: null

    데이터 유형: 문자열

    checks.support_group_sys_id 필수 이 엔드포인트를 담당하는 지원 그룹의 Sys_id입니다. 경보 라우팅 및 할당에 사용됩니다.

    테이블: 그룹 [sys_user_group]

    데이터 유형: 문자열

    checks.valid_http_code 성공적인 응답에 대해 예상되는 HTTP 상태 코드입니다.
    유효한 형식:
    • 단일 값(예: 200)
    • 값의 범위입니다(예: 200-202).
    • '200,201,204'와 같이 쉼표로 구분된 값 목록입니다.

    테스트할 때 모니터가 이러한 값을 기준으로 검사하며 실제 상태 코드가 목록의 값과 일치하지 않으면 테스트가 실패합니다.

    기본값: null

    데이터 유형: 문자열

    checks.valid_http_code_type 응답에서 HTTP 상태 코드를 확인하는 데 사용되는 확인 유형입니다.
    유효한 값(대/소문자 구분):
    • 같음: 과(와) checks.valid_http_code정확히 일치하는지 확인합니다.
    • in_range: 상태 코드가 에 제공된 값의 범위 내에 있는지 확인합니다.checks.valid_http_code
    • 정규 표현식: 상태 코드를 확인할 정규 표현식을 제공합니다. 예를 들어, 2[0-9]{2} 는 코드 200-299와 일치합니다.

    기본값: null

    데이터 유형: 문자열

    헤더

    다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 고유한 방식으로 이 작업에 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하십시오.

    표 10. 요청 헤더
    머리글 설명
    수용 응답 본문의 데이터 형식입니다. application/json만 지원합니다.
    권한 부여 HTTP 기본 인증 또는 OAuth 전달자 토큰입니다.
    기본 인증 형식:
    Authorization: Basic <base64-encoded-username:password>
    OAuth 형식:
    Authorization: Bearer <access-token>
    콘텐츠-형식 요청 본문의 데이터 형식입니다. 지원되는 유형: application/json 또는 text/csv.

    기본값: application/json

    표 11. 응답 헤더
    머리글 설명
    안 함

    상태 코드

    이 HTTP 작업에 적용되는 상태 코드는 다음과 같습니다. REST API에 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하십시오.

    표 12. 상태 코드
    상태 코드 설명
    202 수락됨. 대량 모니터 작성 작업이 제출되었습니다.
    400 잘못된 요청. 요청 확인에 실패했습니다. 오류 상세 정보는 응답 error.message 본문을 확인하십시오error.code.
    일반적인 원인:
    • 잘못된 형식의 JSON 또는 CSV 페이로드입니다.
    • 필수 필드가 제공되지 않았습니다.
    • 필드 값이 범위를 벗어났거나 잘못되었습니다.
    • 참조된 엔드포인트 CI를 테이블 HTTP 엔드포인트 [cmdb_ci_endpoint_http]에서 찾을 수 없습니다.
    • 합성 위치 [sn_sow_synthetics_location] 테이블에서 참조된 MID 서버 위치를 찾을 수 없습니다.
    • 비즈니스 서비스[cmdb_ci_service] 테이블에서 참조된 서비스를 찾을 수 없습니다.
    • 중복 모니터입니다. 엔드포인트에 대한 모니터가 이미 있습니다.
    401 권한이 해제되었습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다.
    403 금지되었습니다. 모니터를 생성하려면 사용자에게 x_snc_sow_synthetics.synthetics_editor 역할이 있어야 합니다.
    413 페이로드가 너무 큽니다. 요청 본문이 10MB 한도를 초과합니다.
    415 지원되지 않는 미디어 유형입니다. 페이로드는 JSON 또는 CSV 형식이어야 합니다.
    429 요청이 너무 많거나 활성 모니터 생성 작업이 너무 많습니다. 잠시 기다렸다가 다시 시도하십시오. 자세한 내용은 응답 본문을 확인하고 error.code 확인하십시오 error.message .
    속도 제한:
    • 분당 10개 요청
    • 시간당 100개 요청
    • 하루 1,000개 요청
    500 내부 서버 오류입니다. 요청을 처리하는 동안 예기치 않은 오류가 발생했습니다. 응답에는 오류에 대한 추가 정보가 포함되어 있습니다.

    응답 본문 매개변수(JSON)

    이름 설명
    오류 API 요청이 실패한 경우 반환되는 객체입니다.

    데이터 유형: 객체

    "error": {
       "code": "String",
       "details": {Object},
       "message": "String"
    }
    오류.코드 오류 코드입니다.
    가능한 값:
    • INVALID_JSON_FORMAT
    • INVALID_CSV_FORMAT
    • MISSING_REQUIRED_FIELD
    • INVALID_FIELD_VALUE
    • CMDB_CI_NOT_FOUND
    • LOCATION_NOT_FOUND
    • SERVICE_NOT_FOUND
    • DUPLICATE_MONITOR
    • PAYLOAD_TOO_LARGE
    • UNSUPPORTED_MEDIA_TYPE
    • RATE_LIMIT_EXCEEDED
    • CONCURRENT_JOB_LIMIT
    • AUTHENTICATION_FAILED
    • AUTHORIZATION_FAILED
    • JOB_NOT_FOUND
    • INTERNAL_ERROR

    데이터 유형: 문자열

    오류.상세 정보 오류에 대한 추가 정보입니다.

    이 객체에 포함된 요소는 오류 유형에 따라 다릅니다.

    데이터 유형: 객체

    오류.메시지 오류 메시지.

    데이터 유형: 문자열

    결과 모니터 생성 작업에 대한 정보를 포함하는 객체입니다.

    데이터 유형: 객체

    "result": {
       "job_id": "String",
       "job_sys_id": "String",
       "message": "String",
       "status": "String",
       "status_check_url": "String"
    }
    result.job_id 모니터 생성 작업의 ID입니다.

    테이블: 합성 대량 작업 [sn_sow_synthetics_bulk_job]

    열: 작업 ID

    데이터 유형: 문자열

    result.job_sys_id 모니터 생성 작업의 Sys_id입니다.

    테이블: 합성 대량 작업 [sn_sow_synthetics_bulk_job]

    데이터 유형: 문자열

    결과.메시지 모니터 생성 작업의 상태에 대한 메시지입니다.

    데이터 유형: 문자열

    결과.상태 모니터 생성 작업의 상태입니다.

    성공적인 API 요청(상태 코드 202 수락됨)의 경우 이 매개변수의 값은 보류 중입니다.

    데이터 유형: 문자열

    result.status_check_url 모니터 생성 작업의 현재 상태를 추적하기 위한 엔드포인트입니다. 자세한 내용은 GET /sn_sow_synthetics/v1/synthetics_async_bulk_create/{job_id}를 참조하세요.

    데이터 유형: 문자열

    cURL 요청

    이 예에서는 두 개의 API 엔드포인트에 대한 모니터를 만드는 작업을 제출합니다.

    curl "https://instance.service-now.com/api/sn_sow_synthetics/v1/synthetics_async_bulk_create" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      "checks": [
        {
          "name": "Production API Health Check",
          "method": "GET",
          "description": "Monitors the main API health endpoint",
          "interval": 5,
          "cmdb_ci": "21d4073087807610f13cbbf7cebb3500",
          "enabled": true,
          "should_create_alert": true,
          "alert_severity": 1,
          "locations": [
            "0fd0279b87003210f13cbbf7cebb3552",
            "2244a48d87cc7610f13cbbf7cebb3554"
          ],
          "headers": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ],
          "query_string": null,
          "credential": "",
          "body": null,
          "parent_service_sys_id": "6731133c87c07610f13cbbf7cebb35d8",
          "support_group_sys_id": "019ad92ec7230010393d265c95c260dd",
          "alert_tags": {
            "environment": "production",
            "team": "platform"
          },
          "valid_http_code_type": "equals",
          "valid_http_code": "200",
          "max_latency_ms": 5000,
          "body_condition": {
            "type": "jsonpath",
            "expression": "$.status == 'ok'"
          }
        },
        {
          "name": "User Service POST Test",
          "method": "POST",
          "description": "Tests user creation endpoint",
          "interval": 10,
          "cmdb_ci": "21d4073087807610f13cbbf7cebb3503",
          "enabled": true,
          "should_create_alert": true,
          "alert_severity": 2,
          "locations": [
            "2244a48d87cc7610f13cbbf7cebb3554"
          ],
          "headers": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\"test\": true}",
          "parent_service_sys_id": "6731133c87c07610f13cbbf7cebb35e1",
          "support_group_sys_id": "0762d92db72422103a858bbb4e11a928",
          "valid_http_code_type": "in_range",
          "valid_http_code": "200-201",
          "max_latency_ms": 3000
        }
      ]
    }" \
    --user 'username':'password'

    응답 본문 - 작업이 성공적으로 생성되었습니다.

    {
      "result": {
        "job_id": "BCJ-1706789123456-a1b2c3d4",
        "job_sys_id": "abc123def456abc123def456",
        "status": "pending",
        "message": "Job created successfully. File uploaded. Processing will begin shortly.",
        "status_check_url": "/api/sn_sow_synthetics/v1/synthetics_async_bulk_create/BCJ-1706789123456-a1b2c3d4"
      }
    }

    응답 본문 - 동시 모니터 작성 작업 제한 오류입니다.

    {
      "error": {
        "code": "CONCURRENT_JOB_LIMIT",
        "message": "Maximum concurrent jobs exceeded. Please wait for existing jobs to complete."
      }
    }

    응답 본문 - 요율 제한 오류입니다.

    {
      "error": {
        "code": "RATE_LIMIT_EXCEEDED",
        "message": "Rate limit exceeded. Please try again later.",
        "details": {
          "remaining_per_minute": 0,
          "remaining_per_hour": 5,
          "remaining_per_day": 100
        }
      }
    }