How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Fixflo API v2

The Fixflo v2 REST API, described by a publicly downloadable OpenAPI 3.0 document on the Fixflo Stoplight developer portal. It exposes the repairs and maintenance domain — issues and issue drafts, properties, blocks and estates, agencies, agents, brands and teams, landlords, leaseholders, tenants and customers, contractors and contractor networks, assets and warranties, cost codes, service programmes, service agreements and service events, jobs, custom field configuration and webhook subscriptions. Authentication is a bearer token issued inside a Fixflo account (documented as OAuth2-aligned but deliberately not a full OAuth2 implementation), and a separate OpenID Connect discovery document is served anonymously at api.fixflo.com. Production calls are made against the customer's own subdomain (https://[subdomain].fixflo.com/api/v2); the published server is the shared sandbox. Rate limiting is documented as not below 500 requests per minute, returning HTTP 429. Use of the API requires the signed Fixflo Application Developer and API Licence Agreement.

Fixflo API v2 is published by Fixflo on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Agents, Agency, Asset, Block, and Cost code. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, a getting-started guide, authentication docs, and rate-limit docs.

This API exposes 165 operations across 135 paths, organized into 24 resource areas, and defines 67 schemas. It is described by OpenAPI 3.0.0, at version 2.0.

Requests are made against 2 base URLs: https://api-sandbox.fixflo.com/api/v2, https://plus.dev.fixflo.com/api/v2.

165 operations 135 paths 67 schemas 5 DELETE89 GET1 OPTIONS68 POST2 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
2.0
Base URL
https://api-sandbox.fixflo.com/api/v2
Authentication
HTTP Bearer
Contact
Terms of Service
Resource Areas
24

Authentication & Security 1

Fixflo API v2 declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (Bearer). By default, every request must be authenticated.

Paths & Operations 165

Across 135 paths, the API surfaces 165 operations — 5 DELETE, 89 GET, 1 OPTIONS, 68 POST, 2 PUT. They span 24 resource areas, including Agent, Block, Cost code, Brand, Contractor, Estate, FaultTree, Issue, and 16 more. Each is listed below with its method, path, parameters, and response codes.

Agent 4
POST
/Agent
Agent
post-agent body → 200
GET
/Agent
Agent
get-agent 3 params → 200
POST
/Agent/{Id}/Brand
Agent / brand
post-Agent-Id-Brand 2 params body → 200
GET
/Agents
Agents
get-Agents 2 params → 200201
Block 7
GET
/Block
Block
get-Block 2 params → 200
POST
/Block
Block
post-Block body → 200
GET
/Blocks
Blocks
get-blocks 3 params → 200
GET
/Block/{Id}/Tags
Block / tags
get-Block-Id-Tags 1 param → 200
POST
/Block/{Id}/Tags
Block / tags
post-block-Id-Tags 1 param body → 200
GET
/Block/{Id}/Brand
Block / brand
get-Block-id-Brand 1 param → 200
POST
/Block/{Id}/Brand
Block / brand
post-Block-id-Brand 1 param body → 200
Cost code 3
GET
/CostCode
Cost code
get-costcode 3 params → 200
POST
/CostCode
Cost code
post-CostCode body → 200
GET
/CostCodes
Cost codes
get-costcodes 7 params → 200
Brand 2
GET
/Brand/{BrandId}
Brand
get-brand 1 param → 200
GET
/Brands
Brands
get-brands 2 params → 200
Contractor 5
GET
/Contractor/{id}
Contractor
get-contractor 3 params body → 200
POST
/Contractor
Contractor
post-Contractor body → 200
POST
/Contractor/{Id}/Brand
Contractor brand
post-Contractor-Id-Brand 1 param body → 200
GET
/Contractors
Contractors
get-contractors 3 params → 200
GET
/Contractor/Services
Contractor / services
get-contractor-services → 200
Estate 3
GET
/Estate/{id}
Estate
get-estate 2 params → 200
POST
/Estate
Estate
post-estate body → 200
GET
/Estates
Estates
get-estates 3 params → 200
FaultTree 1
GET
/FaultTree/Walk/{id}
Fault tree walk
get-faulttree-walk 1 param → 200
Issue 11
GET
/Issue/{Id}
Issue
get-Issue 1 param body → 200
POST
/Issue/
Issue
post-Issue body → 200
POST
/Issue/{Id}/ExternalRef
Issue / externalref
post-Issue-externalref 1 param body → 200
GET
/Issues
Issues
get-issues 11 params → 200
GET
/Issue/{Id}/Report
Issue / report
get-issue-id-report 1 param → 200
GET
/Issues/JobAwarded
Issue / job awarded
get-issues-jobawarded 1 param → 200
GET
/Issues/JobCompleted
Issue / job completed
get-issues-jobcompleted 1 param → 200
GET
/Issues/Closed
Issues / closed
get-issues-closed → 200
GET
/Issue/{issueId}/quotes
Issue / quotes
get-Issue-issueId-quotes 1 param → 200
GET
/Issue/{Id}/Tags
Issue / tags
get-Issue-Id-Tags 1 param → 200
POST
/Issues/Merge
Merge Issues
Merge body → 200
Issue draft 10
POST
/IssueDraft/Commit
Commits an IssueDraft
post-IssueDraft-Commit body → 200
GET
/IssueDraft
Issue draft
get-issuedraft 1 param → 200
POST
/IssueDraft
Issue draft
post-IssueDraft body → 200
GET
/IssueDraft/{id}/IssueDraftMedia
Issue draft / issue draft media
get-issuedraftmedia 2 params → 200
POST
/IssueDraft/Delete
Issue draft
post-IssueDraft-Delete body → 200
GET
/IssueDraftMedia
Issue draft media
get-issuedraftmedia-Id → 200
POST
/IssueDraftMedia
Issue draft media
post-IssueDraftMedia-Id body → 200
GET
/IssueDraft/{Id}/Assets
Issue draft assets
get-issuedraft-asset-Id 2 params → 200
POST
/IssueDraft/{Id}/Assets
Issue draft assets
post-issuedraft-asset-Id 1 param body → 200
GET
/IssueDraftMedia/{Id}/Download
Issue draft media
get-issuedraftmedia-Id-download 1 param → 200
Operations 1
GET
/Job/{id}
Job
get-job-id 1 param → 200
Landlord 12
GET
/Landlord
Landlord
get-landlord → 200
POST
/Landlord
Landlord
post-Landlord body → 200
GET
/Landlord/{id}/Brand
Landlord / brand
get-landlord-id-brand 1 param → 200
POST
/Landlord/{id}/Brand
Landlord / brand
landlord-brand-post 1 param body → 200
GET
/Landlords
Landlords
get-landlords 3 params → 200
GET
/LandlordProperty
Landlord property
get-landlordproperty 3 params → 200
POST
/LandlordProperty
Landlord property
post-LandlordProperty body → 200
GET
/LandlordPropertyJoin
Landlord property external
get-landlordpropertyJoin 5 params → 200
POST
/LandlordPropertyJoin
Landlord property external
post-LandlordPropertyJoin body → 200
GET
/Landlord/{LandlordId}/LandlordProperties
Landlord / landlord properties
get-landlord-LandlordId-landlordproperties 1 param → 200
POST
/LandlordProperty/Delete
Landlord property / delete
post-LandlordProperty-Delete body → 200
POST
/LandlordPropertyJoin/Delete
Landlord property external/ delete
post-LandlordPropertyJoin-Delete body → 200
Leaseholder 12
POST
/LeaseholderPropertyJoin/Delete
Leaseholder property external/ delete
post-LeaseholderPropertyJoin-Delete body → 200
GET
/LeaseholderPropertyJoin
Leaseholder property external
get-LeaseholderpropertyJoin 5 params → 200
POST
/LeaseholderPropertyJoin
Leaseholder property external
post-LeaseholderPropertyJoin body → 200
GET
/LeaseholderPropertyJoin/Search
Leaseholder property search
get-leaseholderpropertyjoin-search 1 param → 200404
GET
/Leaseholder/{id}/Brand
Leaseholder / brand
get-leaseholder-brand 1 param → 200
POST
/Leaseholder/{id}/Brand
Leaseholder / brand
post-Leaseholder-id-Brand 1 param body → 200
GET
/Leaseholder
Leaseholder
get-leaseholder 3 params → 200
POST
/Leaseholder
Leaseholder / save
post-Leaseholder body → 200
GET
/Leaseholders
Leaseholders
get-leaseholders 3 params → 200
GET
/LeaseholderProperty
Leaseholder property
get-leaseholderproperty 3 params → 200
GET
/Leaseholder/{LeaseholderId}/LeaseholderProperties
Leaseholder / leaseholder properties
get-leaseholder-leaseholderproperties 2 params → 200
POST
/LeaseholderProperty/Delete
Leaseholder property / delete
get-leaseholderproperty-delete body → 200
Property 18
GET
/Property/{Id}/Addresses
Property / addresses
get-property-id-addresses 2 params → 200
GET
/Property
Property
get-property 2 params → 200
POST
/Property
Property / save
post-property body → 200
GET
/Property/{Id}/Issues
Property / issues
get-property-Id-issues 4 params → 200
GET
/Property/Issues
Property / issues
get-property-Issues?externalPropertyRef=-ExternalPropertyRef 4 params → 200
GET
/Property/{Id}/Tags
Property / tags
get-Property-Id-Tags 1 param → 200
POST
/Property/{Id}/Tags
Property / tags
post-property-Id-Tags 1 param body → 200
GET
/Property/{Id}/Notes
Property / notes
get-Property-Id-Notes 1 param → 200404
POST
/Property/{Id}/Notes
Property / notes
post-property-Id-Notes 1 param body → 200404409
DELETE
/Property/{Id}/Notes
Property / notes
delete-Property-PropertyId-Notes 1 param → 200404
GET
/Property/{Id}/Tenants
Property / tenants
get-property-id-tenants 1 param → 200
GET
/Property/{PropertyId}/LandlordProperties
Property / landlord properties
get-property-propertyId-landlordproperties 2 params → 200
GET
/PropertyAddress/{Id}
Property address
get-propertyaddress-Id 1 param → 200
POST
/PropertyAddress/Merge
Property address / merge
post-propertyaddress-merge body → 200
POST
/PropertyAddress/Split
Property address / split
post-propertyaddress-split body → 200
GET
/PropertyAddress/Search
Property address / search
get-propertyaddress-search 5 params → 200
POST
/Property/UpdateAddress
Property / update address
post-Property-UpdateAddress body → 200
GET
/Property/Search
Property / search
get-Property-Search 9 params → 200
Service programme definition 3
GET
/ServiceProgrammeDef
Service programme definition
get-serviceprogrammedef 1 param → 200
POST
/ServiceProgrammeDef
Service programme definition
post-serviceprogrammedef body → 200
GET
/ServiceProgrammeDefs
Service programme definition
get-serviceprogrammedefs?pg=-pg-&keyword=-keyword-&IsDisabled=-isDisabled 3 params → 200
Service Programme 3
GET
/ServiceProgramme/{Id}
Service programme by Id
get-serviceprogramme 2 params → 200
GET
/ServiceProgrammes
Service programmes by Agency
get-serviceprogrammes 8 params → 200
GET
/Property/{propertyId}/ServiceProgrammes
Service programmes by Property
get-serviceprogrammes-by-property 5 params → 200
Service Event 9
GET
/ServiceEvent/{id}
Service event by Id
get-ServiceEvent 1 param → 200
GET
/ServiceEvents
Service events by Agency
get-ServiceEvents 15 params → 200
GET
/ServiceEvent/{id}/Medias
Service event media
get-ServiceEvent-Media 2 params → 200
POST
/Property/{propertyId}/ServiceProgramme/{serviceProgrammeId}/ServiceEvent
Create Service Event
post-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvent 3 params body → 200
GET
/Property/{propertyId}/ServiceProgramme/{serviceProgrammeId}/ServiceEvents
Get Service Events by service programme id
get-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvents 2 params → 200
GET
/Property/{propertyId}/ServiceProgramme/{serviceProgrammeId}/ServiceEvent/{serviceEventId}
Get Service Event By Property and Service Programme
get-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvent-serviceEventId 3 params → 200
POST
/Property/{propertyId}/ServiceProgramme/{serviceProgrammeId}/ServiceEvent/{serviceEventId}
Update Service Event
post-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvent-serviceEventId 3 params body → 200
OPTIONS
/Property/{propertyId}/ServiceProgramme/{serviceProgrammeId}/ServiceEvent/{serviceEventId}
Your OPTIONS endpoint
options-Property-propertyId-ServiceProgramme-serviceProgrammeId-ServiceEvent-serviceEventId 3 params → 200
POST
/Property/{propertyId}/ServiceProgramme/{serviceProgramme}/ServiceEvent/Complete
Complete Service Event
post-Property-propertyId-ServiceProgramme-serviceProgramme-ServiceEvent-Complete 2 params → 200
Team 3
GET
/Team
Team
get-team 1 param → 200
POST
/Team
Team
post-team body → 200
GET
/Teams
Teams
get-teams?pg=-pg 1 param → 200
Tenant 9
GET
/Tenant
Tenant
get-tenant 3 params → 200
POST
/Tenant
Tenant
post-Tenant body → 200
POST
/Tenant/{id}/Brand
Tenant / brand
post-tenant-id-brand 1 param body → 200
GET
/Tenants
Tenants
get-tenants 3 params → 200
GET
/Tenant/{Id}/Properties
get-Tenant-Id-Properties 1 param body → 200
DELETE
/Tenant/{Id}/Property/{PropertyId}
delete-Tenant-Id-Property-PropertId 2 params → 200
GET
/Tenant/{Id}/Property/{PropertyId}
get-Tenant-Id-Property-PropertyId 2 params body → 200
POST
/Tenant/{Id}/Property
Post Tenant Id Property
post-Tenant-Id-Property 2 params body → 200
POST
/Tenant/{Id}/Anonymise
Post Tenant Id Anonymise
post-Tenant-Id-Anonymise 2 params body → 200
Warranty 3
POST
/Warranty/Add
Warranty / add
post-warranty-add body → 200
POST
/Warranty/Save
Warranty / save
post-warranty-save body → 200
POST
/Warranty/{id}/Delete
Warranty / delete
post-warranty-id-delete 1 param → 200
Webhook 4
GET
/Webhooks
Webhooks
get-webhooks → 200
GET
/Webhook/Activity
Webhooks
get-webhook-activity 3 params → 200
POST
/Webhook/Subscribe
Webhook / subscribe
get-webhook-subscribe body → 200
DELETE
/Webhook/Unsubscribe
Webhook / unsubscribe
get-webhook-unsubscribe 1 param → 200
Contractor networks 29
POST
/Issue/{issueid}/jobjobber
Jobber
post-Issue-issueid-jobjobber 1 param body → 200
GET
/Issue/{issueid}/jobcompletiondetails
Completion details
get-Issue-issueid-jobcompletiondetails 1 param → 200
POST
/Issue/{issueid}/jobcompletiondetails
Completion details
post-Issue-issueid-jobcompletiondetails 1 param body → 200
POST
/issue/{issueid}/completiondoc
Completion document / Add
post-job-completion-document 1 param body → 200
GET
/issue/{issueid}/completiondoc/{mediaid}
Completion document
get-job-completion-document 2 params → 200
POST
/issue/{issueid}/completiondoc/{mediaid}
Completion document / Save
post-issue-issueid-completiondoc-mediaid 2 params body → 200
DELETE
/issue/{issueid}/completiondoc/{mediaid}/delete
Completion document
delete-job-completion-document 2 params → 200
GET
/issue/{issueid}/completiondocs
Completion documents
get-job-completion-documents 1 param → 200
POST
/Issue/{issueId}/completioncertificatedoc
Completion certificate document
post-Issue-issueId-completioncertificatedoc 1 param body → 200
GET
/Issue/{issueId}/completioncertificatedoc/{mediaId}
Completion certificate document
get-Issue-issueId-completioncertificatedocument-mediaId 2 params → 200
DELETE
/Issue/{issueId}/completioncertificatedoc/{mediaId}/delete
Completion certificate document
delete-Issue-issueId-completioncertificatedoc-mediaId-delete 2 params → 200
GET
/issue/{issueid}/invoicedetails
Invoice details
get-invoice-details 1 param → 200
POST
/issue/{issueid}/invoicedetails
Invoice details
post-issue-issueid-invoicedetails 1 param body → 200
POST
/issue/{issueid}/submitinvoice
Invoice / submit
submit-invoice 1 param body → 200
POST
/Issue/{issueId}/quote
Quote
post-Issue-issueId-Quote 1 param body → 200
POST
/Issue/{issueId}/quote/{quoteId}
Amend quote
post-Issue-issueId-amendquote-quoteId 2 params body → 200
POST
/Issue/{issueId}/declinetoquote
Decline to quote
post-Issue-issueId-declinetoquote 1 param → 200
POST
/Issue/{issueId}/declinejob
Decline job
post-Issue-issueId-declineJob 1 param body → 200
POST
/Issue/{issueId}/appointment
Appointment
post-Issue-issueId-appointment 1 param body → 200
PUT
/Issue/{issueId}/appointment/{appointmentId}/cancel
Cancel Appointment
put-Issue-issueId-appointment 2 params body → 200
POST
/Issue/{issueId}/createfurtherworks
Create Further Works
post-Issue-issueId-createfurtherworks 1 param body → 200
POST
/Issue/{issueId}/quotefurtherworks
Quote for Further Works
post-Issue-issueId-quotefurtherworks 1 param body → 200
POST
/Issue/{issueId}/quoteinstead
Quote instead
post-Issue-issueId-quoteinstead 1 param body → 200
POST
/Issue/{issueId}/contractornetworkcomment
Contractor Network Comment
post-Issue-issueId-contractornetworkcomment 1 param body → 200
GET
/Customers
Customers
get-Customer-Customers 1 param → 200
GET
/Customer/{Id}
Customer
get-Customer-Id 1 param → 200
POST
/ServiceEvent/CreateRemedial
Raise Remedial
post-ServiceEvent-CreateRemedial body → 200
GET
/Issue/{Id}/Comments
Issue comments
get-Issue-Id-Comments 4 params → 200
POST
/Issue/{issueId}/Comment
Issue comment
post-Issue-Id-Comment 1 param body → 200
Agency 5
GET
/Agencies
Agencies
get-Agencies 1 param → 200
GET
/Agency/{id}
Agency
get-Agency 1 param → 200
POST
/Agency
Agency / add
post-Agency body → 200
GET
/Agency/{id}/SetupIntegrationTemplates
Setup Agency Integration Templates
SetupAgencyIntegrationTemplates 1 param → 204
GET
/Agency/Settings
Get Agency Settings
get-Agency-Settings → 200
Asset 4
GET
/Assets
Search assets
get-Assets 8 params → 200
POST
/Asset
Create asset
post-Asset body → 201400
GET
/Asset/{id}
Get asset by id
get-Asset-id 2 params → 200
PUT
/Asset/{id}
Update asset
put-Asset-id 1 param body → 200404
Media 4
GET
/Medias/PropertyCertificate
Media Search
get-Medias 7 params body → 200
GET
/Media/PropertyCertificate/{Id}
Your GET endpoint
get-Media 1 param → 200
POST
/Media/PropertyCertificate/{Id}
This can be used to update: DocumentExpiryDate DocumentStartDate ShortDescription
post-Media-PropertyCertificate-Id 1 param body → 200
GET
/Media/{Id}/Download
Media download
get-Media-Id-Download 1 param → 200

Schemas 67

The contract defines 67 schemas that model the data the API accepts and returns. The most detailed are Issue (41 properties), Job (29 properties), ServiceEvent (22 properties), IssueDraft (21 properties). Each schema is shown below with its type and property counts.

AdditionalDetail
object
Some issue faults request additional detail. For example, if there is problem with an appliance the make and model of the appliance will be asked for. These ad…
2 properties
AgencySettings
object
2 properties
AddJobberDetails
object
Used by contractor networks only to add a jobber (contractor) to their assigned job
2 properties
Address
object
6 properties
AssignedAgent
object
8 properties
Block
object
18 properties
Brand
object
2 properties
Contractor
object
17 properties
ContractorCertification
object
3 properties
ContractorService
object
3 properties
CostCode
object
7 properties
Envelope
object
This object is used to carry/return responses following post operations.
4 properties
Estate
object
6 properties
FaultTree
object
3 properties
InvoiceDetails
object
This object is for use by contractor networks for submitting invoice details
4 properties
Issue
object
41 properties
IssueDraft
object
This DTO provides support for the creation and update of draft issues. A use case might be where a 3rd party system creates new issues on behalf of an agency.…
21 properties 1 required
IssueDraftMedia
object
This DTO is used in conjunction with Fixflo.WebApi.V2.DTO.IssueDraftMedia to support the uploading of media (documents and images)
6 properties
IssueDraftAsset
object
Represents a pending link between a Fixflo asset and an issue. When the issuedraft is published any issueDraftAssets will be converted to IssueAssets and linke…
3 properties
IssueSummary
object
This DTO (data transfer object) provides summary information of issues.
8 properties
Job
object
29 properties
Jobber
object
This is an object in use only for contractor networks for assigning a jobber to a job
2 properties
JobCompletionDetails
object
This is an object in use only for contractor networks for completing jobs
4 properties
Landlord
object
17 properties
LandlordProperty
object
7 properties
LandlordPropertyJoin
object
4 properties
LeaseholderPropertyJoin
object
3 properties
Leaseholder
object
15 properties
LeaseholderProperty
object
10 properties
LineItem
object
This is an object in use only for contractor networks for providing invoice details
7 properties
Media
object
Please see note on [downloading binary data](docs/Downloading-binary-data.md).
11 properties
PrevNextPager
object
5 properties
Property
object
14 properties
Tag
object
1 property
TagsAdded
object
1 property
TagAdded
object
2 properties
PropertyAddress
object
This object is used to hold propery address information. It contains both address and property data.
5 properties
Quote
object
13 properties
JobQuoteApproval
object
9 properties
ServiceProgrammeDef
object
14 properties
ServiceProgramme
object
15 properties
ServiceEventComplete
object
2 properties
ServiceEvent
object
22 properties
SubmitInvoice
object
4 properties
Team
object
3 properties
Tenant
object
15 properties
Warranty
object
7 properties
Webhook
object
2 properties
WebhookDeliveryItem
object
8 properties
FaultTreeBranch
object
2 properties
FaultTreeNode
object
Fault tree branch or leaf
7 properties 5 required
JobDeclineReasonMessage
object
1 property
Appointment
object
7 properties
Agency
object
12 properties
Customer
object
4 properties
Asset(Read)
object
17 properties 4 required
Asset(Write)
object
15 properties
Warranty(Asset)
object
5 properties
TenantProperty
object
4 properties
Comment
object
This is used for contractor networks to send and receive comments via the API
6 properties
CustomConfigurationSelectOption
object
2 properties
QuoteApproval
object
6 properties
QuoteApprovalRequest
object
4 properties
QuoteApprovalFeedback
object
2 properties
QuoteFurtherWorks
object
10 properties
IssueMergeRequest
object
3 properties 3 required
IssueMergeResponse
object
3 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

fixflo-api-v2-openapi.yml Raw ↑
Where this information came from

This is an independent, third-party profile of Fixflo API v2, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.