Transactions Documentation
    • Dark
      Light
    • PDF

    Transactions Documentation

    • Dark
      Light
    • PDF

    Article summary

    Purpose

    The LightBox Transactions API provides access to historical and current transactions. LightBox updates this datasets weekly for ~2700 US counties across the nation. You will find up to 29 years of historical transactions at the property level. Both arm's length and non arm's length transactions are tracked.  

    Swagger: OAS 3.1 Specification

    Features

    • Historical transactions at the property level as of 2022, going back up to 29 years and growing every year. 
    • Arm's length and non arm's length transactions.
    • Includes date transfer, transfer price.
    • Seller name and buyer names.
    • Lender name.
    Related to the Assessment Record
    The transaction dataset is a tabular dataset without an associated geometry. A set of transactions are related to an assessment record by the LightBox assessment ID.

    Requirements

    The LightBox APIs are hosted in the cloud and therefore have no platform requirements. Application requirements include:
    • A network connection to the LightBox API server
    • Ability to parse JavaScript Object Notation (JSON) API responses
    • Secure HTTPS connection
    • LightBox authentication key
    • LightBox authentication key

    Connecting your account

    When your LightBox user account is created, a unique API key is also generated. The API key should be kept secret at all times and can only be used for API requests. The key is required in all API calls.

    To retrieve your unique API key:

    • Log in to the LightBox Developer Portal 
    • Select Apps from the menu bar
    • In your approved App, note your API key (under Consumer Key)

    Performing API requests

    All API requests must be made over secure HTTPS connections. Requests made over HTTP will fail.

    The base URL of the API server that all API requests will be made to is: https://api.lightboxre.com/ followed by a version number https://api.lightboxre.com/v1

    Authentication

    LightBox APIs uses a token-based authentication. All requests to the LightBox APIs must be authenticated. The token to be passed via an HTTP header with key 'x-api-key' and value <Your authentication token>

    Pass your unique API key in the authorization header of every LightBox API call.  LightBox uses this information to authenticate your identify and determine whether you have sufficient permissions to complete the operation. curl -X GET -H ‘x-api-key: (api_key)’  https://api.lightboxre.com/

    API Requests

    By Assessment ID

    Return historical transactions by the LightBox Assessment ID. A transaction happens at the assessment level so this is the logical ID to use when accessing transactions for a property. 

    GET /transactions/us/assessment/{id}

    Example requests

    curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/v1/transactions/us/assessment/0306F25KSXL0JZ4RTLPP99

    https://api.lightboxre.com/v1/transactions/us/assessment/0306F25KSXL0JZ4RTLPP99

    Parameters

    ParameterTypeDescriptionUsage
    idpathLightBox Assessment IDrequired

    Response

    Media type: application/json

    GET by Transaction ID

    This endpoint is to return a single transaction. This ID is returned on the response object so it can be stored and used at a future date.

    GET /transactions/us/{id}

    Example requests

    curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/v1/transactions/us/0806F25KSXL0JZ4RTLPP99

    https://api.lightboxre.com/v1/transactions/us/0806F25KSXL0JZ4RTLPP99 

    Parameters

    ParameterTypeDescriptionUsage
    idpathLightBox Transaction IDrequired

    Response

    Media type: application/json

    By County FIPS and Week

    This endpoint is to be used to return new arm's length transactions for a county for the last week. It allows a data client to update data between quarterly deliveries with current owner information.

    Pro Tip
    This should be run on Saturday night using the week notation for the previous Sunday.
    The system will query for all transactions with a week of that is >= the date entered.  
    There is a limit to how far one can go back
    This is a large dataset and has been tested to go back a month in time. If going back further than a month there can be possible timeout errors for very large counties.
    Page through the results
    Because there is a potential for a lot of transactions to be returned, we have implemented a paging system. See the parameters below. A max of 100 records can be returned at a time. 


    GET /transactions/us/{fips}/{weekOf}

    Example requests

    curl -X GET -H ‘x-api-key: (api_key)’ https://api.lightboxre.com/v1/transactions/us/06059/20220725

    https://api.lightboxre.com/v1/addresses/search?text=25481 Buckwood, Lake Forest, Ca

    Parameters

    ParameterTypeDescriptionUsage
    fipspathThe five-digit FIPS (Federal Information Processing Standards) code for the county that the property is located within (e.g., '06059').required
    weekOfpathA date string in this format yyyymmdd, 4 digit year, 2 digit month, 2 digit day, ex. 20220725. This endpoint will query records that have been added on or after this date, within the county noted by the FIPS code.

    Optional you can add just the word previous week which will generate the date for the Saturday of last week.
    required
    limitqueryThe number of records to limit returned.required
    offsetqueryOffset from the first record (Record 0).required
    filterqueryPRQL style query string to filter the results. See belowoptional
    Filter 
    At the moment we only support filtering in a single field (transactionType_code)

    Prql style filter to filter the results. Only field that we support at this time is . Primary use is to be able to pull different transactions type each week. The word filter must exist as the first word in the filter.

    Supported Fields to filter on:

    • transactiontype_code
    • landuse_normalized_code


    Examples

    • filter transactionType_code == 1
    • filter (transactionType_code == 1 || transactionType_code == 2)
    • filter (transactionType_code == 1 || transactionType_code == 2 || transactionType_code == 9)
    • filter transactionType_code == '2' filter (landuse_normalized_code == 1110 || landuse_normalized_code == 1100





    Response

    Media type: application/json

    API Response

    For each endpoint other than the tile requests the response will stay consistent. 

    {
      "$ref": "string",
      "$metadata": {
        "geogcs": {
          "epsg": "4326"
        },
        "currency": {
          "code": "AED"
        },
        "units": {
          "length": "ft",
          "area": "sqft"
        },
        "recordSet": {
          "limit": 100,
          "offset": 0,
          "totalRecords": 99
        }
      },
      "transactions": [
        {
          "$ref": "string",
          "apn": "string",
          "fips": "string",
          "id": "string",
          "assessmentId": "string",
          "buyer": {
            "name": "SMITH, FREDERICK; SMITH, MONICA",
            "names": [
              {
                "firstAndMiddle": "string",
                "last": "string",
                "code": "string"
              }
            ],
            "mailingAddress": {
              "streetAddress": "string",
              "locality": "string",
              "regionCode": "AL",
              "unit": "string",
              "unitPrefix": "string",
              "postalCode": "string",
              "postalCodeExt": "string",
              "countryCode": "US"
            },
            "vesting": {
              "code": "CR",
              "description": "null"
            }
          },
          "isArmsLength": true,
          "isBuilderSale": true,
          "isCashPurchase": true,
          "isConstructionLoan": true,
          "isEquityCreditLine": true,
          "isForeclosureSale": true,
          "isInterFamily": true,
          "isQuitClaim": true,
          "isMarketSale": true,
          "isReoSale": "Y",
          "isStandAloneRefi": true,
          "transferTax": {
            "city": 0,
            "county": 0,
            "total": 0
          },
          "pricePerArea": 0,
          "dateFiling": "2022-12-14",
          "dateNoValueTransfer": "2022-12-14",
          "dateTransfer": "2022-12-14",
          "document": {
            "number": "string",
            "type": "AA",
            "typeDescription": "Assignment of Sub Agreement of Sale (Hawaii)"
          },
          "partialInterestTransfered": "95%",
          "interestRate": {
            "rate": 0,
            "code": "ADJ",
            "description": "Adjustable Rate"
          },
          "legal": {
            "description": "string",
            "cityTownshipMunicipality": "string",
            "district": "string",
            "landLot": "string",
            "lotCode": "M",
            "phase": "14",
            "sectionTownshipRange": "SW4SW4 S26T19NR16E",
            "unit": "11"
          },
          "lender": {
            "address": {
              "streetAddress": "string",
              "locality": "string",
              "regionCode": "string",
              "unit": "string",
              "unitPrefix": "string",
              "postalCode": "string",
              "postalCodeExt": "string",
              "countryCode": "US"
            },
            "isCreditLine": true,
            "dbaName": "FREEDOM MORTGAGE CORPORATION",
            "name": "DOMESTIC BANK",
            "type": {
              "code": "B",
              "description": "Bank"
            }
          },
          "loan": {
            "currentSale": {
              "dateTransfer": "2022-12-14",
              "book": "string",
              "page": "string",
              "documentNumber": "string"
            },
            "dueDate": "2022-12-14",
            "term": {
              "months": 120,
              "years": 0
            },
            "type": {
              "code": "string",
              "description": "string"
            },
            "value": {
              "first": 0,
              "second": 0
            }
          },
          "multipleApnFlag": {
            "code": "2",
            "description": "2 APN's being conveyed",
            "count": "2"
          },
          "propertyUseCode": "SFR",
          "recorder": {
            "book": "string",
            "page": "string",
            "mapReference": "MB 739 PG 12-19"
          },
          "reo": {
            "flag": "Y",
            "inOut": "1",
            "inOutDescription": "In"
          },
          "residentialIndicator": 0,
          "salePrice": {
            "code": "2",
            "description": "Full amount stated on Document.",
            "value": 0
          },
          "seller": {
            "names": {
              "firstAndMiddle": "string",
              "last": "string",
              "code": "string"
            },
            "code": "AB",
            "description": "ALTERNATE BENEFICIARY",
            "name": "string"
          },
          "transactionType": {
            "code": "string",
            "description": "string"
          },
          "siteAddress": {
            "streetAddress": "string",
            "locality": "string",
            "regionCode": "AL",
            "unit": "string",
            "unitPrefix": "string",
            "postalCode": "string",
            "postalCodeExt": "string",
            "countryCode": "US"
          },
          "trustDeedDocumentNumber": "string",
          "titleCompanyName": "string",
          "landUse": {
            "normalized": {
              "code": "string",
              "description": "string",
              "categoryCode": "string",
              "categoryDescription": "string"
            }
          }
        }
      ]
    }

    Field Dictionary

    FieldTypeDescription
    fipsstringFederal Information Processing Code for the State, as well as the Federal Information Processing Code for the county. The first two digits are the state code and the last three digits are the county code.
    idstringLightBox primary ID for this transaction record.
    assessmentIdstringLightBox ID for the related assessment record.
    buyer.namestringFull buyer name, including both names if two names exist.
    buyer.names[].firstAndMiddlestringThe first name and middle name (when present) without abbreviations, or first name and middle initial (if that is how it appears on the document).
    buyer.names[].laststringIf the last name is composed of two names, both are entered in the sequence they appear separated with a space.
    buyer.names[].codestringUsed to identify the nature of each grantee keyed from the recorded document.
    buyer.mailingAddress.streetAddressstringStreet address, which comprises street name, street directional prefix, street number, street suffix, unit type, and unit number (e.g., '125 Main Street S Unit 5'), of the buyer.
    buyer.mailingAddress.localitystringCity portion of the buyer address.
    buyer.mailingAddress.regionCodestringState portion of the buyer address.
    buyer.mailingAddress.unitstringUnit number of the buyer address.
    buyer.mailingAddress.unitPrefixstringUnit prefix of the buyer address.
    buyer.mailingAddress.postalCodestring5 digit zip code of the buyer address.
    buyer.mailingAddress.postalCodeExtstring4 digit zip code extension of the buyer address.
    buyer.mailingAddress.countryCodestringISO 3166 alpha-2 country code (e.g., 'US' for the United States).
    buyer.vesting.codestringThe vesting code, when present, indicates how the buyers took title to the subject property.
    buyer.vesting.descriptionstringThe vesting code description, when present, indicates how the buyers took title to the subject property.
    isArmsLengthbooleanThe sale was a residential resale, a residential new construction sale, or an insured non-residential grant deed.
    isBuilderSalebooleanResidential property sold by a builder.
    isCashPurchasebooleanIndicates the concurrent mortgage is for cash.
    isConstructionLoanbooleanIndicates the concurrent mortgage is a building/construction loan.
    isEquityCreditLinebooleanIndicates the concurrent mortgage is a home equity credit line.
    isForeclosureSalebooleanThe property was sold in foreclosure.
    isInterFamilybooleanIndicates the document is an inter-family transfer.
    isQuitclaimbooleanQuick claim sale.
    isMarketSalebooleanIndicates the document is a market sale.
    isReoSalebooleanY if this transaction was a Real Estate Owned (REO) sale. Real estate owned (REO) is property owned by a lender—usually a bank or government entity—after an unsuccessful sale at a foreclosure auction.
    isStandAlongRefibooleanIndicates the concurrent mortgage is a stand-alone second.
    transferTax.citynumberCity transfer tax. Only applies to cities that levy a city tax on real estate transactions.
    transferTax.countynumberCounty transfer tax. Generally appears in the form of a transfer tax stamp on the deed.
    transferTax.totalnumberIf the region has either a city and or county transfer tax this is the sum of the two.
    dateFilingstringThe original date of contract.
    dateNoValueTransferstring? Do we have this field
    dateTransferstringThe official recording date.
    document.numberstringSequential number assigned to documents at the time of recording.
    document.typestringType of the recorded document.
    document.typeDescriptionstringType description of the recorded document.
    partialInterestTransferedstringWhenever LESS than 100% ownership interest is transferred by the recorded instrument. For example, a partner sells only his 50% interest.  This also applies to transfers where the grantor's entire ownership interest is LESS than 100%.  For example, the grantor conveys all of his interest in the property, which is a 25% interest.  When the percentage is a single digit (1-9), it is preceded by a zero:  5% = 05.  When interest shown is a whole number plus a value after the decimal or fraction, it is rounded to the nearest whole number only:  75.5% = 76;  33 1/3% = 33, etc.
    interestRate.ratefloatWhen available, initial rate as given on the trust deed.
    interestRate.typestringInterest rate code.
    interestRate1.typeDescriptionstringInterest rate description.
    legal.descriptionstringNarrative description of the property as documented by the assessor.
    legal.cityTownshipMunicipalitystringThe jurisdiction in which the property is located.  May be “Unincorporated,” if applicable.
    legal.districtstringThe district in which the property is located.
    legal.landLotstringA large portion or tract of land in which the property is located.
    legal.lotCodestringIdentifies properties which include more than one lot or partial lots. (M='More than one lot',MP='Multiple w/a portion of one or more lots',P='Portion of a lot',B='Bank')
    legal.phasestringThe phase of a subdivision or tract development.
    legal.sectionTownshipRangestringLegal section, township, and range in which the property is located.
    legal.unitstringThe subdivision unit number.  Common for condominiums, townhomes, etc.
    lender.address.streetAddressstringLender street address.
    lender.address.localitystringLender city.
    lender.address.regionCodestringState portion of the lender address.
    lender.address.unitNumberstringUnit number of the lender address.
    lender.address.postalCodestring5 digit zip code of the lender address.
    lender.address.postalCodeExtstring4 digit zip code extension of the lender address.
    lender.address.countryCodestringCountry code of the lender address.
    lender.isCreditLinebooleanIndicates the mortgage is a home equity credit line.
    lender.dbaNamestringLender DBA Name.  'DBA' takes priority over 'C/O' if both are present.
    lender.namestringConcurrent lender beneficiary name.
    lender.type.DescriptionstringLender type code description.
    loan.currentSale.dateTransferstringShared Appreciation Mortgage (SAM)/Loan Current Sale - Recording Date.
    loan.currentSale.bookstringShared Appreciation Mortgage (SAM)/Loan Current Sale - Book Number
    loan.currentsale.pagestringShared Appreciation Mortgage (SAM)/Loan Current Sale - Page Number
    loan.currentSale.documentNumberstringShared Appreciation Mortgage (SAM)/Loan Current Sale - Document Number.
    loan.dueDatestringThe date the concurrent trust deed will be paid in full.
    loan.term.monthsnumberLoan term in months.
    loan.term.yearsnumberLoan term in years.
    loan.type.codestringIndicates the type of loan, if able to determine from the recorded document.
    loan.type.descriptionstringLoan type code description.
    loan.value.firstfloatFirst loan amount.
    loan.value.secondfloatSecond loan amount.
    mulitpleApnFlag.codestringIndicates if multiple APNs appear on the conveying instrument.
    mulitpleApnFlag.descriptionstringDescription of the Multiple APN Flag code.
    mulitpleApnFlag.countstringIndicates the number of APNs (2-9) appearing on the conveying instrument.  Left blank if only one parcel.
    propertyUseCodestringProperty use as indicated on the trust deed (mortgage) and/or attached rider.
    recorders.bookstringRecorder's book number. Some counties only use book & page reference without the document number, others may use only the document number.
    recorders.pagestringRecorder's page number. Some counties only use book & page reference without the document number, others may use only the document number.
    recorders.mapReferencestringStandardized to identify each portion. Multiples indicated with the ampersand (&), and ranges separated with a hyphen (-). Depending on the length of the Map Reference, spaces may be omitted.
    reo.flagstringReal estate owned flag.
    reo.inOutstringReal estate owned (REO) is property owned by a lender, usually a bank or government entity, after an unsuccessful sale at a foreclosure auction.
    reo.inOutDescriptionstringReal estate owned (REO) inOut description.
    residentalIndicatorstringIndicates residential use based on assessor's land use.
    salePrice.codestringSale price code.
    salePrice.descriptionstringSale price code description.
    salePrice.valuefloatSale price.
    seller.names[].firstAndMiddlestringFirst and middle name of the first seller.
    seller.names[].laststringLast name of the first seller.
    seller.names[].idCodestringUsed to identify the nature of each grantor keyed from the recorded document.
    seller.codestringSeller code.
    seller.descriptionstringSeller code description.
    seller.namestringSeller name, first and last.
    transactionType.codestringThe type of sale transaction. Example: non-arm's length transfer, residential resale.
    Values 1-11 see description and code values under the description.
    transactionType.descriptionstringThe description of the sale transaction type code in transactionType.code


            1 - Non-Arms length transactions WITH a valid TITLE COMPANY NAME (no accommodations)

            2  - Arms-length Residential transactions (Purchase/Resales)

            3  - New Construction residential transactions

            4  - HELOCS - both Purchase Money and Non-Purchase Money HELOCS

             5 - REFI LOANS and 2ND TRUST DEEDS (purchase and non-purchase money trust deeds).

             6 - REO and TRUSTEE DEEDS

             7 - RESALE PURCHASE MONEY LOANS (Subset of TRANSACTION TYPE 2)

             8 - CONSTRUCTION LOANS  both Purchase Money and Non-Purchase Money Loans (LOAN TYPE "B").

             9 - INSURED NON-RESIDENTIAL GRANT DEEDS

            10  - NEW RESIDENTIAL PURCHASE MONEY LOANS  - Subset of TRANSACTION TYPE 3

             11 - NON-RESIDENTIAL Mortgages (Purchase & non-purchase)


    siteAddress.streetAddressstringStreet address, which comprises street name, street directional prefix, street number, street suffix, unit type, and unit number (e.g., '125 Main Street S Unit 5').
    siteAddress.localtitystringThe city portion of the address (e.g., CHICAGO, ATLANTA, DENVER, etc.).
    siteAddress.postalCodestringPostal Code portion of the address (e.g 92675).
    siteAddress.postalCodeExtstringThe four-digit code of the address. Also referred to as the 'plus 4 code' and the 'add on code.' Used by the US Postal Service to identify a geographic segment within a five-digit postal ZIP code.
    siteAddress.regionCodestringThe two-letter state code of the address (e.g., CA, NV, WA, etc.).
    siteAddress.countryCodestringISO 3166 alpha-2 country code (e.g., 'US' for the United States).
    trustDeedDocumentNumberstringTrust Deed Document number assigned to the concurrent mortgage at the time of recording.
    titleCompanyNamestringName of title company which issues the certificate of title insurance. Taken from the deed and/or concurrent trust deed.
    landUse.normalized.codestringStandardized land use code.
    landUse.normalized.descriptionstringDescription of the standardized land use code in 'code.'
    landUse.normalized.categoryCodestringThe standardized land use code category code.
    landUse.normalized.categoryCodeDescriptionstringThe category description of the standardized land use code in 'categoryCode.'



    HTTP Error Codes

    HTTP Response status codes along with a brief summary of their commonly accepted usage. These status codes are returned by LightBox APIs for each request:
    200
    The request succeeded.
    201
    The object was created successfully
    202Accepted, no content
    204Successful, no content
    204
    The server has successfully fulfilled the request and that there is no additional content to send in the response payload body. Typically returned on a DELETE
    400
    One or more of the request parameters were invalid.
    401
    The client must authenticate itself to get the requested response. Note: This could also be due to your trial key has expired.
    404
    The server cannot find the requested resource. This can also mean that the endpoint is valid but the resource itself does not exist.
    429
    Too many requests were made in a short period of time, or you have exceeded your request-lot pool.
    500
    The server has encountered an error it does not know how to handle.
    503Service Unavailable.





    Was this article helpful?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.