{
  "openapi": "3.0.1",
  "info": {
    "title": "DNCScrub APIs at dataapi.dncscrub.com",
    "version": "1.5"
  },
  "servers": [
    {
      "url": "https://dataapi.dncscrub.com"
    }
  ],
  "paths": {
    "/v1.5/Auth/Validate": {
      "get": {
        "tags": ["Auth"],
        "summary": "Validates the loginId provided in the HTTP header is valid.\r\nOptionally validates a campaign Id and/or project Id is valid",
        "description": "The loginId must be provided in the HTTP header named \"loginId\".\r\nIf a campaignId is provided, it will also verify the campaign belongs to the authenticated account.\r\nIf a projId is provided, it will also verify the project belongs to the authenticated account.",
        "parameters": [
          {
            "name": "campaignId",
            "in": "query",
            "description": "Optional campaign ID to validate against the authenticated account",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projId",
            "in": "query",
            "description": "Optional project ID to validate against the authenticated account",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/v1.5/stirshaken/sign": {
      "post": {
        "tags": ["BCIDSigningVerification"],
        "summary": "Signs an outgoing call with a STIR/SHAKEN identity token (PASSporT).",
        "description": "The signed token provides cryptographic proof of caller ID ownership.\r\nAttestation levels: A (Full), B (Partial), C (Gateway).",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The signing request containing originating number, destination number(s), and attestation level",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SigningRequestWrapper"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SigningRequestWrapper"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SigningRequestWrapper"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SigningResponseWrapper"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "406": {
            "description": "Not Acceptable",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "415": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "411": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/v1.5/stirshaken/verify": {
      "post": {
        "tags": ["BCIDSigningVerification"],
        "summary": "Verifies an incoming call's STIR/SHAKEN identity token.",
        "description": "Returns verstat values: TN-Validation-Passed, No-TN-Validation, or error codes.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The verification request containing the identity token and call details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BCIDVerificationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BCIDVerificationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BCIDVerificationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BCIDVerificationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/v1.5/stirshaken/certificate": {
      "get": {
        "tags": ["BCIDSigningVerification"],
        "summary": "Retrieves the public certificate used for signing verification (x5u endpoint).",
        "description": "This endpoint does not require authentication and is publicly accessible.\r\nThe certificate is used by receiving parties to verify signed tokens.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/v1.5/ComplianceGuide/StateRestrictedHolidays": {
      "get": {
        "tags": ["ComplianceGuide"],
        "summary": "Get all states and its restricted holidays",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StateRestrictedHolidayResponseDTO"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/ComplianceGuide/StateEmergenciesRestricted": {
      "get": {
        "tags": ["ComplianceGuide"],
        "summary": "Get all States that are emergencies restricted",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StateEmergenciesRestrictedResponseDTO"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.4/Data/PhoneIDAppend": {
      "get": {
        "tags": ["Data"],
        "summary": "Retrieves phone number based on name and address data.",
        "parameters": [
          {
            "name": "firstName",
            "in": "query",
            "description": "First name of the person",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lastName",
            "in": "query",
            "description": "Last name of the person",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address1",
            "in": "query",
            "description": "Primary address line",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address2",
            "in": "query",
            "description": "Secondary address line (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "description": "City name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "State abbreviation (e.g., CA, NY)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "zip",
            "in": "query",
            "description": "ZIP code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneIDAppendResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.4/Data/ResOrBusiness": {
      "get": {
        "tags": ["Data"],
        "summary": "Determines whether a phone number is associated with a residential or business line.",
        "parameters": [
          {
            "name": "phone",
            "in": "query",
            "description": "The 10-digit phone number to check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResidentialOrBusinessResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.4/Data/Verification": {
      "get": {
        "tags": ["Data"],
        "summary": "Verifies phone number ownership by matching against name and address data.",
        "parameters": [
          {
            "name": "phone",
            "in": "query",
            "description": "The 10-digit phone number to verify",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "firstName",
            "in": "query",
            "description": "First name of the person (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lastName",
            "in": "query",
            "description": "Last name of the person (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address1",
            "in": "query",
            "description": "Primary address line (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address2",
            "in": "query",
            "description": "Secondary address line (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "city",
            "in": "query",
            "description": "City name (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "State abbreviation (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "postalCode",
            "in": "query",
            "description": "ZIP/postal code (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "consentDate",
            "in": "query",
            "description": "Date consent was obtained in YYYYMMDD format (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "referenceId",
            "in": "query",
            "description": "Your reference ID for tracking (optional)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/Data/ResOrBusinessUsage": {
      "get": {
        "tags": ["Data"],
        "summary": "Retrieves usage statistics for verification or residential/business lookups within a date range.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Type of usage to retrieve: \"verification\" or \"ResOrBusiness\"",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date in YYYYMMDD format",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date in YYYYMMDD format (max 60 days from today)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "query",
            "description": "Optional login ID for authentication override",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.4/Data/Usage": {
      "get": {
        "tags": ["Data"],
        "summary": "Retrieves usage statistics for verification or residential/business lookups within a date range.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Type of usage to retrieve: \"verification\" or \"ResOrBusiness\"",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Start date in YYYYMMDD format",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "End date in YYYYMMDD format (max 60 days from today)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UsageStatisticsDTO"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleErrorResponseDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleErrorResponseDTO"
                }
              }
            }
          }
        }
      }
    },
    "/v1.4/Data/IDPremium": {
      "get": {
        "tags": ["Data"],
        "summary": "Retrieves premium phone identification data including carrier and phone type information.",
        "parameters": [
          {
            "name": "phone",
            "in": "query",
            "description": "The 10-digit phone number to look up",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WirelessIDPremiumResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/Data/QueryUsage": {
      "get": {
        "tags": ["Data"],
        "summary": "Retrieves the billing month current query usage and limits for authenticated accounts\r\n**across the following APIs* Res vs Business, Wireless ID Premium, TCPA\r\nReassigned ID (aka Verification), possibly others. This isn't super useful as\r\neach API is typically metered seperately.",
        "parameters": [
          {
            "name": "loginId",
            "in": "query",
            "description": "Optional login ID for authentication override",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WirelessIDPremiumResponseDTO"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/Data/TCPAAuthority": {
      "get": {
        "tags": ["Data"],
        "summary": "Checks if a phone number has been reassigned since a given consent date using TCPA Authority.",
        "parameters": [
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "The 10-digit phone number to check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "The consent date in YYYYMMDD format",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "useSandbox",
            "in": "query",
            "description": "Set to true to use sandbox mode for testing (returns random results)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Data"],
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TCPAAuthorityRequestNewDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TCPAAuthorityRequestNewDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TCPAAuthorityRequestNewDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TCPAAuthorityResponseDTOAPI"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/Data/TCPAAuthorityLitigator": {
      "get": {
        "tags": ["Data"],
        "summary": "Checks if a phone number has been reassigned and if the owner is a known TCPA litigator.",
        "parameters": [
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "The 10-digit phone number to check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "The consent date in YYYYMMDD format",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "useSandbox",
            "in": "query",
            "description": "Set to true to use sandbox mode for testing (returns random results)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Data"],
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TCPAAuthorityRequestNewDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TCPAAuthorityRequestNewDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TCPAAuthorityRequestNewDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TCPAAuthorityLitigatorResponseDTOAPI"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.4/Data/RealTimeDisconnect": {
      "get": {
        "tags": ["Data"],
        "summary": "Checks real-time phone line status to determine if a number is connected or disconnected.",
        "parameters": [
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "The 10-digit phone number to check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealPhoneValidationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/v1.5/Data/RNDCredits": {
      "get": {
        "tags": ["Data"],
        "summary": "Retrieves the remaining Reassigned Number Database (RND) query credits for our\r\nmaster account. Not for public usage.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RNDCreditsDTO"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/Data/RNDBasic": {
      "post": {
        "tags": ["Data"],
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RNDRequestNewDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RNDRequestNewDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RNDRequestNewDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BasicRNDResponseDTO"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": ["Data"],
        "summary": "Queries the Basic Reassigned Number Database to check if a phone number was reassigned after a given date.\r\nReturns only the reassignment status without additional metadata.",
        "parameters": [
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "The 10-digit phone number to check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "The consent date in YYYYMMDD format",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "useSandbox",
            "in": "query",
            "description": "Set to true to use sandbox mode for testing",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "projId",
            "in": "query",
            "description": "Optional project ID for tracking",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasicRNDResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/Data/EnhancedRND": {
      "post": {
        "tags": ["Data"],
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RNDRequestNewDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RNDRequestNewDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RNDRequestNewDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnhancedRNDResponseDTO"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": ["Data"],
        "summary": "Queries the Enhanced Reassigned Number Database to check if a phone number was reassigned after a given date.\r\nIncludes additional metadata such as line type and carrier information.",
        "parameters": [
          {
            "name": "phoneNumber",
            "in": "query",
            "description": "The 10-digit phone number to check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "The consent date in YYYYMMDD format",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "useSandbox",
            "in": "query",
            "description": "Set to true to use sandbox mode for testing",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "projId",
            "in": "query",
            "description": "Optional project ID for tracking",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnhancedRNDResponseDTO"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/DoNotEmail/Scrub": {
      "post": {
        "tags": ["DoNotEmail"],
        "summary": "Scrub API check if an email to scrub against exists or not\r\nThe input is the list of email addresses to scrub-against. The output is a boolean value if the email is on the DoNotEmail list or not",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubDoNotEmailRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubDoNotEmailRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubDoNotEmailRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmailResponseDTO"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/DoNotEmail/AddUpdate": {
      "post": {
        "tags": ["DoNotEmail"],
        "summary": " AddUpdate API is used to add a new email to scrub against or update an existing email record\r\nThe input is the list of email addresses to add or update on DoNotEmail.\r\nThe output is confirmation if the email is added, if the email was already on the list, or\r\nan error if the email address is not in the proper format.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateDoNotEmailRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateDoNotEmailRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddUpdateDoNotEmailRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmailResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/DoNotEmail/Remove": {
      "post": {
        "tags": ["DoNotEmail"],
        "summary": "Remove API: The input is the list of email addresses to remove. The output is a confirmation if\r\nthe email address was removed or an error if the email address is not in the proper\r\nformat",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubDoNotEmailRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubDoNotEmailRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubDoNotEmailRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmailResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/GeoScrub/GetTimeZoneInfo": {
      "post": {
        "tags": ["GeoScrub"],
        "summary": "Returns timezone information for one or more North America phone numbers",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "requestBody": {
          "description": "Object of phone numbers whose timezones \r\n            we query",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTimeZoneInfoRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTimeZoneInfoRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetTimeZoneInfoRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GetTimeZoneInfoResponseDTO"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/GeoScrub/LegalCallTimesForDate": {
      "post": {
        "tags": ["GeoScrub"],
        "summary": "Provides the times in UTC that a telephone call can be placed\r\nfor a given phone and date",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LegalCallTimesForDateRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LegalCallTimesForDateRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LegalCallTimesForDateRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegalCallTimesForDateResponseDTO"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/GeoScrub/IsTimeLegalToCall": {
      "post": {
        "tags": ["GeoScrub"],
        "summary": "Returns a boolean true or false if a phone number call is permitted\r\non a provided datetime. If the call is permitted, also provides\r\nnumber of seconds remaining in legal calling window.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IsTimeLegalToCallRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IsTimeLegalToCallRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IsTimeLegalToCallRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IsTimeLegalToCallResponseDTO"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/gc/Query": {
      "get": {
        "tags": ["GlobalConnect"],
        "summary": "Get Information about the phone number",
        "parameters": [
          {
            "name": "internationalCode",
            "in": "query",
            "description": "Country code of the phone number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phone",
            "in": "query",
            "description": "The phone number information you want to get",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GCQueryResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/Health/Check": {
      "get": {
        "tags": ["Health"],
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/v1.5/Health/Version": {
      "get": {
        "tags": ["Health"],
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/v1.5/OAuth/token": {
      "post": {
        "tags": ["OAuth"],
        "summary": "Get oAuth 2.0 token\r\nNote the oAuth specification is for a form post\r\nof client_id, client_secret, grant_type, not a JSON post",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "client_id": {
                    "type": "string"
                  },
                  "client_secret": {
                    "type": "string"
                  },
                  "grant_type": {
                    "type": "string"
                  }
                }
              },
              "encoding": {
                "client_id": {
                  "style": "form"
                },
                "client_secret": {
                  "style": "form"
                },
                "grant_type": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/Scrub/litigator": {
      "get": {
        "tags": ["Scrub"],
        "summary": "Checks a list of phone numbers against the litigator database.",
        "parameters": [
          {
            "name": "phoneList",
            "in": "query",
            "description": "Comma-separated list of phone numbers to scrub (max 10,000)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "campaignId",
            "in": "query",
            "description": "Optional campaign ID for tracking purposes",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "projId",
            "in": "query",
            "description": "Optional project ID for tracking purposes",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "outputFormat",
            "in": "query",
            "description": "Output format: \"JsonArray\" (default) or \"JsonObject\" for Zapier compatibility",
            "schema": {
              "type": "string",
              "default": "JsonArray"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IPhoneResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["Scrub"],
        "summary": "Checks a list of phone numbers against the litigator database using a POST request.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body containing the phone list and optional parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ScrubRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IPhoneResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReasonPhraseError"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/TrustCall/Add": {
      "post": {
        "tags": ["TrustCall"],
        "summary": "Adds phone numbers to TrustCall monitoring. Numbers will be automatically checked for carrier spam scores.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "List of phone numbers with optional campaign details and caller ID names",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AddPhoneRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AddPhoneRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AddPhoneRequest"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/TrustCall/Remove": {
      "post": {
        "tags": ["TrustCall"],
        "summary": "Removes phone numbers from TrustCall monitoring.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Array of 10-digit phone numbers to remove from monitoring",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RemovePhoneResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/TrustCall/Get": {
      "get": {
        "tags": ["TrustCall"],
        "summary": "Retrieves current carrier spam scores for phone numbers being monitored.",
        "parameters": [
          {
            "name": "phoneList",
            "in": "query",
            "description": "Comma-separated list of 10-digit phone numbers",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["TrustCall"],
        "summary": "Retrieves current carrier spam scores for phone numbers being monitored (POST version).",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "List of 10-digit phone numbers",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/TrustCall/AdHocCheck": {
      "get": {
        "tags": ["TrustCall"],
        "summary": "Performs an on-demand carrier spam score check for a single phone number without adding it to monitoring.",
        "parameters": [
          {
            "name": "phone",
            "in": "query",
            "description": "The 10-digit phone number to check",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "returnAllData",
            "in": "query",
            "description": "Set to true to include app scores (RoboKiller, Nomorobo, FTC complaints) in v1.4+",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/TrustCall/GetAll": {
      "get": {
        "tags": ["TrustCall"],
        "summary": "Retrieves carrier spam scores for all phone numbers being monitored by the account.",
        "description": "The X-Total-Count header will contain the total number of phone numbers in the account.",
        "parameters": [
          {
            "name": "maxRecords",
            "in": "query",
            "description": "Maximum number of records to return (default 15000)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 15000
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "413": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/TrustCall/GetAllLegalEntities": {
      "get": {
        "tags": ["TrustCall"],
        "summary": "Retrieves all legal entities associated with an account.",
        "description": "Legal entities represent the business identities under which phone numbers are registered for caller ID and STIR/SHAKEN attestation. The EIN field is masked to show only the last 4 digits.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LegalEntityResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1.5/TrustCall/OneTimeScan": {
      "post": {
        "tags": ["TrustCall"],
        "summary": "Submits a batch of phone numbers for one-time carrier spam score scanning.\r\nResults are delivered asynchronously via webhook notification.",
        "description": "Scan types: \"carrier\" (carrier scores only) or \"carrierandapps\" (includes app scores).\r\nResults will be POSTed to the NotificationURL when complete.",
        "parameters": [
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request containing phone numbers, notification URL, and scan type",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OneTimeScanRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OneTimeScanRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OneTimeScanRequestDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": ["TrustCall"],
        "summary": "Retrieves the status of a one-time scan job.",
        "parameters": [
          {
            "name": "jobId",
            "in": "query",
            "required": true,
            "description": "The job ID returned from the POST OneTimeScan endpoint",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "loginId",
            "in": "header",
            "description": "LoginId (aka APIKey)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddPhoneRequest": {
        "type": "object",
        "properties": {
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Label": {
            "type": "string",
            "nullable": true
          },
          "ServiceType": {
            "type": "string",
            "nullable": true
          },
          "LegalEntityId": {
            "type": "integer",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddUpdateDoNotEmailRequestDTO": {
        "type": "object",
        "properties": {
          "ProjId": {
            "type": "string",
            "nullable": true
          },
          "Request": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailRequestDTO"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BasicRNDResponseDTO": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "IsReassigned": {
            "type": "boolean",
            "nullable": true
          },
          "HasSafeHarbor": {
            "type": "boolean"
          },
          "IsSandBox": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "BCIDSigningRequest": {
        "type": "object",
        "properties": {
          "Attest": {
            "type": "string",
            "nullable": true
          },
          "dest": {
            "$ref": "#/components/schemas/Dest"
          },
          "iat": {
            "type": "integer",
            "format": "int64"
          },
          "orig": {
            "$ref": "#/components/schemas/Orig"
          },
          "rcd": {
            "$ref": "#/components/schemas/Rcd"
          },
          "origid": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BCIDSigningResponse": {
        "type": "object",
        "properties": {
          "identity": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BCIDVerificationRequest": {
        "type": "object",
        "properties": {
          "identity": {
            "type": "string",
            "nullable": true
          },
          "from": {
            "$ref": "#/components/schemas/OrigTelephoneNumber"
          },
          "to": {
            "$ref": "#/components/schemas/DestTelephoneNumber"
          },
          "time": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "BCIDVerificationResponse": {
        "type": "object",
        "properties": {
          "reasoncode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "reasontext": {
            "type": "string",
            "nullable": true
          },
          "reasondesc": {
            "type": "string",
            "nullable": true
          },
          "verstat": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CallTimeWindowDTO": {
        "type": "object",
        "properties": {
          "StartInUTC": {
            "type": "string",
            "format": "date-time"
          },
          "EndInUTC": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Dest": {
        "type": "object",
        "properties": {
          "tn": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DestTelephoneNumber": {
        "type": "object",
        "properties": {
          "tn": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmailRequestDTO": {
        "type": "object",
        "properties": {
          "Email": {
            "type": "string",
            "nullable": true
          },
          "Reference": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmailResponse": {
        "type": "object",
        "properties": {
          "Email": {
            "type": "string",
            "nullable": true
          },
          "IsDoNotEmail": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EmailResponseDTO": {
        "type": "object",
        "properties": {
          "Email": {
            "type": "string",
            "nullable": true
          },
          "IsDoNotEmail": {
            "type": "boolean"
          },
          "AddedOn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Reference": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EnhancedRNDResponseDTO": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "IsReassigned": {
            "type": "boolean",
            "nullable": true
          },
          "HasSafeHarbor": {
            "type": "boolean"
          },
          "CCCIsReassigned": {
            "type": "boolean",
            "nullable": true
          },
          "IsSandBox": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "GCQueryResponse": {
        "type": "object",
        "properties": {
          "Country": {
            "type": "string",
            "nullable": true
          },
          "ISO": {
            "type": "string",
            "nullable": true
          },
          "RegionCode": {
            "type": "string",
            "nullable": true
          },
          "RegionName": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "TimeZone": {
            "type": "string",
            "nullable": true
          },
          "UTC": {
            "type": "string",
            "nullable": true
          },
          "DST": {
            "type": "string",
            "nullable": true
          },
          "Latitude": {
            "type": "string",
            "nullable": true
          },
          "Longitude": {
            "type": "string",
            "nullable": true
          },
          "NumberType": {
            "type": "string",
            "nullable": true
          },
          "CarrierName": {
            "type": "string",
            "nullable": true
          },
          "Language": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetTimeZoneInfoRequestDTO": {
        "type": "object",
        "properties": {
          "PhoneList": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "OverwriteTodaysTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetTimeZoneInfoResponseDTO": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "TZName": {
            "type": "string",
            "nullable": true
          },
          "StateProvince": {
            "type": "string",
            "nullable": true
          },
          "UTCOffset": {
            "type": "string",
            "nullable": true
          },
          "UTCOffsetInMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "HasDST": {
            "type": "boolean"
          },
          "NextStartDateDST": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EndStartDateDST": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "LATA": {
            "type": "string",
            "nullable": true
          },
          "RateCenterLIR": {
            "type": "string",
            "nullable": true
          },
          "RateCenter": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IPhoneResponse": {
        "type": "object",
        "properties": {
          "Phone": {
            "type": "integer",
            "format": "int64"
          },
          "IsLitigator": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "IsTimeLegalToCall": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "IsCallPermitted": {
            "type": "boolean"
          },
          "SecondsInCallWindow": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "IsTimeLegalToCallDTO": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "CallProposedDateTimeInUTC": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Optional. If omitted or set to null, defaults to the current UTC time."
          },
          "DNCProjId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IsTimeLegalToCallRequestDTO": {
        "type": "object",
        "properties": {
          "IsTimeLegalToCall": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IsTimeLegalToCallDTO"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IsTimeLegalToCallResponseDTO": {
        "type": "object",
        "properties": {
          "Response": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IsTimeLegalToCall"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LegalCallTimesForDateDTO": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "format": "date-time"
          },
          "DNCProjId": {
            "type": "string",
            "nullable": true
          },
          "NumberOfDays": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LegalCallTimesForDateRequestDTO": {
        "type": "object",
        "properties": {
          "LegalCallTimesForDate": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalCallTimesForDateDTO"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LegalCallTimesForDateResponseDTO": {
        "type": "object",
        "properties": {
          "LegalCallTimes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalCallTimesForPhoneDTO"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LegalCallTimesForPhoneDTO": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "ValidTimesInUTC": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallTimeWindowDTO"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LegalEntityResponse": {
        "type": "object",
        "properties": {
          "LegalEntityId": {
            "type": "integer",
            "format": "int32"
          },
          "AcctId": {
            "type": "string",
            "nullable": true
          },
          "IsDefault": {
            "type": "boolean"
          },
          "LegalName": {
            "type": "string",
            "nullable": true
          },
          "Ein": {
            "type": "string",
            "description": "Masked EIN showing only last 4 digits (e.g., ***6789)",
            "nullable": true
          },
          "PrimaryPhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "StreetAddress": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "Zip": {
            "type": "string",
            "nullable": true
          },
          "CountryCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OAuthResponse": {
        "type": "object",
        "properties": {
          "token_type": {
            "type": "string",
            "nullable": true
          },
          "expires_in": {
            "type": "integer",
            "format": "int32"
          },
          "access_token": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OneTimeScanRequestDTO": {
        "type": "object",
        "properties": {
          "PhoneNumbers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "NotificationURL": {
            "type": "string",
            "maxLength": 1500,
            "nullable": true
          },
          "NotificationAPIKey": {
            "type": "string",
            "maxLength": 1500,
            "nullable": true
          },
          "ScanType": {
            "type": "string",
            "nullable": true
          },
          "TestNotificationURL": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Orig": {
        "type": "object",
        "properties": {
          "tn": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OrigTelephoneNumber": {
        "type": "object",
        "properties": {
          "tn": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PhoneIDAppendResponseDTO": {
        "type": "object",
        "properties": {
          "Score": {
            "type": "integer",
            "format": "int32"
          },
          "Category": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "MiddleInitial": {
            "type": "string",
            "nullable": true
          },
          "BusinessName": {
            "type": "string",
            "nullable": true
          },
          "Address1": {
            "type": "string",
            "nullable": true
          },
          "Address2": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "Zip": {
            "type": "string",
            "nullable": true
          },
          "DPV": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Rectype": {
            "type": "string",
            "nullable": true
          },
          "Telconame": {
            "type": "string",
            "nullable": true
          },
          "DACode": {
            "type": "string",
            "nullable": true
          },
          "ResponseCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "Rcd": {
        "type": "object",
        "properties": {
          "nam": {
            "type": "string",
            "nullable": true
          },
          "icn": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RealPhoneValidationResponse": {
        "type": "object",
        "properties": {
          "Status": {
            "type": "string",
            "nullable": true
          },
          "ErrorText": {
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ReasonPhraseError": {
        "type": "object",
        "properties": {
          "ReasonPhrase": {
            "type": "string",
            "description": "Description of the error",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RemovePhoneResponse": {
        "type": "object",
        "properties": {
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Response": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ResidentialOrBusinessResponseDTO": {
        "type": "object",
        "properties": {
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "ResOrBusiness": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "RNDCreditsDTO": {
        "type": "object",
        "properties": {
          "BuyMoreCredits": {
            "type": "boolean"
          },
          "CreditsRemaining": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RNDRequestDTO": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RNDRequestNewDTO": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RNDRequestDTO"
            },
            "nullable": true
          },
          "ProjId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ScrubDoNotEmailRequestDTO": {
        "type": "object",
        "properties": {
          "ProjId": {
            "type": "string",
            "nullable": true
          },
          "EmailList": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ScrubRequestDTO": {
        "type": "object",
        "properties": {
          "LoginId": {
            "type": "string",
            "nullable": true
          },
          "PhoneList": {
            "type": "string",
            "nullable": true
          },
          "CampaignId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ProjId": {
            "type": "string",
            "nullable": true
          },
          "OutputFormat": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SigningRequestWrapper": {
        "type": "object",
        "properties": {
          "signingRequest": {
            "$ref": "#/components/schemas/BCIDSigningRequest"
          }
        },
        "additionalProperties": false
      },
      "SigningResponseWrapper": {
        "type": "object",
        "properties": {
          "signingResponse": {
            "$ref": "#/components/schemas/BCIDSigningResponse"
          }
        },
        "additionalProperties": false
      },
      "StateEmergenciesRestrictedResponseDTO": {
        "type": "object",
        "properties": {
          "State": {
            "type": "string",
            "nullable": true
          },
          "IsInEmergency": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "StateRestrictedHolidayResponseDTO": {
        "type": "object",
        "properties": {
          "State": {
            "type": "string",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TCPAAuthorityLitigatorResponseDTOAPI": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "IsReassigned": {
            "type": "boolean",
            "nullable": true
          },
          "IsValid": {
            "type": "boolean"
          },
          "LineType": {
            "type": "string",
            "nullable": true
          },
          "Carrier": {
            "type": "string",
            "nullable": true
          },
          "Locale": {
            "type": "string",
            "nullable": true
          },
          "Region": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "TZ": {
            "type": "string",
            "nullable": true
          },
          "UTCOffset": {
            "type": "string",
            "nullable": true
          },
          "IsLitigator": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TCPAAuthorityRequestDTO": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "Date": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TCPAAuthorityRequestNewDTO": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TCPAAuthorityRequestDTO"
            },
            "nullable": true
          },
          "UseSandbox": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TCPAAuthorityResponseDTOAPI": {
        "type": "object",
        "properties": {
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "IsReassigned": {
            "type": "boolean",
            "nullable": true
          },
          "IsValid": {
            "type": "boolean"
          },
          "LineType": {
            "type": "string",
            "nullable": true
          },
          "Carrier": {
            "type": "string",
            "nullable": true
          },
          "Locale": {
            "type": "string",
            "nullable": true
          },
          "Region": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "TZ": {
            "type": "string",
            "nullable": true
          },
          "UTCOffset": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UsageStatisticsDTO": {
        "type": "object",
        "properties": {
          "Status": {
            "type": "string",
            "description": "The status code representing the type of result"
          },
          "Request": {
            "type": "integer",
            "description": "The number of requests for this status"
          }
        },
        "additionalProperties": false
      },
      "SimpleErrorResponseDTO": {
        "type": "object",
        "properties": {
          "ReasonPhrase": {
            "type": "string",
            "description": "Description of the error"
          }
        },
        "additionalProperties": false
      },
      "VerificationResponseDTO": {
        "type": "object",
        "properties": {
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "ReferenceID": {
            "type": "string",
            "nullable": true
          },
          "VerificationCode": {
            "type": "string",
            "nullable": true
          },
          "PhoneType": {
            "type": "string",
            "nullable": true
          },
          "MatchType": {
            "type": "string",
            "nullable": true
          },
          "MatchLevel": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WirelessIDPremiumResponseDTO": {
        "type": "object",
        "properties": {
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "PhoneType": {
            "type": "string"
          },
          "OCN": {
            "type": "string",
            "nullable": true
          },
          "TelcoName": {
            "type": "string",
            "nullable": true
          },
          "ODate": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "LoginId": {
        "type": "apiKey",
        "description": "LoginId Authentication: Authenticate using the LoginId generated from DNCScrub User Manager. In HTTP header place \"loginId: {loginId}\"",
        "name": "loginId",
        "in": "header"
      },
      "oAuth2": {
        "type": "apiKey",
        "description": "oAuth 2.0 Authentication: Authenticate using an oAuth 2.0 access_token in the HTTP header. In HTTP header place \"Authorization: Bearer {access_token}\"",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "LoginId": []
    }
  ]
}
