EverReal
  • Introduction
  • Authentication
    • API ClientID and ClientSecret
    • Authentication limitations
  • Rate limiting
  • Helpers
    • Errors
    • Pagination
    • Formatting
  • How to guide
    • EverReal Data Import Process
      • Connect an Integration
      • Import Mappers
      • Ideal CSV Structure
      • Debug Imports
      • FAQ
    • Data import via GraphQL
  • Endpoints
    • Account users / members
    • Owners
      • Owners Query
      • Owners Mutation
    • Property Groups
      • Property Groups Query
      • Property Group Mutation
    • Properties
      • Properties Query
      • Properties Mutation
    • Units
      • Units Query
      • Units Mutation
    • Listing
      • Listing Query
      • Listing Mutation
    • Candidates
      • Candidates Query
      • Candidate Mutation
    • Messages
    • Contact Activites
    • Tenants
      • Tenants Query
      • Tenant Mutation
    • Contract
      • Contract Query
      • Contract Mutation
    • Contacts
      • Contact Mutation
      • Contact Query
    • Document management
      • Document management
      • Simple file upload
    • Tasks
      • Tasks Query
    • Protocols
      • Protocol Query
  • Webhooks
    • Owner Events
      • OWNER_CREATED
      • OWNER_UPDATED
      • OWNER_DELETED
    • Property Events
      • PROPERTY_CREATED
      • PROPERTY_UPDATED
      • PROPERTY_DELETED
    • Unit Events
      • UNIT_CREATED
      • UNIT_UPDATED
      • UNIT_DELETED
    • Listing Events
      • LISTING_ACTIVATED
      • LISTING_ARCHIVED
      • LISTING_UPDATED
      • LISTING_DEACTIVATED
      • LISTING_CREATED
      • LISTING_PUBLISHED_TO_CHANNEL
      • LISTING_UNPUBLISHED_FROM_CHANNEL
    • Candidates Events
      • CANDIDATE_PARSED
      • LISTING_CANDIDATE_APPLIED
    • Listing Contracting Events
      • LISTING_CONTRACT_FLOW_SIGNED
      • LISTING_CONTRACT_FLOW_PARTIALLY_SIGNED
      • LISTING_CONTRACT_FLOW_WITHDRAWN
      • LISTING_CONTRACT_FLOW_STARTED
    • Listing Scheduling Events
      • LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKING_REMOVED_CANDIDATE
      • LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKING_REMOVED_ADMIN
      • LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKED_CANDIDATE
      • LISTING_CANDIDATE_SCHEDULE_TIMESLOT_BOOKED_ADMIN
      • LISTING_CANDIDATE_SCHEDULE_NEW_TIMESLOTS_REQUESTED
      • LISTING_CANDIDATE_SCHEDULE_INVITED_VIEWING
    • Protocol Events
      • PROTOCOL_COMPLETED
  • Change log
    • Releases
      • Introducing Mappers
      • Enhancements for GraphQL
      • Enhancements for Querying
      • Enhancements for Webhooks
    • Upcoming
      • Introduced Querying Protocol in GraphQL
Powered by GitBook
On this page

Was this helpful?

  1. Endpoints
  2. Contract

Contract Query

Entity responsible for a contracting operations

PreviousContractNextContract Mutation

Last updated 1 year ago

Was this helpful?

To use EverReal playground is required to provide the Bearer token, read more in Master Data page

To understand what is necessary and how to use graphql, in Master Data page we explain what is necessary to do

type Query {
  contracts(input: ContractsFilterListPaging): [Contract]
}

type ContractTerms {
  rent: Float
  deposit: Float
  heatingCosts: Float
  utilityCosts: Float
  totalMonthlyRent: Float
  contractEndDate: Date
  contractStartDate: Date
}

type ContractData {
  terms: ContractTerms
}

type Contract {
  id: String
  startDate: Date
  endDate: Date
  contractFlowType: CONTRACT_FLOW_TYPE
  status: String
  candidate: Candidate
  units: [Unit]
  tenants: [Tenant]
  tenantFullNames: String
  versions: [JSON]
  contractData: ContractData
  contractDataString: String
  createdAt: DateTime
  updatedAt: DateTime
}

input ListContractFilter {
  id: String
  companyId: String
  propertyGroupId: String
  propertyId: String
  status: String
  from: Date
  to: Date
}

input ContractsFilterListPaging {
  filter: ListContractFilter
  paging: GraphPaging
  sort: GraphSorting
}

enum CONTRACT_FLOW_TYPE {
  VIRTUAL
  OFFLINE
  DOWNLOAD_UPLOAD
  ELECTRONIC_SIGNATURE_V2
  ELECTRONIC_SIGNATURE_QES
}
  query contracts($companyId: String, $propertyId: String, $status: String) {
    contracts(
      input: {
        paging: { take: 100, skip: 0 }
        filter: { companyId: $companyId, propertyId: $propertyId, status: $status }
      }
    ) {
      id
      contractDataString
        startDate
        endDate
        status
        unit {
            id
        }
        candidate {
            id
        }
        versions
        contractData {
            terms {
                rent
                deposit
                heatingCosts
                utilityCosts
                totalMonthlyRent
            }
        }
        contractDataString
        createdAt
    }
  }
curl --location --request POST 'https://acme.everreal.co/api/reporting/graphql' \
--header 'Authorization: Bearer ....' \
--header 'Content-Type: application/json' \
--header 'Cookie: accept-language=en-US' \
--data-raw '{"query":"  query contracts($companyId: String, $propertyId: String, $status: String) {\n    contracts(\n      input: {\n        paging: { take: 100, skip: 0 }\n        filter: { companyId: $companyId, propertyId: $propertyId, status: $status }\n      }\n    ) {\n      id\n      contractDataString\n        startDate\n        endDate\n        status\n        unit {\n            id\n        }\n        candidate {\n            id\n        }\n        versions\n        contractData {\n            terms {\n                rent\n                deposit\n                heatingCosts\n                utilityCosts\n                totalMonthlyRent\n            }\n        }\n        contractDataString\n        createdAt\n    }\n  }","variables":{"status":"CONTRACT_TERMINATED"}}'
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer ...");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "accept-language=en-US");

var graphql = JSON.stringify({
  query: "  query contracts($companyId: String, $propertyId: String, $status: String) {\n    contracts(\n      input: {\n        paging: { take: 100, skip: 0 }\n        filter: { companyId: $companyId, propertyId: $propertyId, status: $status }\n      }\n    ) {\n      id\n      contractDataString\n        startDate\n        endDate\n        status\n        unit {\n            id\n        }\n        candidate {\n            id\n        }\n        versions\n        contractData {\n            terms {\n                rent\n                deposit\n                heatingCosts\n                utilityCosts\n                totalMonthlyRent\n            }\n        }\n        contractDataString\n        createdAt\n    }\n  }",
  variables: {"status":"CONTRACT_TERMINATED"}
})
var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: graphql,
  redirect: 'follow'
};

fetch("https://acme.everreal.co/api/reporting/graphql", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));// Some code
Ideal CSV Structure