> ## Documentation Index
> Fetch the complete documentation index at: https://developers.activeprospect.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Viewing a Certificate

> When you claim a certificate, TrustedForm returns either a "consent" or
"consent+data" JSON response depending on your subscription. You can
"view" this same response by sending a `GET` request to the same endpoint.

The following list provides examples of when you might want to use this
endpoint:

- You were unable to capture the initial response
- You need to validate if you've claimed the certificate





## OpenAPI

````yaml /api-reference/trustedform_v3.json get /{cert_id}
openapi: 3.0.0
info:
  contact:
    email: support@activeprospect.com
    name: ActiveProspect Support Team
    url: https://support.activeprospect.com
  description: >
    # Overview


    ## Claiming


    Claiming a certificate will allow you to verify its legitimacy, view it

    online, access its data via our API, and refer to the snapshot that was

    taken of the page as seen by the consumer, for up to 30 days. And you

    can easily configure your account to keep certificates for as long as

    you like, for a small additional fee.


    ### Claim Period


    The "claim period" is the time in which a TrustedForm Certificate must

    be claimed or extended by a TrustedForm Account holder. If it's not, it

    will expire.


    * The standard claim period is approximately 72 hours (3 days).

    * The extended claim period is approximately 2,160 hours (90 days).


    Within the claim period, TrustedForm Certificates are visible to anyone

    with access to the TrustedForm Certificate URL. After this period,

    TrustedForm Certificates are only accessible by the TrustedForm account

    holders that claimed them.


    ## Extended Certs


    By default, Web Certs have a 72-hour (3 days) window in which they can

    be claimed. This window is automatically expanded to 90 days if we

    detect the form's submission.


    If you have need to extend Certs beyond the default 3-day window, you

    have a couple options:


    1. Cert check-in

    2. Enable extended claims


    ### Cert Check-in


    ActiveProspect provides TrustedForm Check-in to allow TrustedForm

    account holders to extend the claim period of certificates beyond the

    standard claim period. Checking a certificate in extends the claim

    period without the need to either claim the certificate or have

    "Extended Claims" enabled on the publishing account.


    ### Enable Extended Claims


    When you enable extended claims, Certificates you claim will

    automatically be extended and available to be claimed up to 90 days.


    Reach out to your account representative to enable extended claims.


    ## Ping (Deprecated)


    The TrustedForm Ping API is meant to be used by lead buyers purchasing

    leads using the "ping/post" model. This API gives buyers access to that

    data with the intention that it will be called when the buyer is

    evaluating a ping request from a seller. The buyer can then use the

    returned data to set an appropriate bid price.


    ### Comparison to Claim API


    The Ping API does not replace the TrustedForm Claim process. The Ping

    API cannot be used to verify or store consent for TCPA compliance. It

    does not support page scanning, fingerprinting, replay, or certificate

    storage.


    Please refer to the [Getting Started with
    Claiming](/pages/trustedform/getting-started)

    for details on claiming a certificate.


    # Other information


    ## Prerequisites


    * [Add the TrustedForm
    script](https://activeprospect.com/products/trustedform-for-publishers/) to
    your lead forms.

    * Contact support@activeprospect.com to receive an API key.
  termsOfService: https://activeprospect.com/trustedform-eula
  title: TrustedForm Claiming API
  version: 3.0.0
servers:
  - description: The base URL for production.
    url: https://cert.trustedform.com
    variables: {}
security: []
tags: []
externalDocs:
  description: ActiveProspect Community
  url: https://developers.activeprospect.com/
paths:
  /{cert_id}:
    get:
      tags:
        - Viewing Certificates
      summary: Viewing a Certificate
      description: >+
        When you claim a certificate, TrustedForm returns either a "consent" or

        "consent+data" JSON response depending on your subscription. You can

        "view" this same response by sending a `GET` request to the same
        endpoint.


        The following list provides examples of when you might want to use this

        endpoint:


        - You were unable to capture the initial response

        - You need to validate if you've claimed the certificate

      operationId: ClaimerWeb.CertController.show
      parameters:
        - description: Set to `application/json` to return a JSON response
          in: header
          name: Accept
          required: false
          schema:
            type: string
        - description: Certificate ID
          in: path
          name: cert_id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaimResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
          description: Malformed certificate id
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
          description: TrustedForm certificate has expired or could not be found
      callbacks: {}
      security: []
components:
  schemas:
    ClaimResponse:
      oneOf:
        - $ref: '#/components/schemas/ConsentClaimResponse'
        - $ref: '#/components/schemas/ConsentAndInsightsClaimResponse'
        - $ref: '#/components/schemas/RetainResponse'
        - $ref: '#/components/schemas/InsightsResponse'
      title: ClaimResponse
      x-struct: Elixir.ClaimerWeb.Schemas.LimitedOrFullClaim
    BadRequest:
      example:
        errors:
          detail: Malformed certificate id
        message: Malformed certificate id
        outcome: error
        reason: Malformed certificate id
      properties:
        errors:
          properties:
            detail:
              type: string
          type: object
        message:
          type: string
        outcome:
          type: string
        reason:
          type: string
      required:
        - errors
        - message
        - outcome
        - reason
      title: BadRequest
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.BadRequest
    NotFound:
      example:
        outcome: error
        reason: TrustedForm certificate has expired or could not be found
      properties:
        outcome:
          type: string
        reason:
          type: string
      required:
        - outcome
        - reason
      title: NotFound
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.NotFound
    ConsentClaimResponse:
      example:
        fingerprints:
          matching:
            - c4a8e7fe184993964ae81380e91579015306838a
            - d511850d569bcd7802c30f54de34bb9f2b31eede
          non_matching:
            - d511850d569bcd7802c30f54de34bb9f2b31eed1
        is_masked: false
        masked_cert_url: https://example.com/1145b610ac97aa9f92d7cd2195446eac5e67ce53
        outcome: success
        scans:
          forbidden_found:
            - Enim sit amet venenatis
          forbidden_not_found:
            - Est velit egestas
          required_found:
            - lorem ipsum dolor
          required_not_found:
            - Ad qui aperiri
        warnings: []
      properties:
        fingerprints:
          $ref: '#/components/schemas/Fingerprints'
        is_masked:
          description: A boolean indicating whether the certificate is masked
          type: boolean
        masked_cert_url:
          description: A certificate url that masks the lead source url and snapshot
          nullable: true
          type: string
        outcome:
          default: success
          description: >
            The result of the attempt to verify consent. Success indicates that
            the certificate was

            claimed and did not generate any warnings related to consent
            verification. Failure indicates

            that the certificate was claimed but generated warnings because no
            fingerprints matched,

            forbidden scan terms were found or required scan terms were missing.
            Error indicates that

            the certificate was not claimed and the request should be reviewed
            and potentially retried.
          enum:
            - success
            - failure
            - error
          type: string
        reason:
          description: |
            Provides an explanation for failure or error.

            Only used for `outcome` of `failure` or `error`.
          type: string
        scans:
          $ref: '#/components/schemas/PageScans'
        warnings:
          description: |2
              An array of strings indicating possible issues with the certificate

              * `none of the provided fingerprints match`: No fingerprints matched.
              * `snapshot scan failed`: The snapshot was unable to be scanned.
              * `string not found in snapshot`: A required page scan text was not found.
              * `string found in snapshot`: A forbidden page scan text was found.
          items:
            enum:
              - none of the provided fingerprints match
              - snapshot scan failed
              - string not found in snapshot
              - string found in snapshot
            type: string
          type: array
      required:
        - outcome
        - masked_cert_url
        - is_masked
        - scans
        - fingerprints
      title: ConsentClaimResponse
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.ClaimConsentResponse
    ConsentAndInsightsClaimResponse:
      example:
        cert:
          age_seconds: 33
          approx_ip_geo:
            city: Austin
            country_code: US
            lat: 30.4548
            lon: -97.7664
            postal_code: '78729'
            state: TX
            time_zone: America/Chicago
          browser:
            full: Chrome 95.0.4638.69
            name: Chrome
            version:
              full: 95.0.4638.69
              major: '95'
              minor: '0'
              patch: '4638.69'
          cert_id: ddbb5429ca0063f857197df1a4638665bc143eee
          created_at: '2021-11-12T22:06:44Z'
          domain: example.com
          event_duration_ms: 21110
          expires_at: '2021-11-15T22:06:44Z'
          form_input_method:
            - typing
            - autofill
          ip: 8.8.8.8
          is_framed: true
          is_mobile: false
          kpm: 68.2314
          operating_system:
            full: Mac OS X 10.15.7
            name: Mac OS X
            version:
              full: 10.15.7
              major: '10'
              minor: '15'
              patch: '7'
          page_id: 5d8ce3c9502b426f77001ae7
          page_url: https://www.example.com/contact.html
          parent_page_url: https://www.example.com/index.html
          user_agent: >-
            Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
            (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
          wpm: 77.1234
        fingerprints:
          matching:
            - c4a8e7fe184993964ae81380e91579015306838a
            - d511850d569bcd7802c30f54de34bb9f2b31eede
          non_matching:
            - d511850d569bcd7802c30f54de34bb9f2b31eed1
        is_masked: false
        masked_cert_url: https://example.com/1145b610ac97aa9f92d7cd2195446eac5e67ce53
        outcome: success
        scans:
          forbidden_found:
            - Enim sit amet venenatis
          forbidden_not_found:
            - Est velit egestas
          required_found:
            - lorem ipsum dolor
          required_not_found:
            - Ad qui aperiri
        warnings: []
      properties:
        cert:
          $ref: '#/components/schemas/WebCertificate'
        fingerprints:
          $ref: '#/components/schemas/Fingerprints'
        is_masked:
          description: A boolean indicating whether the certificate is masked
          type: boolean
        masked_cert_url:
          description: A certificate url that masks the lead source url and snapshot
          nullable: true
          type: string
        outcome:
          default: success
          description: >
            The result of the attempt to verify consent. Success indicates that
            the certificate was

            claimed and did not generate any warnings related to consent
            verification. Failure indicates

            that the certificate was claimed but generated warnings because no
            fingerprints matched,

            forbidden scan terms were found or required scan terms were missing.
            Error indicates that

            the certificate was not claimed and the request should be reviewed
            and potentially retried.
          enum:
            - success
            - failure
            - error
          type: string
        reason:
          description: |
            Provides an explanation for failure or error.

            Only used for `outcome` of `failure` or `error`.
          type: string
        scans:
          $ref: '#/components/schemas/PageScans'
        warnings:
          description: |2
              An array of strings indicating possible issues with the certificate

              * `none of the provided fingerprints match`: No fingerprints matched.
              * `snapshot scan failed`: The snapshot was unable to be scanned.
              * `string not found in snapshot`: A required page scan text was not found.
              * `string found in snapshot`: A forbidden page scan text was found.
          items:
            enum:
              - none of the provided fingerprints match
              - snapshot scan failed
              - string not found in snapshot
              - string found in snapshot
            type: string
          type: array
      required:
        - outcome
        - cert
        - fingerprints
        - masked_cert_url
        - is_masked
        - scans
        - warnings
      title: ConsentAndInsightsClaimResponse
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.ClaimConsentAndInsightsResponse
    RetainResponse:
      example:
        is_retained: 'true'
        outcome: success
      properties:
        is_retained:
          description: |
            Set to true when the cert has been retained"
            Only used for `outcome` of `success`.
          type: boolean
        outcome:
          default: success
          description: >
            The result of the attempt to verify a cert was retained. Success
            indicates that the certificate was

            retained and did not generate any warnings related to consent
            verification. Failure indicates

            that the certificate was retained but generated warnings because no
            fingerprints matched,

            forbidden scan terms were found or required scan terms were missing.
            Error indicates that

            the certificate was not retained and the request should be reviewed
            and potentially retried.
          enum:
            - success
            - failure
            - error
          type: string
        reason:
          description: |
            Provides an explanation for failure or error.

            Only used for `outcome` of `failure` or `error`.
          type: string
      required:
        - outcome
      title: RetainResponse
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.RetainResponse
    InsightsResponse:
      description: Insights Component Response
      example:
        cert:
          age_seconds: 33
          approx_ip_geo:
            city: Austin
            country_code: US
            lat: 30.4548
            lon: -97.7664
            postal_code: '78729'
            state: TX
            time_zone: America/Chicago
          browser:
            full: Chrome 95.0.4638.69
            name: Chrome
            version:
              full: 95.0.4638.69
              major: '95'
              minor: '0'
              patch: '4638.69'
          created_at: '2021-11-12T22:06:44Z'
          domain: example.com
          event_duration_ms: 21110
          expires_at: '2021-11-15T22:06:44Z'
          form_input_method:
            - typing
            - autofill
          ip: 8.8.8.8
          is_framed: true
          is_mobile: false
          kpm: 68.2314
          operating_system:
            full: Mac OS X 10.15.7
            name: Mac OS X
            version:
              full: 10.15.7
              major: '10'
              minor: '15'
              patch: '7'
          page_id: 5d8ce3c9502b426f77001ae7
          page_url: https://www.example.com/contact.html
          parent_page_url: https://www.example.com/index.html
          user_agent: >-
            Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
            (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
          wpm: 77.1234
        fingerprints:
          matching:
            - c4a8e7fe184993964ae81380e91579015306838a
            - d511850d569bcd7802c30f54de34bb9f2b31eede
          non_matching:
            - d511850d569bcd7802c30f54de34bb9f2b31eed1
        is_masked: false
        outcome: success
        scans:
          forbidden_found:
            - Enim sit amet venenatis
          forbidden_not_found:
            - Est velit egestas
          required_found:
            - lorem ipsum dolor
          required_not_found:
            - Ad qui aperiri
        warnings: []
      properties:
        cert:
          $ref: '#/components/schemas/DataServiceCert'
        fingerprints:
          $ref: '#/components/schemas/Fingerprints'
        is_masked:
          description: A boolean indicating whether the certificate is masked
          type: boolean
        outcome:
          default: success
          description: >
            The result of the attempt to verify consent. Success indicates that
            the request did not generate any warnings related to consent
            verification. Failure indicates that the requests generated warnings
            because no fingerprints matched, forbidden scan terms were found or
            required scan terms were missing. Error indicates that the request
            was not successfull and the request should be reviewed and
            potentially retried.
          enum:
            - success
            - failure
            - error
          type: string
        reason:
          description: |
            Provides an explanation for failure or error.

            Only used for `outcome` of `failure` or `error`.
          type: string
        scans:
          $ref: '#/components/schemas/PageScans'
        warnings:
          description: |2
              An array of strings indicating possible issues with the certificate

              * `none of the provided fingerprints match`: No fingerprints matched.
              * `string not found in snapshot`: A required page scan text was not found.
              * `string found in snapshot`: A forbidden page scan text was found.
          items:
            enum:
              - none of the provided fingerprints match
              - string not found in snapshot
              - string found in snapshot
            type: string
          type: array
      required:
        - outcome
        - cert
        - is_masked
        - scans
        - fingerprints
      title: InsightsResponse
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.InsightsResponse
    Fingerprints:
      example:
        matching:
          - c4a8e7fe184993964ae81380e91579015306838a
          - d511850d569bcd7802c30f54de34bb9f2b31eede
        non_matching:
          - d511850d569bcd7802c30f54de34bb9f2b31eed1
      properties:
        matching:
          description: >-
            Requested fingerprints that match fingerprints collected with the
            certificate
          items:
            type: string
          type: array
        not_matching:
          description: >-
            Fingerprints that do not match fingerprints collected with the
            certificate
          items:
            type: string
          type: array
      title: Fingerprints
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.ClaimFingerprints
    PageScans:
      example:
        forbidden_found:
          - Enim sit amet venenatis
        forbidden_not_found:
          - Est velit egestas
        required_found:
          - lorem ipsum dolor
        required_not_found:
          - Ad qui aperiri
      properties:
        forbidden_found:
          description: Requested required text found on page
          items:
            type: string
          type: array
        forbidden_not_found:
          description: Requested required text not found on page
          items:
            type: string
          type: array
        required_found:
          description: Requested required text found on page
          items:
            type: string
          type: array
        required_not_found:
          description: Requested required text not found on page
          items:
            type: string
          type: array
      required:
        - required_found
        - required_not_found
        - forbidden_found
        - forbidden_not_found
      title: PageScans
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.ClaimPageScans
    WebCertificate:
      example:
        age_seconds: 33
        approx_ip_geo:
          city: Austin
          country_code: US
          lat: 30.4548
          lon: -97.7664
          postal_code: '78729'
          state: TX
          time_zone: America/Chicago
        browser:
          full: Chrome 95.0.4638.69
          name: Chrome
          version:
            full: 95.0.4638.69
            major: '95'
            minor: '0'
            patch: '4638.69'
        cert_id: ddbb5429ca0063f857197df1a4638665bc143eee
        created_at: '2021-11-12T22:06:44Z'
        domain: example.com
        event_duration_ms: 21110
        expires_at: '2021-11-15T22:06:44Z'
        form_input_method:
          - typing
          - autofill
        ip: 8.8.8.8
        is_framed: true
        is_mobile: false
        kpm: 68.2314
        operating_system:
          full: Mac OS X 10.15.7
          name: Mac OS X
          version:
            full: 10.15.7
            major: '10'
            minor: '15'
            patch: '7'
        page_id: 5d8ce3c9502b426f77001ae7
        page_url: https://www.example.com/contact.html
        parent_page_url: https://www.example.com/index.html
        user_agent: >-
          Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
          (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
        wpm: 77.1234
      properties:
        age_seconds:
          description: >-
            Number of seconds since the last user interaction with the
            certificate
          type: integer
        approx_ip_geo:
          description: Approximate geolocation based on IP
          properties:
            city:
              description: City Name
              nullable: true
              type: string
            country_code:
              description: Country Code
              type: string
            lat:
              description: Latitude
              type: number
            lon:
              description: Longitude
              type: number
            postal_code:
              description: Mailing address postal code
              type: string
            state:
              description: State/Province or Political Subdivision abbreviation
              type: string
            time_zone:
              description: Timezone name
              type: string
          type: object
        browser:
          description: Browser parsed from the user-agent, when known
          properties:
            full:
              description: >-
                A human-friendly version of the browser parsed from the
                user-agent
              type: string
            name:
              description: Browser name
              type: string
            version:
              description: Browser version
              properties:
                full:
                  description: A String containing the version
                  type: string
                major:
                  description: A String containing the major version
                  type: string
                minor:
                  description: A String containing the minor version
                  type: string
                patch:
                  description: A String containing the patch version
                  type: string
              type: object
          type: object
        cert_id:
          description: Certificate ID
          type: string
        created_at:
          description: >-
            The UTC ISO8601 formatted date and time when the TrustedForm script
            was loaded
          format: date-time
          type: string
        domain:
          description: The domain of the page url
          type: string
        event_duration_ms:
          description: >-
            The time in milliseconds between when the script was loaded and when
            the most recent event was received
          type: integer
        expires_at:
          description: >-
            The UTC ISO8601 formatted date and time when the claim period for
            the certificate will expire
          format: date-time
          type: string
        form_input_method:
          description: |2
              The detected input method or methods the consumer used to fill out the form

              * `autofill`: The form was filled out using browser autofill.
              * `paste`: The form was filled out pasting text.
              * `typing`: The form was filled out typing.
          items:
            enum:
              - autofill
              - paste
              - typing
            type: string
          type: array
          uniqueItems: true
        ip:
          description: The consumer's public IP address
          type: string
        is_framed:
          description: A boolean indicating that the form was displayed within an iframe
          type: boolean
        is_mobile:
          description: >-
            A boolean indicating that the form was filled out on a mobile device
            or tablet, based on user-agent
          type: boolean
        kpm:
          description: Approximate calculated words per minute
          type: number
        operating_system:
          description: Operating system information parsed from the user-agent, when known
          properties:
            full:
              description: >-
                A human-friendly version of the operating system information
                parsed from the user-agent
              type: string
            name:
              description: Operating system name
              type: string
            version:
              description: Operating system version
              properties:
                full:
                  description: A String containing the version
                  type: string
                major:
                  description: A String containing the major version
                  type: string
                minor:
                  description: A String containing the minor version
                  type: string
                patch:
                  description: A String containing the patch version
                  type: string
              type: object
          type: object
        page_id:
          description: The account based unique page id
          type: string
        page_url:
          description: The URL of the page hosting the TrustedForm script
          format: url
          type: string
        parent_page_url:
          description: The parent URL of the page hosting the TrustedForm script, if framed
          format: url
          nullable: true
          type: string
        user_agent:
          description: The consumer's browser user-agent
          type: string
        wpm:
          description: Approximate calculated key presses per minute
          type: number
      required:
        - age_seconds
        - approx_ip_geo
        - browser
        - cert_id
        - created_at
        - domain
        - expires_at
        - event_duration_ms
        - is_framed
        - form_input_method
        - ip
        - kpm
        - is_mobile
        - operating_system
        - page_id
        - page_url
        - parent_page_url
        - user_agent
        - wpm
      title: WebCertificate
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.WebCertV3
    DataServiceCert:
      example:
        age_seconds: 33
        approx_ip_geo:
          city: Austin
          country_code: US
          lat: 30.4548
          lon: -97.7664
          postal_code: '78729'
          state: TX
          time_zone: America/Chicago
        browser:
          full: Chrome 95.0.4638.69
          name: Chrome
          version:
            full: 95.0.4638.69
            major: '95'
            minor: '0'
            patch: '4638.69'
        created_at: '2021-11-12T22:06:44Z'
        domain: example.com
        event_duration_ms: 21110
        expires_at: '2021-11-15T22:06:44Z'
        form_input_method:
          - typing
          - autofill
        ip: 8.8.8.8
        is_framed: true
        is_mobile: false
        kpm: 68.2314
        operating_system:
          full: Mac OS X 10.15.7
          name: Mac OS X
          version:
            full: 10.15.7
            major: '10'
            minor: '15'
            patch: '7'
        page_id: 5d8ce3c9502b426f77001ae7
        page_url: https://www.example.com/contact.html
        parent_page_url: https://www.example.com/index.html
        user_agent: >-
          Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
          (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
        wpm: 77.1234
      properties:
        age_seconds:
          description: >-
            Number of seconds since the last user interaction with the
            certificate
          type: integer
        approx_ip_geo:
          description: Approximate geolocation based on IP
          nullable: true
          properties:
            city:
              description: City Name
              nullable: true
              type: string
            country_code:
              description: Country Code
              nullable: true
              type: string
            lat:
              description: Latitude
              nullable: true
              type: number
            lon:
              description: Longitude
              nullable: true
              type: number
            postal_code:
              description: Mailing address postal code
              nullable: true
              type: string
            state:
              description: State/Province or Political Subdivision abbreviation
              nullable: true
              type: string
            time_zone:
              description: Timezone name
              nullable: true
              type: string
          type: object
        browser:
          description: Browser parsed from the user-agent, when known
          nullable: true
          properties:
            full:
              description: >-
                A human-friendly version of the browser parsed from the
                user-agent
              type: string
            name:
              description: Browser name
              type: string
            version:
              description: Browser version
              properties:
                full:
                  description: A String containing the version
                  type: string
                major:
                  description: A String containing the major version
                  type: string
                minor:
                  description: A String containing the minor version
                  type: string
                patch:
                  description: A String containing the patch version
                  type: string
              type: object
          type: object
        created_at:
          description: >-
            The UTC ISO8601 formatted date and time when the TrustedForm script
            was loaded
          format: date-time
          type: string
        domain:
          description: The domain of the page url
          nullable: true
          type: string
        event_duration_ms:
          description: >-
            The time in milliseconds between when the script was loaded and when
            the most recent event was received
          nullable: true
          type: integer
        expires_at:
          description: >-
            The UTC ISO8601 formatted date and time when the claim period for
            the certificate will expire
          format: date-time
          type: string
        form_input_method:
          description: |2
              The detected input method or methods the consumer used to fill out the form

              * `autofill`: The form was filled out using browser autofill.
              * `paste`: The form was filled out pasting text.
              * `typing`: The form was filled out typing.
          items:
            enum:
              - autofill
              - paste
              - typing
            type: string
          nullable: true
          type: array
          uniqueItems: true
        ip:
          description: The consumer's public IP address
          nullable: true
          type: string
        is_framed:
          description: A boolean indicating that the form was displayed within an iframe
          nullable: true
          type: boolean
        is_mobile:
          description: >-
            A boolean indicating that the form was filled out on a mobile device
            or tablet, based on user-agent
          nullable: true
          type: boolean
        kpm:
          description: Approximate calculated words per minute
          nullable: true
          type: number
        operating_system:
          description: Operating system information parsed from the user-agent, when known
          nullable: true
          properties:
            full:
              description: >-
                A human-friendly version of the operating system information
                parsed from the user-agent
              type: string
            name:
              description: Operating system name
              type: string
            version:
              description: Operating system version
              properties:
                full:
                  description: A String containing the version
                  type: string
                major:
                  description: A String containing the major version
                  type: string
                minor:
                  description: A String containing the minor version
                  type: string
                patch:
                  description: A String containing the patch version
                  type: string
              type: object
          type: object
        page_id:
          description: The account based unique page id
          nullable: true
          type: string
        page_url:
          description: The URL of the page hosting the TrustedForm script
          format: url
          nullable: true
          type: string
        parent_page_url:
          description: The parent URL of the page hosting the TrustedForm script, if framed
          format: url
          nullable: true
          type: string
        user_agent:
          description: The consumer's browser user-agent
          nullable: true
          type: string
        wpm:
          description: Approximate calculated key presses per minute
          nullable: true
          type: number
      required:
        - age_seconds
        - approx_ip_geo
        - browser
        - created_at
        - domain
        - expires_at
        - event_duration_ms
        - is_framed
        - form_input_method
        - ip
        - kpm
        - is_mobile
        - operating_system
        - page_id
        - page_url
        - parent_page_url
        - user_agent
        - wpm
      title: DataServiceCert
      type: object
      x-struct: Elixir.ClaimerWeb.Schemas.DataServiceCert

````