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

# Check verification job status

> Endpoint to get the status of a verification job.

Alternatively you can directly check the verification status of a contract with with chainId+address at `GET /v2/contract/{chainId}/{address}`



## OpenAPI

````yaml /smart-contract-verification-api.yaml get /v2/verify/{verificationId}
openapi: 3.1.0
info:
  version: 2.1.0
  title: Sourcify APIv2
  description: >-
    Welcome to the Sourcify's APIv2.


    Important differences between the deprecated legacy API and the new APIv2:

    - **Ticketing**: The verfication requests resolve into tickets/verification
    jobs. 
      - Previously the verification happened during the HTTP request, which resulted in timeouts if compilation took longer
    - **Standard JSON as default**: In the current design we take the standard
    JSON format as our main verification endpoint. Other methods such as
    "multi-file" or "single-file" should be handled by frontends or tooling to
    format into std-json. We still support verification with metadata at
    `/v2/verify/metadata`.

    - **Lean API**: We keep the number of endpoints minimal compared to v1. We
    won't have a session API. 

    - **Detailed contract response**: Prev. we only returned contract files of a
    contract. Now we can return details at `/contract/{chainId}/{address}`.


    By submitting source code for verification, you grant Sourcify (and the
    Argot Collective) a non-exclusive, worldwide, irrevocable, royalty-free
    licence to reproduce, store, and publicly display the submitted source code
    for the purposes of verification, archival, and public inspection.
  license:
    name: MIT
    url: https://github.com/argotorg/sourcify/blob/master/LICENSE
  contact:
    name: Sourcify
    url: https://sourcify.dev
    email: hello@sourcify.dev
servers:
  - url: https://sourcify.dev/server
    description: Production server
security: []
tags:
  - name: Contract Lookup
    description: API v2 - Tools and endpoints for looking up contract information
  - name: Verify Contracts
    description: API v2 - Submit a contract for verification
  - name: Verification Jobs
    description: API v2 - Check the status of a verification job
  - name: Other
    description: General server endpoints
paths:
  /v2/verify/{verificationId}:
    get:
      tags:
        - Verification Jobs
      summary: Check verification job status
      description: >-
        Endpoint to get the status of a verification job.


        Alternatively you can directly check the verification status of a
        contract with with chainId+address at `GET
        /v2/contract/{chainId}/{address}`
      operationId: verification-status
      parameters:
        - name: verificationId
          in: path
          description: >-
            Verification Job ID returned from the server for a verification
            request.
          required: true
          schema:
            type: string
            format: uuid
            pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
            minLength: 36
            maxLength: 36
            example: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: >-
            The verification job completed either with success or failure. This
            endpoint returns `200` even if the verification job fails. Check the
            `contract.match` field and `error` for verification statuses.


            If the job is not completed yet (i.e. pending), the `isJobCompleted`
            will be false.
          content:
            application/json:
              schema:
                type: object
                allOf:
                  - type: object
                    properties:
                      isJobCompleted:
                        type: boolean
                      verificationId:
                        type: string
                        format: uuid
                      error:
                        allOf:
                          - examples:
                              - customCode: no_match
                                message: >-
                                  The onchain and recompiled bytecodes don't
                                  match.
                                errorId: 1ac6b91a-0605-4459-93dc-18f210a70192
                                recompiledCreationCode: >-
                                  0x608060405234801561001057600080fd5b5060043610610036570565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735821220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033
                                recompiledRuntimeCode: >-
                                  0x608060405234801561001057600080fd5b5060043610610036570565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735821220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033
                                onchainCreationCode: >-
                                  0x608060405234801561001057600080fd5b5060043610610036570565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735821220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070034
                                onchainRuntimeCode: >-
                                  0x608060405234801561001057600080fd5b5060043610610036570565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735821220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070034
                                creationTransactionHash: >-
                                  0xb6ee9d528b336942dd70d3b41e2811be10a473776352009fd73f85604f5ed206
                            allOf:
                              - type: object
                                title: GenericErrorResponse
                                properties:
                                  customCode:
                                    type: string
                                    description: >-
                                      A string token to indicate the reason of
                                      the error
                                    example: unsupported_chain
                                  message:
                                    type: string
                                    description: The reasoning of the error
                                    example: >-
                                      The chain with chainId 3153212 is not
                                      supported for verification
                                  errorId:
                                    type: string
                                    format: uuid
                                required:
                                  - customCode
                                  - message
                                  - errorId
                                examples:
                                  - customCode: unsupported_chain
                                    message: >-
                                      The chain with chainId 9429413 is not
                                      supported
                                    errorId: 1ac6b91a-0605-4459-93dc-18f210a70192
                              - type: object
                                properties:
                                  recompiledCreationCode:
                                    type: string
                                    title: BytecodeString
                                    pattern: ^0x([0-9|a-f][0-9|a-f])*$
                                    example: >-
                                      0x608060405234801561001057600080fd5b5060043610610036570565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735821220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033
                                  recompiledRuntimeCode:
                                    type: string
                                    title: BytecodeString
                                    pattern: ^0x([0-9|a-f][0-9|a-f])*$
                                    example: >-
                                      0x608060405234801561001057600080fd5b5060043610610036570565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735821220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033
                                  onchainCreationCode:
                                    type: string
                                    title: BytecodeString
                                    pattern: ^0x([0-9|a-f][0-9|a-f])*$
                                    example: >-
                                      0x608060405234801561001057600080fd5b5060043610610036570565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735821220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033
                                  onchainRuntimeCode:
                                    type: string
                                    title: BytecodeString
                                    pattern: ^0x([0-9|a-f][0-9|a-f])*$
                                    example: >-
                                      0x608060405234801561001057600080fd5b5060043610610036570565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735821220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033
                                  creationTransactionHash:
                                    type: string
                                    title: Keccak256
                                    pattern: (\b0x[a-f0-9]{64}\b)
                                    example: >-
                                      0xb6ee9d528b336942dd70d3b41e2811be10a473776352009fd73f85604f5ed206
                                  errorData:
                                    type: object
                          - description: >-
                              Optional, when the verification fails for some
                              reason.
                      jobStartTime:
                        type: string
                        format: date-time
                      jobFinishTime:
                        type: string
                      compilationTime:
                        type: string
                        description: >-
                          Time it took to compile the contract on the server in
                          milliseconds.
                        example: '1333'
                      externalVerifications:
                        type: object
                        description: >-
                          Links to external verification status endpoints on
                          Etherscan-alike services.
                        properties:
                          etherscan:
                            type: object
                            description: >-
                              Status metadata for the verification job mirrored
                              on an external explorer API.
                            properties:
                              verificationId:
                                type: string
                                description: >-
                                  Identifier returned by the external verifier
                                  when the job was created.
                                example: >-
                                  x3ryqcqr1zdknhfhkimqmizlcqpxncqc6nrvp3pgrcpfsqedqi
                              error:
                                type: string
                                description: >-
                                  Error message returned by the external
                                  verifier. Present when the verification
                                  failed.
                                example: 'NOTOK: Max rate limit reached'
                              statusUrl:
                                type: string
                                format: uri
                                description: >-
                                  Direct URL to query the verification status
                                  from the explorer API.
                                example: >-
                                  https://api.etherscan.io/v2/api?chainid=1&module=contract&action=checkverifystatus&guid=x3ryqcqr1zdknhfhkimqmizlcqpxncqc6nrvp3pgrcpfsqedqi
                              explorerUrl:
                                type: string
                                format: uri
                                description: >-
                                  Direct URL to the block explorer page for the
                                  contract
                                example: >-
                                  https://etherscan.io/address/0x0D41E0B7bbdEBDBc684020dcb64ADe76C0338222#code
                          blockscout:
                            type: object
                            description: >-
                              Status metadata for the verification job mirrored
                              on an external explorer API.
                            properties:
                              verificationId:
                                type: string
                                description: >-
                                  Identifier returned by the external verifier
                                  when the job was created.
                                example: >-
                                  x3ryqcqr1zdknhfhkimqmizlcqpxncqc6nrvp3pgrcpfsqedqi
                              error:
                                type: string
                                description: >-
                                  Error message returned by the external
                                  verifier. Present when the verification
                                  failed.
                                example: 'NOTOK: Max rate limit reached'
                              statusUrl:
                                type: string
                                format: uri
                                description: >-
                                  Direct URL to query the verification status
                                  from the explorer API.
                                example: >-
                                  https://api.etherscan.io/v2/api?chainid=1&module=contract&action=checkverifystatus&guid=x3ryqcqr1zdknhfhkimqmizlcqpxncqc6nrvp3pgrcpfsqedqi
                              explorerUrl:
                                type: string
                                format: uri
                                description: >-
                                  Direct URL to the block explorer page for the
                                  contract
                                example: >-
                                  https://etherscan.io/address/0x0D41E0B7bbdEBDBc684020dcb64ADe76C0338222#code
                          routescan:
                            type: object
                            description: >-
                              Status metadata for the verification job mirrored
                              on an external explorer API.
                            properties:
                              verificationId:
                                type: string
                                description: >-
                                  Identifier returned by the external verifier
                                  when the job was created.
                                example: >-
                                  x3ryqcqr1zdknhfhkimqmizlcqpxncqc6nrvp3pgrcpfsqedqi
                              error:
                                type: string
                                description: >-
                                  Error message returned by the external
                                  verifier. Present when the verification
                                  failed.
                                example: 'NOTOK: Max rate limit reached'
                              statusUrl:
                                type: string
                                format: uri
                                description: >-
                                  Direct URL to query the verification status
                                  from the explorer API.
                                example: >-
                                  https://api.etherscan.io/v2/api?chainid=1&module=contract&action=checkverifystatus&guid=x3ryqcqr1zdknhfhkimqmizlcqpxncqc6nrvp3pgrcpfsqedqi
                              explorerUrl:
                                type: string
                                format: uri
                                description: >-
                                  Direct URL to the block explorer page for the
                                  contract
                                example: >-
                                  https://etherscan.io/address/0x0D41E0B7bbdEBDBc684020dcb64ADe76C0338222#code
                    required:
                      - isJobCompleted
                      - verificationId
                  - type: object
                    properties:
                      contract:
                        type: object
                        title: VerifiedContractMinimal
                        properties:
                          match:
                            type: string
                            enum:
                              - match
                              - exact_match
                              - null
                            title: VerificationStatusNullable
                          creationMatch:
                            type: string
                            enum:
                              - match
                              - exact_match
                              - null
                            title: VerificationStatusNullable
                          runtimeMatch:
                            type: string
                            enum:
                              - match
                              - exact_match
                              - null
                            title: VerificationStatusNullable
                          chainId:
                            type: string
                            title: ChainId
                            pattern: ^\d+$
                            minLength: 1
                            maxLength: 20
                            example: '11155111'
                          address:
                            type: string
                            title: Address
                            description: >-
                              Contract Address in hex string. Can be checksummed
                              or not (i.e. can contain capital letters)
                            pattern: (\b0x[a-fA-F0-9]{40}\b)
                            example: '0xDFEBAd708F803af22e81044aD228Ff77C83C935c'
                          verifiedAt:
                            type: string
                            format: date-time
                            example: '2024-07-24T12:00:00Z'
                          matchId:
                            type: string
                            example: '3266227'
                        required:
                          - match
                          - creationMatch
                          - runtimeMatch
                          - chainId
                          - address
              examples:
                Success:
                  value:
                    isJobCompleted: true
                    verificationId: 72d12273-0723-448e-a9f6-f7957128efa5
                    jobStartTime: '2024-07-24T11:00:00Z'
                    jobFinishTime: '2024-07-24T12:00:00Z'
                    compilationTime: '1333'
                    contract:
                      match: match
                      creationMatch: match
                      runtimeMatch: match
                      chainId: '11155111'
                      address: '0xDFEBAd708F803af22e81044aD228Ff77C83C935c'
                      verifiedAt: '2024-07-24T12:00:00Z'
                      matchId: '3266227'
                Pending:
                  value:
                    isJobCompleted: false
                    verificationId: 72d12273-0723-448e-a9f6-f7957128efa5
                    jobStartTime: '2024-07-24T12:00:00Z'
                    contract:
                      match: null
                      creationMatch: null
                      runtimeMatch: null
                      chainId: '11155111'
                      address: '0xDFEBAd708F803af22e81044aD228Ff77C83C935c'
                Error:
                  value:
                    isJobCompleted: true
                    verificationId: 249c2f4b-af6c-46a7-a72e-d079da70ac0e
                    jobStartTime: '2025-05-20T07:24:00Z'
                    jobFinishTime: '2025-05-20T07:24:08Z'
                    contract:
                      match: null
                      creationMatch: null
                      runtimeMatch: null
                      chainId: '31337'
                      address: '0x5FbDB2315678afecb367f032d93F642f64180aa3'
                    error:
                      customCode: compiler_error
                      message: >-
                        Compile error.
                        [{"component":"general","errorCode":"2314","formattedMessage":"ParserError:
                        Expected ';' but got '{'\n -->
                        project:/contracts/Storage.sol:9:17:\n  |\n9 | contrat
                        Storage {\n  |                
                        ^\n\n","message":"Expected ';' but got
                        '{'","severity":"error","sourceLocation":{"end":158,"file":"project:/contracts/Storage.sol","start":157},"type":"ParserError"}]
                      errorId: f319b7fc-0286-4c23-bf1f-75996419a2ce
                      onchainRuntimeCode: >-
                        0x6080604052348015600f57600080fd5b506004361060325760003560e01c80632e64cec11460375780636057361d146051575b600080fd5b603d6069565b6040516048919060c2565b60405180910390f35b6067600480360381019060639190608f565b6072565b005b60008054905090565b8060008190555050565b60008135905060898160e5565b92915050565b60006020828403121560a057600080fd5b600060ac84828501607c565b91505092915050565b60bc8160db565b82525050565b600060208201905060d5600083018460b5565b92915050565b6000819050919050565b60ec8160db565b811460f657600080fd5b5056fea264697066735822122005183dd5df276b396683ae62d0c96c3a406d6f9dad1ad0923daf492c531124b164736f6c63430008040033
                      creationTransactionHash: >-
                        0xdd419b049534d2ead35de292ce73f3a9d9ecad33cdc1da1cae1d9fa3a86c74e1
                      errorData:
                        compilerErrors:
                          - component: general
                            errorCode: '2314'
                            formattedMessage: |+
                              ParserError: Expected ';' but got '{'
                               --> project:/contracts/Storage.sol:9:17:
                                |
                              9 | contrat Storage {
                                |                 ^

                            message: Expected ';' but got '{'
                            severity: error
                            sourceLocation:
                              end: 158
                              file: project:/contracts/Storage.sol
                              start: 157
                            type: ParserError
        '404':
          description: The job is not found with this ID
          content:
            application/json:
              schema:
                type: object
                title: GenericErrorResponse
                properties:
                  customCode:
                    type: string
                    description: A string token to indicate the reason of the error
                    example: unsupported_chain
                  message:
                    type: string
                    description: The reasoning of the error
                    example: >-
                      The chain with chainId 3153212 is not supported for
                      verification
                  errorId:
                    type: string
                    format: uuid
                required:
                  - customCode
                  - message
                  - errorId
                examples:
                  - customCode: unsupported_chain
                    message: The chain with chainId 9429413 is not supported
                    errorId: 1ac6b91a-0605-4459-93dc-18f210a70192
              examples:
                Example 1:
                  value:
                    customCode: job_not_found
                    message: >-
                      The verification job with id
                      461157eb-e4ea-4c5f-9aec-04c56924fd96 was not found
                    errorId: 1ac6b91a-0605-4459-93dc-18f210a70192

````