{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/getsmileapi/json-schema/getsmileapi-provider-list-response-schema.json",
  "title": "Provider List Response",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/getsmileapi-providers-api-openapi.yml#/components/schemas/ProviderListResponse",
  "type": "object",
  "properties": {
    "code": {
      "$ref": "#/$defs/ObjectMetadataRefCode"
    },
    "message": {
      "$ref": "#/$defs/ObjectMetadataRefMessage"
    },
    "requestId": {
      "$ref": "#/$defs/ObjectMetadataRefRequestID"
    },
    "data": {
      "type": "object",
      "properties": {
        "nextCursor": {
          "$ref": "#/$defs/ObjectNextCursor"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Provider"
          }
        }
      }
    }
  },
  "$defs": {
    "ObjectMetadataRefCode": {
      "type": "string",
      "title": "ObjectMetadataRefCode",
      "description": "Request status code",
      "enum": [
        "OK",
        "CREATED",
        "INVALID_CREDENTIALS",
        "INVALID_PARAMETERS",
        "INVALID_TOKEN",
        "UNAUTHORIZED_ACCESS",
        "MISSING_RESOURCE",
        "REQUEST_LIMIT_EXCEEDED",
        "SERVER_ERROR",
        "UNSUPPORTED_METHOD",
        "SERVER_UNAVAILABLE",
        "TIME_LIMIT_EXCEEDED"
      ],
      "x-internal": false
    },
    "ObjectMetadataRefMessage": {
      "type": "string",
      "title": "ObjectMetadataRefMessage",
      "description": "Message response to the request",
      "x-internal": false
    },
    "ObjectMetadataRefRequestID": {
      "type": "string",
      "title": "ObjectMetadataRefRequestID",
      "description": "Unique ID that is added to the body of every response for easy traceability of the request in our logs.",
      "x-internal": false
    },
    "ObjectNextCursor": {
      "title": "ObjectNextCursor",
      "type": "string",
      "description": "The next cursor value that can be used in the following query.",
      "x-internal": false
    },
    "Provider": {
      "title": "Provider",
      "type": "object",
      "description": "An employment data provider. A provider holds employment and income information of the user.",
      "x-tags": [
        "Providers"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique ID of the data provider"
        },
        "name": {
          "type": "string",
          "description": "Name of the data provider"
        },
        "longName": {
          "type": "string",
          "description": "Full name or legal name of the data provider"
        },
        "logoUrl": {
          "type": "string",
          "description": "URL to the data provider's logo"
        },
        "type": {
          "type": "string",
          "enum": [
            "GIG",
            "GOVERNMENT",
            "SYSTEM",
            "EMPLOYER",
            "CREDENTIAL"
          ],
          "description": "Type of employment data provider"
        },
        "typeLabel": {
          "type": "string",
          "description": "Type label of employment data provider, like \"Gig Platform\"",
          "enum": [
            "Gig Platform",
            "Govt Service",
            "System",
            "Employer",
            "Credential"
          ]
        },
        "subType": {
          "type": "string",
          "description": "Subset of Type of employment data provider",
          "enum": [
            "SERVICES",
            "TRANSPORTATION",
            "SHARING",
            "TRADING",
            "INSURANCE",
            "HRIS",
            "PAYROLL",
            "WALLET",
            "IDENTIFICATION",
            "ISIC-A",
            "ISIC-B",
            "ISIC-C",
            "ISIC-D",
            "ISIC-E",
            "ISIC-F",
            "ISIC-G",
            "ISIC-H",
            "ISIC-I",
            "ISIC-J",
            "ISIC-K",
            "ISIC-L",
            "ISIC-M",
            "ISIC-N",
            "ISIC-O",
            "ISIC-P",
            "ISIC-Q",
            "ISIC-R",
            "ISIC-S",
            "ISIC-T",
            "ISIC-U"
          ]
        },
        "subTypeLabel": {
          "type": "string",
          "description": "Subtype label of employment data provider, like \"Services\"",
          "enum": [
            "Professional Services",
            "Transport and Delivery",
            "Asset Sharing",
            "Online Selling",
            "Social Insurance",
            "Payroll System",
            "Tamper-proof document issuance & verification systems",
            "Human Resource Information System",
            "Identification",
            "Agriculture, forestry and fishing",
            "Mining and quarrying",
            "Manufacturing",
            "Electricity, gas, steam and air conditioning supply",
            "Water supply; sewerage, waste management and remediation activities",
            "Construction",
            "Wholesale and retail trade; repair of motor vehicles and motorcycles",
            "Transportation and storage",
            "Accommodation and food service activities",
            "Information and communication",
            "Financial and insurance activities",
            "Real estate activities",
            "Professional, scientific and technical activities",
            "Administrative and support service activities",
            "Public administration and defense; compulsory social security",
            "Education",
            "Human health and social work activities",
            "Arts, entertainment and recreation",
            "Other service activities",
            "Activities of households as employers; undifferentiated goods; and services-producing activities of households for own use",
            "Activities of extraterritorial organization and bodies"
          ]
        },
        "active": {
          "type": "boolean",
          "description": "Indicates whether data provider integration is working"
        },
        "enabled": {
          "type": "boolean",
          "description": "Indicates whether data provider is enabled or access is allowed for the client"
        },
        "mfa": {
          "type": "boolean",
          "description": "Whether data provider requires multi-factor authentication."
        },
        "accountConnection": {
          "type": "boolean",
          "description": "Whether a real-time account connection is available for this data provider",
          "default": true
        },
        "supported": {
          "type": "array",
          "description": "Supported data points for this employment data provider",
          "items": {
            "$ref": "#/$defs/RefDatapoint"
          }
        },
        "monitorSupported": {
          "type": "boolean",
          "description": "Whether support CDS for this data provider",
          "default": false
        }
      },
      "required": [
        "id",
        "name",
        "longName",
        "logoUrl",
        "type",
        "typeLabel",
        "subType",
        "subTypeLabel",
        "active",
        "enabled",
        "mfa",
        "accountConnection",
        "supported",
        "monitorSupported"
      ]
    },
    "RefDatapoint": {
      "type": "string",
      "title": "Datapoint",
      "enum": [
        "IDENTITIES",
        "TRANSACTIONS",
        "RATINGS",
        "EMPLOYMENTS",
        "DOCUMENTS",
        "INCOMES",
        "CONTRIBUTIONS",
        "EINCOMES",
        "LIABILITIES",
        "LINK",
        "INSIGHTS"
      ],
      "description": "Supported data points for this employment data provider"
    }
  }
}