Builder Prime · Authentication Profile
Builder Prime Authentication
Authentication
Builder Prime secures its APIs with apiKey across 1 declared security scheme, as derived from its OpenAPI definitions.
CompanyCRMHome ImprovementConstructionContractorsRemodelingSalesEstimatingProject ManagementLead ManagementField ServiceSaaS
Methods: apiKey
Schemes: 1
OAuth flows:
API key in: header
Security Schemes
OpenApiSecretKey apiKey
· in: header ()
Source
Authentication Profile
generated: '2026-08-08'
method: searched
source: https://www.builderprime.com/blog/open-api-documentation
docs: https://www.builderprime.com/blog/open-api-documentation
note: >-
Derived from the provider's own live "Open API Documentation" page plus
unauthenticated probes of the live API host. Builder Prime publishes no OpenAPI
definition, so there are no machine-readable securitySchemes to derive from —
this profile is assembled from published prose and observed 401 responses.
summary:
types: [apiKey]
api_key_in: [header]
oauth2_flows: []
multi_tenant: true
schemes:
- name: OpenApiSecretKey
type: apiKey
in: header
parameter_name: x-api-key
description: >-
A per-tenant secret key generated inside the Builder Prime application under
Admin > Integrations > Open API. The key is displayed exactly once at
generation time and cannot be retrieved again — a lost key must be
regenerated. Each key is given a name (typically the name of the sending
application) and a set of named permissions.
issuance:
self_service: true
requires_authenticated_tenant: true
path: Admin > Integrations > Open API > Generate New API Key
displayed_once: true
rotatable: true
rotation_method: generate-a-new-key
sources:
- https://www.builderprime.com/blog/open-api-documentation
x-evidence:
- what: header name x-api-key
confidence: medium
basis: >-
Named in the (now removed) Builder Prime knowledge-base articles
"Working with Clients through the API" and "Working with Employees through
the API", and independently used by the third-party n8n community node
n8n-nodes-builderprime, whose published source sends the tenant key in the
x-api-key header against https://{subdomain}.builderprime.com.
live_source_status:
url: https://help.builderprime.com/bp-knowledgebase/working-with-clients-through-the-api-1-0
http_status: 404
checked: '2026-08-08'
- what: an API key is required on every resource
confidence: high
basis: >-
Unauthenticated GET of the live resource paths returns HTTP 401 with the
body {"success":false,"errors":[{"code":"API_GENERAL","message":"Unauthorized:
Invalid key"}]}, while an unknown path on the same host returns a
structurally different 404 envelope. The 401 is therefore real
authentication, not a catch-all.
live_source_status:
url: https://developer.builderprime.com/api/employees/v1
http_status: 401
checked: '2026-08-08'
tenancy:
model: subdomain-per-customer
description: >-
The API host is the customer's own Builder Prime subdomain — the first label
of the URL used to sign in to the web app. Builder Prime instructs customers
to send that subdomain to the integrating application alongside the secret
key, so the tenant is carried by the host rather than by a header or a path
segment.
documented_pattern: https://{subdomain}.builderprime.com
example_given_by_provider: https://johnsfloors.builderprime.com
permissions:
model: named-permissions-per-key
description: >-
Keys are scoped by selecting named permissions when the key is generated.
Builder Prime does not publish the full permission list on any public page;
the values below are the ones named in public material.
observed:
- name: clients.create
description: Create new clients / leads.
source: https://www.builderprime.com/blog/open-api-documentation
confidence: high
- name: employees.read
description: Read a single employee and list employees.
source: >-
Named in the removed knowledge-base article "Working with Employees
through the API" (live URL now returns 404).
confidence: medium
complete: false
gap: >-
Builder Prime publishes no public permissions/scopes reference. The complete
list of key permissions is visible only inside an authenticated tenant on the
Admin > Integrations > Open API screen.
oauth2: false
openid_connect: false
mutual_tls: false
well_known_discovery: false