https://crm.joingreenwork.com/api/residential
https://crm.joingreenwork.com/api/commercial
curl -g \-X POST \-H "Content-Type: application/json" \-H "api-key: YOUR-API-KEY" \-d '{"query": "query Businesses($zipCode: String!, $services: [String!]!) { businesses(zipCode: $zipCode, services: $services) { id businessName greenworkScore } services }", "variables": {"zipCode": "94010", "services": []}}' \https://crm.joingreenwork.com/api/residential
type Business {id: String!greenworkScore: IntavgRating: FloatnumRatings: IntbusinessName: String!address: String!city: String!state: String!zipCode: String!phoneNumber: Stringemail: Stringwebsite: Stringlatitude: Floatlongitude: Floatservices: String # list of services (see enum below) separated by |certifications: String # list of certs separated by |DEI: String # list of DEI classifications separated by |isUnion: BooleanisInNetwork: Booleantiers: String!}enum SERVICES {# General service typesELECTRICAL = 'Electrical',HVAC = 'HVAC',PLUMBING = 'Plumbing',EFFICIENCY = 'Efficiency',# More specific service typesAIR_SOURCE_HEAT_PUMP = 'Air Source Heat Pump',HPWH = 'Heat Pump Water Heater',EV_CHARGERS = 'EV Chargers',PANEL_UPGRADE = 'Panel Upgrade',ENERGY_AUDIT = 'Energy Audit',INSULATION = 'Insulation',SOLAR = 'Solar',STORAGE = 'Storage',GROUND_SOURCE_HEAT_PUMP = 'Ground Source Heat Pump',INDUCTION_STOVES = 'Induction Stoves',# More specific service types, less relevantWATER_HEATERS = 'Water Heaters',WIND = 'Wind',CARPENTRY = 'Carpentry',ROOFING = 'Roofing',# Service size typesRESIDENTIAL = 'Residential',MULTIFAMILY_RESIDENTIAL = 'Multifamily',COMMERCIAL = 'Commercial & Industrial',EPC = 'EPC',}enum DEI {SMBE = 'State Minority Business Enterprise',SWBE = 'State Women Business Enterprise',DBE = 'Disadvantaged Business Enterprise',WOMAN_OWNED = 'Woman-owned business',MINORITY_OWNED = 'Minority-owned business',}type Query {# Query business within a 25mi radius of provided zipcode.# Services can be an empty array but must be present.# Multiple services are AND'd together in the query.# This returns the top 20 results.businesses(zipCode: String!, services: [String!]!, optionalServices: [String!]): [Business!]!# Query business within specified radius of provided lat/lng coordinates.# Services can be an empty array but must be present.# Multiple services are AND'd together in the query.# This returns the top 20 results.businessesByCoordinates(latitude: Float!, longitude: Float!, distance: Int!, services: [String!]!, optionalServices: [String!]): [Business!]!# Provides list of current services you can query on.services: [String!]!}# BETA: These endpoints are in development!extend type Mutation {# Send review/rating for a contractor in the system.# Ratings are out of 5.reviewContractor(id: String!, rating: Int!, review: String!, services: [String!], photoUrls: [String!]): Boolean# Send feedback to Greenwork about a Contractor.flagContractor(id: String!, notes: String!): Boolean# Send feedback to Greenwork about a result set.flagResultSet(query: String!, notes: String!): Boolean}
County map of known Air Source Heat Pump contractors per capita (density of contractors compared to county population)