2022-09-07 00:16:25 +00:00
swagger : "2.0"
info :
2023-03-28 17:47:34 +00:00
version : 0.3 .0
2022-09-07 00:16:25 +00:00
title : "research"
description : "Customer Information Microservice"
2023-03-28 17:47:34 +00:00
termsOfService : "https://salesforcedevops.net/terms/"
2022-09-07 00:16:25 +00:00
contact :
2023-03-28 17:47:34 +00:00
email : "vern@vernonkeenan.com"
2022-09-07 00:16:25 +00:00
license :
2024-06-27 18:26:58 +00:00
name : "Proprietary - Copyright (c) 2018-2024 by Vernon Keenan"
2022-09-07 00:16:25 +00:00
securityDefinitions :
ApiKeyAuth :
type : "apiKey"
in : "header"
name : "X-API-Key"
2026-07-24 04:43:52 +00:00
kvSessionCookie :
type : "apiKey"
in : "header"
name : "Cookie"
description : "Members session cookie. Credential values are never accepted in request bodies or logs."
2022-09-07 00:16:25 +00:00
schemes :
- "https"
basePath : "/vk/research/v1"
host : "gw.tnxs.net"
consumes :
- "application/json"
produces :
- "application/json"
parameters :
accountIdQuery :
2023-03-28 17:47:34 +00:00
description : Record Id of an Account
2022-09-07 00:16:25 +00:00
in : query
name : accountId
required : false
type : string
activeQuery :
description : Only retrieve active records?
in : query
name : active
required : false
type : boolean
companyProductIdQuery :
2023-03-28 17:47:34 +00:00
description : CompanyProduct record ID
2022-09-07 00:16:25 +00:00
in : query
name : companyProductId
required : false
type : string
2023-05-28 16:22:37 +00:00
companyServiceIdQuery :
description : CompanyService record ID
in : query
name : companyServiceId
required : false
type : string
2023-04-01 23:56:22 +00:00
companyProductRequest :
description : An array of new CompanyProduct records
in : body
name : companyProductRequest
required : true
schema :
$ref : "#/definitions/CompanyProductRequest"
2026-07-24 04:43:52 +00:00
companyProductProposalRequest :
description : A human-attributed draft proposal for an existing CompanyProduct
in : body
name : companyProductProposalRequest
required : true
schema :
$ref : "#/definitions/CompanyProductProposalRequest"
companyProductProposalIdPath :
description : CompanyProduct proposal record ID
in : path
name : companyProductProposalId
required : true
type : string
format : uuid
companyProductProposalViewQuery :
description : Actor-owned proposals or the tenant review queue
in : query
name : view
required : true
type : string
enum : [ mine, review]
companyProductProposalSubmitRequest :
description : Optimistic draft submission request
in : body
name : companyProductProposalSubmitRequest
required : true
schema :
$ref : "#/definitions/CompanyProductProposalSubmitRequest"
companyProductProposalReviewRequest :
description : Complete field-level review request
in : body
name : companyProductProposalReviewRequest
required : true
schema :
$ref : "#/definitions/CompanyProductProposalReviewRequest"
2026-07-27 06:35:32 +00:00
companyProductProposalApplyRequest :
description : Optimistic approved-proposal application request
in : body
name : companyProductProposalApplyRequest
required : true
schema :
$ref : "#/definitions/CompanyProductProposalApplyRequest"
companyProductProposalPublishRequest :
description : Explicit, acknowledged first-publication request for an applied CompanyProduct proposal
in : body
name : companyProductProposalPublishRequest
required : true
schema :
$ref : "#/definitions/CompanyProductProposalPublishRequest"
2023-05-28 16:22:37 +00:00
companyServiceRequest :
description : An array of new CompanyService records
in : body
name : companyServiceRequest
required : true
schema :
$ref : "#/definitions/CompanyServiceRequest"
2026-07-27 06:35:32 +00:00
enrichmentRunRequest :
description : Start one bounded source-backed enrichment run
in : body
name : enrichmentRunRequest
required : true
schema :
$ref : "#/definitions/EnrichmentRunRequest"
enrichmentRunIdPath :
description : Durable enrichment run ID
in : path
name : enrichmentRunId
required : true
type : string
format : uuid
portfolioEnrichmentRunRequest :
description : Start one Account-scoped Product and Service portfolio research run; all provider, model, prompt, input snapshot, lifecycle, actor, tenant, matching, action, and save-path fields are server-owned
in : body
name : portfolioEnrichmentRunRequest
required : true
schema :
$ref : "#/definitions/PortfolioEnrichmentRunRequest"
portfolioEnrichmentRunIdPath :
description : Durable Account portfolio enrichment run ID
in : path
name : portfolioEnrichmentRunId
required : true
type : string
format : uuid
portfolioReconciliationRequest :
description : One explicitly acknowledged Discovery-mode direct-write decision for an immutable candidate in a completed portfolio enrichment run
in : body
name : portfolioReconciliationRequest
required : true
schema :
$ref : "#/definitions/PortfolioReconciliationRequest"
2023-04-01 23:56:22 +00:00
contactIdQuery :
description : Contact record ID
2022-09-07 00:16:25 +00:00
in : query
2023-04-01 23:56:22 +00:00
name : contactId
2022-09-07 00:16:25 +00:00
required : false
type : string
2023-04-01 23:56:22 +00:00
emailQuery :
description : Email address used for identity lookup
2022-09-07 00:16:25 +00:00
in : query
2023-04-01 23:56:22 +00:00
name : email
2022-09-07 00:16:25 +00:00
required : false
type : string
2023-04-01 23:56:22 +00:00
factorIdQuery :
description : Factor record ID
2022-09-07 00:16:25 +00:00
in : query
2023-04-01 23:56:22 +00:00
name : factorId
2022-09-07 00:16:25 +00:00
required : false
type : string
2023-04-01 23:56:22 +00:00
financialStatementIdQuery :
description : Financial Statement record ID
2022-09-07 00:16:25 +00:00
in : query
2023-04-01 23:56:22 +00:00
name : financialStatementId
2022-09-07 00:16:25 +00:00
required : false
type : string
2023-04-01 23:56:22 +00:00
factorRequest :
description : An array of new Factor records
in : body
name : factorRequest
required : true
schema :
$ref : "#/definitions/FactorRequest"
financialStatementRequest :
description : An array of new FinancialStatement records
in : body
name : financialStatementRequest
required : true
schema :
$ref : "#/definitions/FinancialStatementRequest"
industryCompanyIdQuery :
description : IndustryCompany record ID
2022-09-07 00:16:25 +00:00
in : query
2023-04-01 23:56:22 +00:00
name : industryCompanyId
2022-09-07 00:16:25 +00:00
required : false
type : string
2025-04-30 18:42:56 +00:00
companyIdQuery :
description : Company record ID
in : query
name : companyId
required : false
type : string
2023-04-01 23:56:22 +00:00
industryCompanyRequest :
description : An array of new IndustryCompany records
in : body
name : industryCompanyRequest
required : true
schema :
$ref : "#/definitions/IndustryCompanyRequest"
industryIdQuery :
description : Industry record ID
in : query
name : industryId
required : false
type : string
2023-04-08 02:47:39 +00:00
productCategoryQuery :
description : Is this industry a product category?
in : query
name : productCategory
required : false
type : boolean
2023-08-25 20:59:50 +00:00
serviceCategoryQuery :
description : Is this industry a service category?
in : query
name : serviceCategory
required : false
type : boolean
2023-04-01 23:56:22 +00:00
industryProductIdQuery :
description : IndustryProduct record ID
in : query
name : industryProductId
required : false
type : string
industryProductRequest :
description : An array of new IndustryProduct records
in : body
name : industryProductRequest
required : true
schema :
$ref : "#/definitions/IndustryProductRequest"
2023-05-28 16:22:37 +00:00
industryServiceIdQuery :
description : IndustryService record ID
in : query
name : industryServiceId
required : false
type : string
industryServiceRequest :
description : An array of new IndustryService records
in : body
name : industryServiceRequest
required : true
schema :
$ref : "#/definitions/IndustryServiceRequest"
2022-09-07 00:16:25 +00:00
industryRequest :
description : An array of new Industry records
in : body
name : industryRequest
required : true
schema :
$ref : "#/definitions/IndustryRequest"
2023-04-01 23:56:22 +00:00
leadIdQuery :
description : Lead record ID
in : query
name : leadId
required : false
type : string
2022-09-07 00:16:25 +00:00
limitQuery :
2023-04-01 23:56:22 +00:00
description : How many objects to return at one time
2022-09-07 00:16:25 +00:00
format : int64
in : query
name : limit
required : false
type : integer
nameQuery :
description : The Name of this Object
in : query
name : name
required : false
type : string
2023-04-08 02:47:39 +00:00
slugQuery :
description : The Slug of this Object
in : query
name : slug
required : false
type : string
2023-04-01 23:56:22 +00:00
observationIdQuery :
description : Observation record ID
in : query
name : observationId
required : false
type : string
observationRequest :
description : An array of new Observation records
in : body
name : observationRequest
required : true
schema :
$ref : "#/definitions/ObservationRequest"
2022-09-07 00:16:25 +00:00
offsetQuery :
description : How many objects to skip?
format : int64
in : query
name : offset
required : false
type : integer
2023-04-01 23:56:22 +00:00
topicIdQuery :
description : Topic record ID
in : query
name : topicId
required : false
type : string
topicRequest :
description : An array of new Topic records
in : body
name : topicRequest
required : true
schema :
$ref : "#/definitions/TopicRequest"
2022-09-07 00:16:25 +00:00
typeQuery :
description : The Type of this Object
in : query
name : type
required : false
type : string
2023-04-01 23:56:22 +00:00
2022-09-07 00:16:25 +00:00
responses :
AccessForbidden :
2023-04-01 23:56:22 +00:00
description : Access forbidden, account lacks access
2022-09-07 00:16:25 +00:00
headers :
Access-Control-Allow-Origin :
type : string
schema :
$ref : "#/definitions/Error"
2023-04-01 23:56:22 +00:00
CompanyProductResponse :
2023-05-28 16:22:37 +00:00
description : Response with CompanyProduct objects
2022-09-07 00:16:25 +00:00
schema :
2023-04-01 23:56:22 +00:00
$ref : "#/definitions/CompanyProductResponse"
2023-05-28 16:22:37 +00:00
CompanyServiceResponse :
description : Response with CompanyService objects
schema :
$ref : "#/definitions/CompanyServiceResponse"
2022-09-07 00:16:25 +00:00
Conflict :
description : Conflict
headers :
Access-Control-Allow-Origin :
type : string
schema :
$ref : "#/definitions/Error"
DeleteResponse :
2023-03-28 17:47:34 +00:00
description : Response with Message Objects with Delete Status
2022-09-07 00:16:25 +00:00
headers :
Access-Control-Allow-Origin :
type : string
schema :
$ref : "#/definitions/DeleteResponse"
2023-04-01 23:56:22 +00:00
FactorResponse :
description : Response with Factor objects
schema :
$ref : "#/definitions/FactorResponse"
FinancialStatementResponse :
description : Response with FinancialStatement objects
schema :
$ref : "#/definitions/FinancialStatementResponse"
IndustryCompanyResponse :
description : Response with IndustryCompany objects
schema :
$ref : "#/definitions/IndustryCompanyResponse"
IndustryProductResponse :
description : Response with IndustryProduct objects
schema :
$ref : "#/definitions/IndustryProductResponse"
2023-05-28 16:22:37 +00:00
IndustryServiceResponse :
description : Response with IndustryService objects
schema :
$ref : "#/definitions/IndustryServiceResponse"
2023-04-01 23:56:22 +00:00
IndustryResponse :
description : Response with Industry objects
schema :
$ref : "#/definitions/IndustryResponse"
2022-09-07 00:16:25 +00:00
InvalidDataError :
2023-04-01 23:56:22 +00:00
description : Invalid data was sent
2022-09-07 00:16:25 +00:00
headers :
Access-Control-Allow-Origin :
type : string
schema :
$ref : "#/definitions/InvalidError"
NotFound :
description : Resource was not found
headers :
Access-Control-Allow-Origin :
type : string
schema :
$ref : "#/definitions/Error"
2023-04-01 23:56:22 +00:00
ObservationResponse :
description : Response with Observation objects
schema :
$ref : "#/definitions/ObservationResponse"
2022-09-07 00:16:25 +00:00
ServerError :
description : Server Internal Error
headers :
Access-Control-Allow-Origin :
type : string
schema :
$ref : "#/definitions/Error"
2023-04-01 23:56:22 +00:00
TopicResponse :
description : Response with Topic objects
schema :
$ref : "#/definitions/TopicResponse"
2022-09-07 00:16:25 +00:00
Unauthorized :
2023-04-01 23:56:22 +00:00
description : Access unauthorized, invalid API-KEY was used
2022-09-07 00:16:25 +00:00
headers :
Access-Control-Allow-Origin :
type : string
schema :
$ref : "#/definitions/Error"
UnprocessableEntity :
2023-04-01 23:56:22 +00:00
description : Unprocessable Entity, likely a bad parameter
2022-09-07 00:16:25 +00:00
headers :
Access-Control-Allow-Origin :
type : string
schema :
$ref : "#/definitions/Error"
2023-04-11 14:59:35 +00:00
CompanyCategoryResponse :
description : The SalesforceDevops.net CompanyCategory Object
schema :
$ref : "#/definitions/CompanyCategoryResponse"
2023-04-01 23:56:22 +00:00
2022-09-07 00:16:25 +00:00
paths :
2023-04-11 14:59:35 +00:00
/companycategories :
get :
description : Return all or a single company category fully hydrated object
operationId : getCompanyCategories
responses :
"200" :
$ref : "#/responses/CompanyCategoryResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get a list of company categories
tags :
- CompanyCategories
2023-05-28 16:22:37 +00:00
/companyservices :
get :
2026-07-24 06:46:06 +00:00
description : Return CompanyServices under compound native service and same-tenant human authentication; requires research:company-service:read
2023-05-28 16:22:37 +00:00
operationId : getCompanyServices
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/slugQuery"
2024-06-29 00:23:11 +00:00
- $ref : "#/parameters/accountIdQuery"
2023-05-28 16:22:37 +00:00
- $ref : "#/parameters/companyServiceIdQuery"
responses :
"200" :
$ref : "#/responses/CompanyServiceResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 06:46:06 +00:00
kvSessionCookie : [ ]
2023-05-28 16:22:37 +00:00
summary : Get a list of company services
tags :
- CompanyServices
post :
2026-07-24 06:46:06 +00:00
description : Create one unpublished CompanyService beneath an Account owned by the machine tenant; requires research:company-service:create and same-tenant Owner or Manager
2023-05-29 15:13:02 +00:00
operationId : postCompanyServices
2023-05-28 16:22:37 +00:00
parameters :
- $ref : "#/parameters/companyServiceRequest"
responses :
"200" :
$ref : "#/responses/CompanyServiceResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"409" :
$ref : "#/responses/Conflict"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 06:46:06 +00:00
kvSessionCookie : [ ]
2023-05-28 16:22:37 +00:00
summary : Create a new CompanyService
tags :
- CompanyServices
2026-07-24 06:46:06 +00:00
put :
description : Replace the editable fields of one tenant-owned CompanyService using optimistic concurrency while preserving publication, enrichment audit, and media ownership; requires research:company-service:update and same-tenant Owner or Manager
operationId : putCompanyService
2023-04-01 23:56:22 +00:00
parameters :
2026-07-24 06:46:06 +00:00
- $ref : "#/parameters/companyServiceRequest"
2022-09-07 00:16:25 +00:00
responses :
"200" :
2026-07-24 06:46:06 +00:00
$ref : "#/responses/CompanyServiceResponse"
2023-04-01 23:56:22 +00:00
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
2026-07-24 06:46:06 +00:00
"409" :
$ref : "#/responses/Conflict"
2023-04-01 23:56:22 +00:00
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 06:46:06 +00:00
kvSessionCookie : [ ]
summary : Update one tenant-owned CompanyService
2022-09-07 00:16:25 +00:00
tags :
2026-07-24 06:46:06 +00:00
- CompanyServices
2026-07-27 06:35:32 +00:00
/publishedcompanyservices :
get :
description : Return only published CompanyServices whose owning CRM Account is also published; requires a tenant-bound native service principal with the exact research:company-service:public-read scope and does not accept a human session
operationId : getPublishedCompanyServices
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/slugQuery"
- $ref : "#/parameters/accountIdQuery"
- $ref : "#/parameters/companyServiceIdQuery"
responses :
"200" :
$ref : "#/responses/CompanyServiceResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get the machine-readable published CompanyService catalog
tags :
- CompanyServices
2026-07-24 06:46:06 +00:00
/companyproducts :
2023-04-01 23:56:22 +00:00
get :
2026-07-24 06:46:06 +00:00
description : Return CompanyProducts under compound native service and same-tenant human authentication; requires research:company-product:read
2023-04-01 23:56:22 +00:00
operationId : getCompanyProducts
parameters :
- $ref : "#/parameters/limitQuery"
2023-04-08 02:47:39 +00:00
- $ref : "#/parameters/slugQuery"
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/activeQuery"
2023-04-06 01:28:58 +00:00
- $ref : "#/parameters/accountIdQuery"
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/companyProductIdQuery"
responses :
"200" :
$ref : "#/responses/CompanyProductResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 06:46:06 +00:00
kvSessionCookie : [ ]
2023-04-01 23:56:22 +00:00
summary : Get a list of companyproducts
tags :
- CompanyProducts
2022-09-07 00:16:25 +00:00
post :
2026-07-27 07:18:17 +00:00
description : Create one unpublished CompanyProduct beneath an Account owned by the machine tenant; requires research:company-product:create and same-tenant Owner or Manager
2023-04-01 23:56:22 +00:00
operationId : postCompanyProducts
2022-09-07 00:16:25 +00:00
parameters :
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/companyProductRequest"
2022-09-07 00:16:25 +00:00
responses :
"200" :
2023-04-01 23:56:22 +00:00
$ref : "#/responses/CompanyProductResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 06:46:06 +00:00
kvSessionCookie : [ ]
summary : Create one tenant-owned CompanyProduct
2023-04-01 23:56:22 +00:00
tags :
- CompanyProducts
2026-07-27 07:18:17 +00:00
put :
description : Replace the editable fields of one shared-catalog CompanyProduct using optimistic concurrency while preserving its immutable Account binding, publication state, enrichment audit, and media ownership. Published Products require the governed proposal workflow. Requires research:company-product:update and a same-tenant Owner or Manager.
operationId : putCompanyProduct
parameters :
- $ref : "#/parameters/companyProductRequest"
responses :
"200" :
$ref : "#/responses/CompanyProductResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
$ref : "#/responses/Conflict"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Update one unpublished shared-catalog CompanyProduct
tags :
- CompanyProducts
2026-07-27 06:35:32 +00:00
/publishedcompanyproducts :
get :
description : Return only published CompanyProducts whose owning CRM Account is also published; requires a tenant-bound native service principal with the exact research:company-product:public-read scope and does not accept a human session
operationId : getPublishedCompanyProducts
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/slugQuery"
- $ref : "#/parameters/accountIdQuery"
- $ref : "#/parameters/companyProductIdQuery"
responses :
"200" :
$ref : "#/responses/CompanyProductResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get the machine-readable published CompanyProduct catalog
tags :
- CompanyProducts
2026-07-24 04:43:52 +00:00
/companyproductproposals :
get :
description : Return actor-owned proposals or the submitted tenant review queue
operationId : getCompanyProductProposals
parameters :
- $ref : "#/parameters/companyProductProposalViewQuery"
- $ref : "#/parameters/companyProductIdQuery"
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
responses :
"200" :
description : Governed proposal collection
schema :
$ref : "#/definitions/CompanyProductProposalResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : List CompanyProduct proposals
tags :
- CompanyProductProposals
post :
2026-07-27 06:35:32 +00:00
description : Create a manual or optionally enrichment-linked draft proposal without changing the authoritative CompanyProduct or immutable enrichment evidence
2026-07-24 04:43:52 +00:00
operationId : postCompanyProductProposal
parameters :
- $ref : "#/parameters/companyProductProposalRequest"
responses :
"201" :
description : Draft proposal created
schema :
$ref : "#/definitions/CompanyProductProposal"
"400" :
$ref : "#/responses/UnprocessableEntity"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
description : Product version or idempotency conflict
schema :
$ref : "#/definitions/Error"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Create a CompanyProduct draft proposal
tags :
- CompanyProductProposals
/companyproductproposals/{companyProductProposalId}:
get :
description : Return one visible CompanyProduct proposal
operationId : getCompanyProductProposal
parameters :
- $ref : "#/parameters/companyProductProposalIdPath"
responses :
"200" :
description : Governed proposal detail
schema :
$ref : "#/definitions/CompanyProductProposal"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Get a CompanyProduct proposal
tags :
- CompanyProductProposals
/companyproductproposals/{companyProductProposalId}/submit:
post :
description : Submit an actor-owned draft without changing the authoritative CompanyProduct
operationId : submitCompanyProductProposal
parameters :
- $ref : "#/parameters/companyProductProposalIdPath"
- $ref : "#/parameters/companyProductProposalSubmitRequest"
responses :
"200" :
description : Proposal submitted for review
schema :
$ref : "#/definitions/CompanyProductProposal"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
description : Proposal state or optimistic version conflict
schema :
$ref : "#/definitions/Error"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Submit a CompanyProduct proposal
tags :
- CompanyProductProposals
/companyproductproposals/{companyProductProposalId}/review:
post :
description : Decide every field on a submitted proposal without changing the authoritative CompanyProduct
operationId : reviewCompanyProductProposal
parameters :
- $ref : "#/parameters/companyProductProposalIdPath"
- $ref : "#/parameters/companyProductProposalReviewRequest"
responses :
"200" :
description : Proposal review completed
schema :
$ref : "#/definitions/CompanyProductProposal"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
description : Proposal state or optimistic version conflict
schema :
$ref : "#/definitions/Error"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Review a CompanyProduct proposal
tags :
- CompanyProductProposals
2026-07-27 06:35:32 +00:00
/companyproductproposals/{companyProductProposalId}/apply:
post :
description : Apply accepted fields from an independently approved proposal to the authoritative CompanyProduct; an already-published Product receives an atomic republish receipt so the live change is explicit and auditable
operationId : applyCompanyProductProposal
parameters :
- $ref : "#/parameters/companyProductProposalIdPath"
- $ref : "#/parameters/companyProductProposalApplyRequest"
responses :
"200" :
description : Proposal applied, or an identical completed application replayed
schema :
$ref : "#/definitions/CompanyProductProposal"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
description : Proposal lifecycle, provenance, or optimistic version conflict
schema :
$ref : "#/definitions/Error"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Apply an approved CompanyProduct proposal
tags :
- CompanyProductProposals
/companyproductproposals/{companyProductProposalId}/publish:
post :
description : Explicitly publish an unpublished CompanyProduct after independently reviewed proposal application; requires research:company-product:publish, exact proposal and Product versions, acknowledgement, reason, and idempotency
operationId : publishCompanyProductProposal
parameters :
- $ref : "#/parameters/companyProductProposalIdPath"
- $ref : "#/parameters/companyProductProposalPublishRequest"
responses :
"200" :
description : Product published with its bounded receipt, or an identical completed publication replayed without writes
schema :
$ref : "#/definitions/CompanyProductProposal"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
description : Proposal, Product, publication state, or idempotency conflict
schema :
$ref : "#/definitions/Error"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Publish an applied CompanyProduct proposal
tags :
- CompanyProductProposals
/enrichmentruns :
post :
description : Run bounded Account, shared-catalog Company Product, or tenant-owned Company Service web research, persist cited field candidates, and leave the authoritative subject unchanged; requires a native service principal with research:enrichment-run:create and active same-tenant contributing membership
operationId : postEnrichmentRun
parameters :
- $ref : "#/parameters/enrichmentRunRequest"
responses :
"201" :
description : Completed cited enrichment run
schema :
$ref : "#/definitions/EnrichmentRun"
"400" :
$ref : "#/responses/UnprocessableEntity"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
$ref : "#/responses/Conflict"
"422" :
$ref : "#/responses/UnprocessableEntity"
"502" :
description : External research provider failed safely
schema :
$ref : "#/definitions/Error"
"504" :
description : External research provider timed out safely
schema :
$ref : "#/definitions/Error"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Create a cited enrichment run
tags :
- EnrichmentRuns
/enrichmentruns/{enrichmentRunId}:
get :
description : Return one durable same-tenant enrichment run with its cited candidates; requires research:enrichment-run:read
operationId : getEnrichmentRun
parameters :
- $ref : "#/parameters/enrichmentRunIdPath"
responses :
"200" :
description : Durable cited enrichment run
schema :
$ref : "#/definitions/EnrichmentRun"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Get one cited enrichment run
tags :
- EnrichmentRuns
/portfolioenrichmentruns :
post :
description : Start one bounded asynchronous portfolio_enrichment.v1 Product and Service research run for a same-tenant Account; requires research:enrichment-run:create, dispatches only after the durable idempotent insert wins, never redispatches an ambiguous start, and never writes authoritative Product, Service, relationship, approval, or publication state
operationId : postPortfolioEnrichmentRun
parameters :
- $ref : "#/parameters/portfolioEnrichmentRunRequest"
responses :
"202" :
description : Durable running or safely terminal portfolio enrichment run
schema :
$ref : "#/definitions/PortfolioEnrichmentRun"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
$ref : "#/responses/Conflict"
"422" :
$ref : "#/responses/UnprocessableEntity"
"503" :
description : Private portfolio worker is temporarily unavailable
schema :
$ref : "#/definitions/Error"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Start one Account portfolio enrichment run
tags :
- PortfolioEnrichmentRuns
/portfolioenrichmentruns/{portfolioEnrichmentRunId}:
get :
description : Return one durable same-tenant portfolio_enrichment.v1 run; requires research:enrichment-run:read
operationId : getPortfolioEnrichmentRun
parameters :
- $ref : "#/parameters/portfolioEnrichmentRunIdPath"
responses :
"200" :
description : Durable running, completed, or failed portfolio enrichment run
schema :
$ref : "#/definitions/PortfolioEnrichmentRun"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"503" :
description : Portfolio enrichment runtime is temporarily unavailable
schema :
$ref : "#/definitions/Error"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Get one Account portfolio enrichment run
tags :
- PortfolioEnrichmentRuns
/portfolioenrichmentruns/{portfolioEnrichmentRunId}/advance:
post :
description : Advance one running same-tenant portfolio_enrichment.v1 job through the private worker boundary; requires research:enrichment-run:create, is idempotent for terminal runs, never retries a worker start whose response ID was not durably captured, and performs no authoritative Product or Service writes
operationId : advancePortfolioEnrichmentRun
parameters :
- $ref : "#/parameters/portfolioEnrichmentRunIdPath"
responses :
"200" :
description : Current durable running or terminal portfolio enrichment run
schema :
$ref : "#/definitions/PortfolioEnrichmentRun"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
$ref : "#/responses/Conflict"
"503" :
description : Private portfolio worker is temporarily unavailable
schema :
$ref : "#/definitions/Error"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Advance one Account portfolio enrichment run
tags :
- PortfolioEnrichmentRuns
/portfolioenrichmentruns/{portfolioEnrichmentRunId}/reconciliations:
post :
2026-07-27 07:18:17 +00:00
description : Create or compare-and-swap update exactly one authoritative Product or Service from one immutable direct-write candidate in a completed same-tenant portfolio_enrichment.v1 run. This Discovery-only operation requires an active server-side tenant policy for the exact entity action, the matching create or update scope, an active Owner or Manager session, explicit acknowledgement, and an idempotency key. Operator-selected field values remain distinct from immutable candidate provenance. Legacy Product governed-update candidates are not silently converted to direct writes and must be rerun. It never deletes, creates relationships, proposes, reviews, applies, or publishes.
2026-07-27 06:35:32 +00:00
operationId : postPortfolioReconciliation
parameters :
- $ref : "#/parameters/portfolioEnrichmentRunIdPath"
- $ref : "#/parameters/portfolioReconciliationRequest"
responses :
"200" :
description : Immutable reconciliation receipt for the created or updated authoritative target, including an exact idempotent replay
schema :
$ref : "#/definitions/PortfolioReconciliationReceipt"
"400" :
$ref : "#/responses/UnprocessableEntity"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
$ref : "#/responses/Conflict"
"422" :
$ref : "#/responses/UnprocessableEntity"
"503" :
description : Portfolio reconciliation policy or persistence runtime is temporarily unavailable
schema :
$ref : "#/definitions/Error"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Reconcile one portfolio candidate in Discovery mode
tags :
- PortfolioEnrichmentRuns
2023-04-01 23:56:22 +00:00
/factors :
delete :
description : Delete Factor record
operationId : deleteFactor
parameters :
- $ref : "#/parameters/factorIdQuery"
responses :
"200" :
$ref : "#/responses/DeleteResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Delete An Factor
tags :
- Factors
get :
description : Return a list of all available Factors
operationId : getFactors
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/nameQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/activeQuery"
- $ref : "#/parameters/factorIdQuery"
responses :
"200" :
$ref : "#/responses/FactorResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get a list of factors
tags :
- Factors
post :
description : Factor records to be added
operationId : postFactors
parameters :
- $ref : "#/parameters/factorRequest"
responses :
"200" :
$ref : "#/responses/FactorResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 05:04:44 +00:00
kvSessionCookie : [ ]
summary : Add a new factor
2023-04-01 23:56:22 +00:00
tags :
- Factors
put :
description : Update factor records
operationId : putFactor
parameters :
- $ref : "#/parameters/factorRequest"
responses :
"200" :
$ref : "#/responses/FactorResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
2026-07-24 05:04:44 +00:00
"409" :
description : Optimistic version conflict
schema :
$ref : "#/definitions/Error"
2023-04-01 23:56:22 +00:00
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 05:04:44 +00:00
kvSessionCookie : [ ]
2023-04-01 23:56:22 +00:00
summary : Update factor records
tags :
- Factors
/financialstatements :
delete :
description : Delete FinancialStatement record
operationId : deleteFinancialStatement
parameters :
- $ref : "#/parameters/financialStatementIdQuery"
responses :
"200" :
$ref : "#/responses/DeleteResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Delete An FinancialStatement
tags :
- FinancialStatements
get :
description : Return a list of all available FinancialStatements
operationId : getFinancialStatements
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/activeQuery"
2023-04-06 01:28:58 +00:00
- $ref : "#/parameters/accountIdQuery"
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/financialStatementIdQuery"
responses :
"200" :
$ref : "#/responses/FinancialStatementResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get a list of financialStatements
tags :
- FinancialStatements
post :
description : FinancialStatement records to be added
operationId : postFinancialStatements
parameters :
- $ref : "#/parameters/financialStatementRequest"
responses :
"200" :
$ref : "#/responses/FinancialStatementResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 05:04:44 +00:00
kvSessionCookie : [ ]
summary : Add a new financial statement
2023-04-01 23:56:22 +00:00
tags :
- FinancialStatements
put :
description : Update financialStatement records
operationId : putFinancialStatement
parameters :
- $ref : "#/parameters/financialStatementRequest"
responses :
"200" :
$ref : "#/responses/FinancialStatementResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
2026-07-24 05:04:44 +00:00
"409" :
description : Optimistic version conflict
schema :
$ref : "#/definitions/Error"
2023-04-01 23:56:22 +00:00
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 05:04:44 +00:00
kvSessionCookie : [ ]
2023-04-01 23:56:22 +00:00
summary : Update financialStatement records
tags :
- FinancialStatements
/industries :
get :
2026-07-24 04:43:52 +00:00
description : Retrieve the shared global Industry taxonomy. Requires research:industry:read on a tenant-bound service principal; the tenant authorizes the caller but does not own taxonomy rows.
2023-04-01 23:56:22 +00:00
operationId : getIndustries
parameters :
- $ref : "#/parameters/limitQuery"
2023-04-08 02:47:39 +00:00
- $ref : "#/parameters/slugQuery"
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/industryIdQuery"
2023-04-08 02:47:39 +00:00
- $ref : "#/parameters/productCategoryQuery"
2023-08-25 20:59:50 +00:00
- $ref : "#/parameters/serviceCategoryQuery"
2023-04-01 23:56:22 +00:00
responses :
"200" :
$ref : "#/responses/IndustryResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get Industry records
tags :
- Industry
post :
2026-07-24 04:43:52 +00:00
description : Add exactly one shared global Industry with server-owned ID and audit fields. Requires research:industry:create plus an active Owner or Manager session in the machine tenant.
2023-04-01 23:56:22 +00:00
operationId : postIndustries
parameters :
- $ref : "#/parameters/industryRequest"
responses :
"200" :
$ref : "#/responses/IndustryResponse"
2022-09-07 00:16:25 +00:00
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 04:43:52 +00:00
kvSessionCookie : [ ]
summary : Add a shared Industry taxonomy record
tags :
- Industry
put :
description : Optimistically replace the editable fields of exactly one shared global Industry. ID and LastModifiedDate form the compare-and-swap contract; audit fields are server-owned. Requires research:industry:update plus an active Owner or Manager session in the machine tenant.
operationId : putIndustries
parameters :
- $ref : "#/parameters/industryRequest"
responses :
"200" :
$ref : "#/responses/IndustryResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
$ref : "#/responses/Conflict"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Update a shared Industry taxonomy record
2022-09-07 00:16:25 +00:00
tags :
2023-04-01 23:56:22 +00:00
- Industry
/industrycompanies :
delete :
2026-07-24 04:43:52 +00:00
description : Reserved compatibility operation. Runtime removal remains disabled until a recoverable relationship-event or tombstone contract exists.
2023-04-01 23:56:22 +00:00
operationId : deleteIndustryCompany
parameters :
- $ref : "#/parameters/industryCompanyIdQuery"
responses :
"200" :
$ref : "#/responses/DeleteResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Delete An IndustryCompany
tags :
- IndustryCompanies
2022-09-07 00:16:25 +00:00
get :
2026-07-24 04:43:52 +00:00
description : Return IndustryCompany links attributed to the caller tenant through crm.account. Requires research:industry-company:read.
2023-04-01 23:56:22 +00:00
operationId : getIndustryCompanies
2022-09-07 00:16:25 +00:00
parameters :
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/nameQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/activeQuery"
- $ref : "#/parameters/industryCompanyIdQuery"
2025-04-30 18:42:56 +00:00
- $ref : "#/parameters/companyIdQuery"
2022-09-07 00:16:25 +00:00
responses :
"200" :
2023-04-01 23:56:22 +00:00
$ref : "#/responses/IndustryCompanyResponse"
2022-09-07 00:16:25 +00:00
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2023-04-01 23:56:22 +00:00
summary : Get a list of industrycompanies
2022-09-07 00:16:25 +00:00
tags :
2023-04-01 23:56:22 +00:00
- IndustryCompanies
post :
2026-07-24 04:43:52 +00:00
description : Idempotently add exactly one IndustryCompany link attributed through the referenced CRM Account tenant. ID and audit fields are server-owned. Requires research:industry-company:create plus an active Owner or Manager session.
2023-04-01 23:56:22 +00:00
operationId : postIndustryCompanies
parameters :
- $ref : "#/parameters/industryCompanyRequest"
2022-09-07 00:16:25 +00:00
responses :
"200" :
2023-04-01 23:56:22 +00:00
$ref : "#/responses/IndustryCompanyResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 04:43:52 +00:00
kvSessionCookie : [ ]
summary : Add a tenant-attributed IndustryCompany link
2023-04-01 23:56:22 +00:00
tags :
- IndustryCompanies
2023-05-28 16:22:37 +00:00
/industryservices :
delete :
2026-07-24 04:43:52 +00:00
description : Reserved compatibility operation. Runtime removal remains disabled until a recoverable relationship-event or tombstone contract exists.
2023-05-28 16:22:37 +00:00
operationId : deleteIndustryService
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/industryServiceIdQuery"
responses :
"200" :
$ref : "#/responses/DeleteResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Delete An IndustryService
tags :
- IndustryServices
get :
2026-07-24 04:43:52 +00:00
description : Return IndustryService links attributed to the caller tenant through CompanyService and crm.account. Requires research:industry-service:read.
2023-05-28 16:22:37 +00:00
operationId : getIndustryServices
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/industryServiceIdQuery"
responses :
"200" :
$ref : "#/responses/IndustryServiceResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get a list of industryservices
tags :
- IndustryServices
post :
2026-07-24 04:43:52 +00:00
description : Idempotently add exactly one tenant-attributed IndustryService link. ID and audit fields are server-owned. Requires research:industry-service:create plus an active Owner or Manager session.
2023-05-28 16:22:37 +00:00
operationId : postIndustryServices
parameters :
- $ref : "#/parameters/industryServiceRequest"
responses :
"200" :
$ref : "#/responses/IndustryServiceResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 04:43:52 +00:00
kvSessionCookie : [ ]
summary : Add a tenant-attributed IndustryService link
2023-05-28 16:22:37 +00:00
tags :
- IndustryServices
2023-04-01 23:56:22 +00:00
/industryproducts :
delete :
2026-07-24 04:43:52 +00:00
description : Reserved compatibility operation. Runtime removal remains disabled until a recoverable relationship-event or tombstone contract exists.
2023-04-01 23:56:22 +00:00
operationId : deleteIndustryProduct
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/industryProductIdQuery"
responses :
"200" :
$ref : "#/responses/DeleteResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Delete An IndustryProduct
tags :
- IndustryProducts
get :
2026-07-24 04:43:52 +00:00
description : Return IndustryProduct links attributed to the caller tenant through CompanyProduct and crm.account. Requires research:industry-product:read.
2023-04-01 23:56:22 +00:00
operationId : getIndustryProducts
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/nameQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/activeQuery"
- $ref : "#/parameters/industryProductIdQuery"
responses :
"200" :
$ref : "#/responses/IndustryProductResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get a list of industryProducts
tags :
- IndustryProducts
post :
2026-07-24 04:43:52 +00:00
description : Idempotently add exactly one tenant-attributed IndustryProduct link. ID and audit fields are server-owned. Requires research:industry-product:create plus an active Owner or Manager session.
2023-04-01 23:56:22 +00:00
operationId : postIndustryProducts
parameters :
- $ref : "#/parameters/industryProductRequest"
responses :
"200" :
$ref : "#/responses/IndustryProductResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 04:43:52 +00:00
kvSessionCookie : [ ]
summary : Add a tenant-attributed IndustryProduct link
2023-04-01 23:56:22 +00:00
tags :
- IndustryProducts
/observations :
delete :
description : Delete Observation record
operationId : deleteObservation
parameters :
- $ref : "#/parameters/observationIdQuery"
responses :
"200" :
$ref : "#/responses/DeleteResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Delete An Observation
tags :
- Observations
get :
description : Return a list of all available Observations
operationId : getObservations
parameters :
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/activeQuery"
- $ref : "#/parameters/observationIdQuery"
responses :
"200" :
$ref : "#/responses/ObservationResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
summary : Get a list of observations
tags :
- Observations
post :
description : Observation record to be added
operationId : postObservations
parameters :
- $ref : "#/parameters/observationRequest"
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
responses :
"200" :
$ref : "#/responses/ObservationResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 05:04:44 +00:00
kvSessionCookie : [ ]
summary : Add a new observation
2022-09-07 00:16:25 +00:00
tags :
2023-04-01 23:56:22 +00:00
- Observations
put :
description : Update a single observation specified by observationId
operationId : putObservation
2022-09-07 00:16:25 +00:00
parameters :
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/observationRequest"
2022-09-07 00:16:25 +00:00
responses :
"200" :
2023-04-01 23:56:22 +00:00
$ref : "#/responses/ObservationResponse"
2022-09-07 00:16:25 +00:00
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
2026-07-24 05:04:44 +00:00
"409" :
description : Optimistic version conflict
schema :
$ref : "#/definitions/Error"
2022-09-07 00:16:25 +00:00
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 05:04:44 +00:00
kvSessionCookie : [ ]
2023-04-01 23:56:22 +00:00
summary : Update a single observation
2022-09-07 00:16:25 +00:00
tags :
2023-04-01 23:56:22 +00:00
- Observations
/topics :
get :
description : Retrieve Topic records from the microservice
operationId : getTopics
2022-09-07 00:16:25 +00:00
parameters :
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/limitQuery"
- $ref : "#/parameters/offsetQuery"
- $ref : "#/parameters/topicIdQuery"
2022-09-07 00:16:25 +00:00
responses :
"200" :
2023-04-01 23:56:22 +00:00
$ref : "#/responses/TopicResponse"
2022-09-07 00:16:25 +00:00
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2023-04-01 23:56:22 +00:00
summary : Get Topic records
2022-09-07 00:16:25 +00:00
tags :
2023-04-01 23:56:22 +00:00
- Topics
post :
description : Add new topics
operationId : postTopics
2022-09-07 00:16:25 +00:00
parameters :
2023-04-01 23:56:22 +00:00
- $ref : "#/parameters/topicRequest"
2022-09-07 00:16:25 +00:00
responses :
"200" :
2023-04-01 23:56:22 +00:00
$ref : "#/responses/TopicResponse"
2022-09-07 00:16:25 +00:00
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
2026-07-24 05:04:44 +00:00
kvSessionCookie : [ ]
2023-04-01 23:56:22 +00:00
summary : Add new topics
2022-09-07 00:16:25 +00:00
tags :
2023-04-01 23:56:22 +00:00
- Topics
2026-07-24 05:04:44 +00:00
put :
description : Update one Topic record using optimistic concurrency
operationId : putTopic
parameters :
- $ref : "#/parameters/topicRequest"
responses :
"200" :
$ref : "#/responses/TopicResponse"
"401" :
$ref : "#/responses/Unauthorized"
"403" :
$ref : "#/responses/AccessForbidden"
"404" :
$ref : "#/responses/NotFound"
"409" :
description : Optimistic version conflict
schema :
$ref : "#/definitions/Error"
"422" :
$ref : "#/responses/UnprocessableEntity"
"500" :
$ref : "#/responses/ServerError"
security :
- ApiKeyAuth : [ ]
kvSessionCookie : [ ]
summary : Update one Topic record
tags :
- Topics
2023-04-01 23:56:22 +00:00
2022-09-07 00:16:25 +00:00
definitions :
Address :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/address.yaml#/Address"
2023-04-15 14:27:18 +00:00
CompanyCategory :
properties :
CloudType :
description : The Type of Cloud Company
type : string
Count :
description : The number of companies
type : number
type : object
CompanyCategoryResponse :
description : An array of CompanyCategory objects produced in response to a request
properties :
Data :
items :
$ref : "#/definitions/CompanyCategory"
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
2022-09-07 00:16:25 +00:00
type : object
2023-04-01 23:56:22 +00:00
CompanyProductRequest :
description : An array of CompanyProduct objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/company-product.yaml#/CompanyProduct"
2023-04-01 23:56:22 +00:00
type : array
type : object
2026-07-24 04:43:52 +00:00
CompanyProductProposalField :
2026-07-27 06:35:32 +00:00
description : One governed CompanyProduct field change; EnrichmentCandidateID is optional for manual proposals and required on every field when the proposal carries EnrichmentRunID
2026-07-24 04:43:52 +00:00
required :
- FieldName
- ProposedValue
properties :
FieldName :
type : string
enum :
- description
- enrichmentstatus
- fulldescription
- imagealttext
- imageurl
- logo
- name
- slug
- tagline
- url
ProposedValue :
2026-07-27 06:35:32 +00:00
description : Human-editable proposed JSON value. It may differ from the immutable enrichment candidate value.
2026-07-24 04:43:52 +00:00
type : string
maxLength : 20000
2026-07-27 06:35:32 +00:00
EnrichmentCandidateID :
description : Optional immutable enrichment candidate provenance for this field
type : string
format : uuid
x-nullable : true
2026-07-24 04:43:52 +00:00
CurrentValue :
description : Current authoritative value captured when the proposal was created
type : string
x-nullable : true
Decision :
type : string
enum : [ pending, accepted, rejected]
DecidedByID :
type : string
format : uuid
x-nullable : true
DecidedAt :
type : string
format : date-time
x-nullable : true
DecisionReason :
type : string
maxLength : 1000
x-nullable : true
type : object
CompanyProductProposalRequest :
2026-07-27 06:35:32 +00:00
description : Update-only proposal; tenant, actor, client, status, and audit fields are server-owned. EnrichmentRunID and every field EnrichmentCandidateID must be supplied together or all omitted.
2026-07-24 04:43:52 +00:00
required :
- CompanyProductID
- BaseVersion
- IdempotencyKey
- Fields
properties :
CompanyProductID :
type : string
format : uuid
BaseVersion :
type : string
format : date-time
IdempotencyKey :
type : string
minLength : 8
maxLength : 120
pattern : "^[A-Za-z0-9._:-]+$"
2026-07-27 06:35:32 +00:00
EnrichmentRunID :
description : Optional completed Company Product enrichment run provenance
type : string
format : uuid
x-nullable : true
Fields :
2026-07-24 04:43:52 +00:00
type : array
minItems : 1
maxItems : 10
uniqueItems : true
items :
$ref : "#/definitions/CompanyProductProposalField"
additionalProperties : false
type : object
CompanyProductProposal :
description : Server-owned draft proposal; it does not imply approval or authoritative publication
required :
- ID
- TenantID
- CompanyProductID
- Operation
- Status
- BaseVersion
- ProposedByID
- ClientPrincipalKey
- CreatedDate
- LastModifiedDate
- Fields
properties :
ID :
type : string
format : uuid
TenantID :
type : string
format : uuid
CompanyProductID :
type : string
format : uuid
CompanyProductName :
type : string
x-nullable : true
Operation :
type : string
enum : [ update]
Status :
type : string
2026-07-27 06:35:32 +00:00
enum : [ draft, submitted, approved, rejected, applied]
2026-07-24 04:43:52 +00:00
BaseVersion :
type : string
format : date-time
ProposedByID :
type : string
format : uuid
ClientPrincipalKey :
type : string
CreatedDate :
type : string
format : date-time
LastModifiedDate :
type : string
format : date-time
SubmittedAt :
type : string
format : date-time
x-nullable : true
ReviewedByID :
type : string
format : uuid
x-nullable : true
ReviewedAt :
type : string
format : date-time
x-nullable : true
ReviewReason :
type : string
maxLength : 1000
x-nullable : true
2026-07-27 06:35:32 +00:00
EnrichmentRunID :
description : Optional completed Company Product enrichment run provenance
type : string
format : uuid
x-nullable : true
AppliedByID :
type : string
format : uuid
x-nullable : true
AppliedAt :
type : string
format : date-time
x-nullable : true
AppliedProductVersion :
description : Exact authoritative Product version produced by proposal application
type : string
format : date-time
x-nullable : true
Publication :
description : Bounded publication or republish receipt associated with this proposal
$ref : "#/definitions/CompanyProductPublication"
2026-07-24 04:43:52 +00:00
Fields :
type : array
items :
$ref : "#/definitions/CompanyProductProposalField"
type : object
CompanyProductProposalResponse :
description : A bounded collection of visible CompanyProduct proposals
required :
- Data
properties :
Data :
type : array
items :
$ref : "#/definitions/CompanyProductProposal"
type : object
CompanyProductProposalSubmitRequest :
description : Optimistic submission input; lifecycle and attribution remain server-owned
required :
- ExpectedLastModifiedDate
properties :
ExpectedLastModifiedDate :
type : string
format : date-time
additionalProperties : false
type : object
CompanyProductProposalFieldDecision :
description : One complete reviewer decision for a proposed field
required :
- FieldName
- Decision
properties :
FieldName :
type : string
enum :
- description
- enrichmentstatus
- fulldescription
- imagealttext
- imageurl
- logo
- name
- slug
- tagline
- url
Decision :
type : string
enum : [ accepted, rejected]
DecisionReason :
type : string
maxLength : 1000
additionalProperties : false
type : object
CompanyProductProposalReviewRequest :
description : Complete atomic field review; rejected fields require a decision reason
required :
- ExpectedLastModifiedDate
- ReviewReason
- Fields
properties :
ExpectedLastModifiedDate :
type : string
format : date-time
ReviewReason :
type : string
minLength : 1
maxLength : 1000
Fields :
type : array
minItems : 1
maxItems : 10
uniqueItems : true
items :
$ref : "#/definitions/CompanyProductProposalFieldDecision"
additionalProperties : false
type : object
2026-07-27 06:35:32 +00:00
CompanyProductProposalApplyRequest :
description : Optimistic application input; lifecycle and attribution remain server-owned
required :
- ExpectedLastModifiedDate
properties :
ExpectedLastModifiedDate :
description : LastModifiedDate observed while the proposal was approved
type : string
format : date-time
additionalProperties : false
type : object
CompanyProductProposalPublishRequest :
description : Explicit first-publication input; publication lifecycle and attribution remain server-owned
required :
- ExpectedLastModifiedDate
- IdempotencyKey
- Acknowledged
- Reason
properties :
ExpectedLastModifiedDate :
description : LastModifiedDate observed while the proposal was applied
type : string
format : date-time
IdempotencyKey :
type : string
minLength : 1
maxLength : 120
Acknowledged :
description : Explicit acknowledgement that publication makes this Product visible to published-catalog readers
type : boolean
enum : [ true ]
Reason :
type : string
minLength : 1
maxLength : 1000
additionalProperties : false
type : object
CompanyProductPublication :
description : Bounded append-only publication receipt; credentials and client principal keys are never exposed
required :
- ID
- CompanyProductID
- ProposalID
- Operation
- FromPublished
- ToPublished
- BaseVersion
- ResultingVersion
- ActorUserID
- Reason
- CreatedDate
properties :
ID :
type : string
format : uuid
CompanyProductID :
type : string
format : uuid
ProposalID :
type : string
format : uuid
Operation :
type : string
enum : [ publish, republish]
FromPublished :
type : boolean
ToPublished :
type : boolean
BaseVersion :
type : string
format : date-time
ResultingVersion :
type : string
format : date-time
ActorUserID :
type : string
format : uuid
Reason :
type : string
minLength : 1
maxLength : 1000
CreatedDate :
type : string
format : date-time
additionalProperties : false
type : object
2023-04-01 23:56:22 +00:00
CompanyProductResponse :
description : An array of CompanyProduct objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/company-product.yaml#/CompanyProduct"
2023-04-01 23:56:22 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
2023-05-28 16:22:37 +00:00
CompanyServiceRequest :
description : An array of CompanyService objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/company-service.yaml#/CompanyService"
2023-05-28 16:22:37 +00:00
type : array
type : object
CompanyServiceResponse :
description : An array of CompanyService objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/company-service.yaml#/CompanyService"
2023-05-28 16:22:37 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
2026-07-27 06:35:32 +00:00
EnrichmentRunRequest :
description : Browser-independent request for one governed Account, shared-catalog Company Product, or tenant-owned Company Service research profile; prompts, provider, model, and field allowlists remain server-owned
required :
- SubjectType
- SubjectID
- BaseVersion
- IdempotencyKey
properties :
SubjectType :
type : string
enum : [ account, company_product, company_service]
SubjectID :
type : string
format : uuid
BaseVersion :
type : string
format : date-time
IdempotencyKey :
type : string
minLength : 1
maxLength : 120
additionalProperties : false
type : object
EnrichmentSource :
description : One cited public web source; no page body or credential data is retained
required :
- ID
- URL
- RetrievedDate
properties :
ID :
type : string
format : uuid
URL :
type : string
format : uri
maxLength : 2048
Title :
type : string
maxLength : 512
RetrievedDate :
type : string
format : date-time
additionalProperties : false
type : object
EnrichmentCandidate :
description : One allowlisted human-editable field candidate supported by at least one cited source; no model confidence claim is made
required :
- ID
- FieldName
- ProposedValue
- Sources
properties :
ID :
type : string
format : uuid
FieldName :
type : string
pattern : '^(Name|AnnualRevenue|Phone|Website|Description|FullDescription|Industries|Industry|NumberOfEmployees|Location|Email|LinkedIn|Twitter|Facebook|FoundedDate|TagLine|description|enrichmentstatus|fulldescription|imagealttext|imageurl|logo|name|slug|tagline|url)$'
ProposedValue :
type : string
minLength : 1
maxLength : 20000
Rationale :
type : string
maxLength : 2000
Sources :
type : array
minItems : 1
maxItems : 12
items :
$ref : "#/definitions/EnrichmentSource"
additionalProperties : false
type : object
EnrichmentRun :
description : Durable source-backed research evidence; it never represents an authoritative subject write or publication
required :
- ID
- TenantID
- SubjectType
- SubjectID
- BaseVersion
- Status
- Provider
- Model
- PromptVersion
- RequestedByID
- CreatedDate
- StartedDate
- Candidates
properties :
ID :
type : string
format : uuid
TenantID :
type : string
format : uuid
SubjectType :
type : string
enum : [ account, company_product, company_service]
SubjectID :
type : string
format : uuid
BaseVersion :
type : string
format : date-time
Status :
type : string
enum : [ running, completed, failed]
Provider :
type : string
maxLength : 40
Model :
type : string
maxLength : 80
PromptVersion :
type : string
maxLength : 80
ProviderResponseID :
type : string
maxLength : 120
FailureCode :
type : string
maxLength : 80
RequestedByID :
type : string
format : uuid
CreatedDate :
type : string
format : date-time
StartedDate :
type : string
format : date-time
CompletedDate :
type : string
format : date-time
Candidates :
type : array
maxItems : 16
items :
$ref : "#/definitions/EnrichmentCandidate"
additionalProperties : false
type : object
PortfolioEnrichmentSource :
description : One immutable public web citation used by portfolio_enrichment.v1; no page body or credential data is retained
required :
- ID
- URL
- SourceClass
- RetrievedDate
properties :
ID :
type : string
format : uuid
URL :
type : string
format : uri
maxLength : 2048
SourceClass :
type : string
enum : [ official, regulatory, independent_reporting, analyst_research, marketplace, other]
Title :
type : string
maxLength : 512
RetrievedDate :
type : string
format : date-time
Locator :
type : string
maxLength : 512
ExcerptHash :
type : string
pattern : '^sha256:[a-f0-9]{64}$'
additionalProperties : false
type : object
PortfolioEnrichmentField :
description : One Research-assembled Product or Service field comparison in portfolio_enrichment.v1
required :
- ID
- FieldName
- ExistingValueCaptured
- ProposedValue
- NormalizedValue
- ObservedDate
- Sources
properties :
ID :
type : string
format : uuid
FieldName :
type : string
pattern : '^(description|fulldescription|imagealttext|imageurl|logo|name|slug|tagline|url)$'
ExistingValue :
type : string
maxLength : 20000
ExistingValueCaptured :
type : boolean
ProposedValue :
type : string
minLength : 1
maxLength : 20000
NormalizedValue :
type : string
minLength : 1
maxLength : 20000
ObservedDate :
type : string
format : date-time
Sources :
type : array
minItems : 1
maxItems : 12
items :
$ref : "#/definitions/PortfolioEnrichmentSource"
additionalProperties : false
type : object
PortfolioEnrichmentObservedField :
description : One normalized, cited Product or Service field observation emitted by the non-authoritative worker
required :
- FieldName
- ProposedValue
- NormalizedValue
- ObservedDate
- Sources
properties :
FieldName :
type : string
pattern : '^(description|fulldescription|imagealttext|imageurl|logo|name|slug|tagline|url)$'
ProposedValue :
type : string
minLength : 1
maxLength : 20000
NormalizedValue :
type : string
minLength : 1
maxLength : 20000
ObservedDate :
type : string
format : date-time
Sources :
type : array
minItems : 1
maxItems : 12
items :
$ref : "#/definitions/PortfolioEnrichmentSource"
additionalProperties : false
type : object
PortfolioEnrichmentMatchFact :
description : One deterministic comparison used during reconciliation; it is not a model-confidence score
required :
- Rule
- CandidateValue
- TargetValue
- Matched
properties :
Rule :
type : string
enum : [ exact_name_v1, normalized_name_v1, token_sort_name_v1, exact_url_v1, normalized_url_v1, alias_v1]
CandidateValue :
type : string
minLength : 1
maxLength : 2048
TargetValue :
type : string
minLength : 1
maxLength : 2048
Matched :
type : boolean
TargetID :
type : string
minLength : 1
maxLength : 64
pattern : '^[A-Za-z0-9_-]+$'
Score :
type : number
format : double
minimum : 0
maximum : 100
Threshold :
type : number
format : double
minimum : 0
maximum : 100
additionalProperties : false
type : object
PortfolioEnrichmentPotentialMatch :
description : One unselected authoritative alternative retained for human reconciliation; it never grants write authority
required :
- TargetID
- TargetBaseVersion
- TargetLabel
- MatchFacts
properties :
TargetID :
type : string
minLength : 1
maxLength : 64
pattern : '^[A-Za-z0-9_-]+$'
TargetBaseVersion :
type : string
format : date-time
TargetLabel :
type : string
minLength : 1
maxLength : 255
MatchFacts :
type : array
minItems : 1
maxItems : 24
items :
$ref : "#/definitions/PortfolioEnrichmentMatchFact"
additionalProperties : false
type : object
PortfolioEnrichmentInputFact :
description : One bounded Account input supplied by an authoritative Account snapshot or an operator fact sheet
required :
- Name
- Value
- SourceType
properties :
Name :
type : string
pattern : '^[a-z][a-z0-9_]{0,119}$'
maxLength : 120
Value :
type : string
minLength : 1
maxLength : 20000
SourceType :
type : string
enum : [ authoritative_account, operator_fact_sheet]
additionalProperties : false
type : object
PortfolioEnrichmentInput :
description : Bounded, non-secret Account context used for one portfolio_enrichment.v1 run
required :
- AccountName
- Facts
properties :
AccountName :
type : string
minLength : 1
maxLength : 255
AccountWebsite :
type : string
format : uri
maxLength : 2048
Facts :
type : array
maxItems : 100
items :
$ref : "#/definitions/PortfolioEnrichmentInputFact"
FactSheetDigest :
type : string
pattern : '^sha256:[a-f0-9]{64}$'
additionalProperties : false
type : object
PortfolioOperatorOffering :
description : One bounded operator-supplied offering lead; Research treats every field as untrusted context and verifies it against public evidence
required :
- Name
properties :
Name :
type : string
minLength : 1
maxLength : 255
EntityTypeHint :
type : string
enum : [ company_product, company_service, unspecified]
Description :
type : string
minLength : 1
maxLength : 2000
URL :
type : string
format : uri
maxLength : 2048
additionalProperties : false
type : object
PortfolioOperatorFacts :
description : Optional bounded portfolio_operator_facts.v1 discovery context; it contains no authority, provider, model, prompt, tenant, or actor controls
required :
- ProtocolVersion
properties :
ProtocolVersion :
type : string
enum : [ portfolio_operator_facts.v1]
CompanyOverview :
type : string
minLength : 1
maxLength : 4000
Offerings :
type : array
maxItems : 50
items :
$ref : "#/definitions/PortfolioOperatorOffering"
additionalProperties : false
type : object
PortfolioEnrichmentRunRequest :
description : Minimal browser-independent request for one Account portfolio research run with optional bounded portfolio_operator_facts.v1 discovery context; Research resolves the authoritative input snapshot and owns the fact digest, fact source, provider, model, prompt, tenant, actor, lifecycle, matching, action, and save-path fields
required :
- AccountID
- AccountBaseVersion
- IdempotencyKey
properties :
AccountID :
type : string
format : uuid
AccountBaseVersion :
type : string
format : date-time
IdempotencyKey :
type : string
minLength : 16
maxLength : 120
pattern : '^[A-Za-z0-9_-]+$'
OperatorFacts :
$ref : "#/definitions/PortfolioOperatorFacts"
additionalProperties : false
type : object
PortfolioReconciliationFieldSelection :
description : One operator-selected value bound to an immutable field in the completed portfolio enrichment run; Research revalidates the field identity, name, value, and entity-specific bounds
required :
- CandidateFieldID
- FieldName
- Value
properties :
CandidateFieldID :
type : string
format : uuid
FieldName :
type : string
enum :
- description
- fulldescription
- imagealttext
- imageurl
- logo
- name
- slug
- tagline
- url
Value :
type : string
minLength : 1
maxLength : 20000
additionalProperties : false
type : object
PortfolioReconciliationRequest :
description : Strict one-candidate Discovery-mode direct create or Service update request. The completed run, tenant, Account, policy, candidate action and save path, source provenance, target identity, versions, attribution, and receipt are server-owned.
required :
- Mode
- Action
- EntityType
- CandidateID
- Fields
- Acknowledged
- IdempotencyKey
properties :
Mode :
type : string
enum : [ discovery]
Action :
type : string
enum : [ create, update]
EntityType :
type : string
enum : [ company_product, company_service]
CandidateID :
type : string
format : uuid
Fields :
type : array
minItems : 1
maxItems : 9
uniqueItems : true
items :
$ref : "#/definitions/PortfolioReconciliationFieldSelection"
Acknowledged :
description : Explicit acknowledgement that this operation creates one authoritative Product or Service, or updates one authoritative Service, and appends an immutable receipt
type : boolean
enum : [ true ]
IdempotencyKey :
type : string
minLength : 16
maxLength : 120
pattern : '^[A-Za-z0-9._:-]+$'
additionalProperties : false
type : object
PortfolioReconciliationReceipt :
description : Bounded immutable evidence for one Discovery-mode authoritative create or compare-and-swap update. It exposes only safe attribution identifiers and never credentials, request tokens, provider response IDs, source bodies, or policy reasons.
required :
- ID
- RunID
- CandidateID
- Mode
- EntityType
- Action
- TargetID
- TargetResultVersion
- PolicyRevision
- ActorUserID
- ClientPrincipalID
- ClientPrincipalKey
- CreatedDate
properties :
ID :
type : string
format : uuid
RunID :
type : string
format : uuid
CandidateID :
type : string
format : uuid
Mode :
type : string
enum : [ discovery]
EntityType :
type : string
enum : [ company_product, company_service]
Action :
type : string
enum : [ create, update]
TargetID :
type : string
format : uuid
TargetBeforeVersion :
description : Exact authoritative version checked before an update; omitted for create
type : string
format : date-time
TargetResultVersion :
type : string
format : date-time
PolicyRevision :
type : integer
format : int64
minimum : 1
ActorUserID :
type : string
format : uuid
ClientPrincipalID :
type : string
format : uuid
ClientPrincipalKey :
description : Stable service-principal label, never a credential value
type : string
minLength : 1
maxLength : 80
pattern : '^[A-Za-z0-9._:-]+$'
CreatedDate :
type : string
format : date-time
additionalProperties : false
type : object
PortfolioEnrichmentClassification :
description : One cited classification label discovered for a Product or Service
required :
- Label
- NormalizedLabel
- ObservedDate
- Sources
properties :
Label :
type : string
minLength : 1
maxLength : 255
NormalizedLabel :
type : string
minLength : 1
maxLength : 255
ObservedDate :
type : string
format : date-time
Sources :
type : array
minItems : 1
maxItems : 12
items :
$ref : "#/definitions/PortfolioEnrichmentSource"
additionalProperties : false
type : object
PortfolioEnrichmentSummary :
description : One cited human-readable executive summary for a completed portfolio_enrichment.v1 run
required :
- Text
- ObservedDate
- Sources
properties :
Text :
type : string
minLength : 1
maxLength : 20000
ObservedDate :
type : string
format : date-time
Sources :
type : array
minItems : 1
maxItems : 12
items :
$ref : "#/definitions/PortfolioEnrichmentSource"
additionalProperties : false
type : object
PortfolioEnrichmentWorkerObservation :
description : One non-authoritative worker observation; launch and rebrand resolve to a worker candidate while retirement and stale may describe an absent catalog entry
required :
- Kind
- SubjectEntityType
- SubjectName
- Summary
- ObservedDate
- Sources
properties :
Kind :
type : string
enum : [ launch, rebrand, retirement, stale]
SubjectEntityType :
type : string
enum : [ company_product, company_service]
SubjectName :
type : string
minLength : 1
maxLength : 255
WorkerKey :
type : string
pattern : '^[a-z0-9][a-z0-9._:-]{0,119}$'
maxLength : 120
Summary :
type : string
minLength : 1
maxLength : 2000
ObservedDate :
type : string
format : date-time
Sources :
type : array
minItems : 1
maxItems : 12
items :
$ref : "#/definitions/PortfolioEnrichmentSource"
additionalProperties : false
type : object
PortfolioEnrichmentRunObservation :
description : One Research-assembled launch, rebrand, retirement, or stale-offering observation bound to stable run or authoritative identity
required :
- ID
- Kind
- SubjectEntityType
- SubjectName
- Summary
- ObservedDate
- Sources
properties :
ID :
type : string
format : uuid
Kind :
type : string
enum : [ launch, rebrand, retirement, stale]
SubjectEntityType :
type : string
enum : [ company_product, company_service]
SubjectName :
type : string
minLength : 1
maxLength : 255
CandidateID :
type : string
format : uuid
TargetID :
type : string
minLength : 1
maxLength : 64
pattern : '^[A-Za-z0-9_-]+$'
TargetBaseVersion :
type : string
format : date-time
Summary :
type : string
minLength : 1
maxLength : 2000
ObservedDate :
type : string
format : date-time
Sources :
type : array
minItems : 1
maxItems : 12
items :
$ref : "#/definitions/PortfolioEnrichmentSource"
additionalProperties : false
type : object
PortfolioEnrichmentQueryEvidence :
description : One bounded public-web search fact used to derive coverage; the adapter verifies QueryText against the provider web-search trace
required :
- ID
- Purpose
- QueryText
- SourceIDs
properties :
ID :
type : string
format : uuid
Purpose :
type : string
enum : [ portfolio_overview, product_catalog, service_catalog, launches_changes, retirements_staleness, classification]
QueryText :
type : string
minLength : 1
maxLength : 512
SourceIDs :
type : array
minItems : 1
maxItems : 50
uniqueItems : true
items :
type : string
format : uuid
additionalProperties : false
type : object
PortfolioEnrichmentRelationshipCandidate :
description : One deterministic proposed Product-to-Industry or Service-to-Industry relationship; no relationship is applied by the research contract
required :
- ID
- RelationshipType
- TargetID
- TargetLabel
- ExistingRelationshipCaptured
- ReconciliationAction
- MatchFacts
- ObservedDate
- Sources
properties :
ID :
type : string
format : uuid
RelationshipType :
type : string
enum : [ industry_product, industry_service]
TargetID :
type : string
minLength : 1
maxLength : 64
pattern : '^[A-Za-z0-9_-]+$'
TargetLabel :
type : string
minLength : 1
maxLength : 255
ExistingRelationshipCaptured :
description : Research confirmed whether the authoritative junction exists
type : boolean
ExistingRelationshipID :
type : string
minLength : 1
maxLength : 64
pattern : '^[A-Za-z0-9_-]+$'
ExistingRelationshipBaseVersion :
type : string
format : date-time
ReconciliationAction :
type : string
enum : [ create, unchanged, ignore]
MatchFacts :
type : array
maxItems : 24
items :
$ref : "#/definitions/PortfolioEnrichmentMatchFact"
ObservedDate :
type : string
format : date-time
Sources :
type : array
minItems : 1
maxItems : 12
items :
$ref : "#/definitions/PortfolioEnrichmentSource"
additionalProperties : false
type : object
PortfolioEnrichmentWorkerCoverageClaim :
description : Non-authoritative completeness claim emitted by the worker; Research recomputes final coverage
required :
- ClaimedStatus
- ProductCount
- ServiceCount
- QueryCount
- SourceCount
- OmittedReasons
properties :
ClaimedStatus :
type : string
enum : [ complete, partial, insufficient_evidence, truncated]
ProductCount :
type : integer
format : int64
minimum : 0
maximum : 10000
ServiceCount :
type : integer
format : int64
minimum : 0
maximum : 10000
QueryCount :
type : integer
format : int64
minimum : 0
maximum : 10000
SourceCount :
type : integer
format : int64
minimum : 0
maximum : 10000
OmittedReasons :
type : array
maxItems : 100
items :
type : string
minLength : 1
maxLength : 1000
additionalProperties : false
type : object
PortfolioEnrichmentCoverage :
description : Research-derived completeness statement for one bounded portfolio research result
required :
- Status
- PolicyVersion
- ProductCount
- ServiceCount
- QueryCount
- SourceCount
- UniqueHostCount
- OmittedReasons
properties :
Status :
type : string
enum : [ complete, partial, insufficient_evidence, truncated]
PolicyVersion :
type : string
enum : [ portfolio_coverage.v1]
ProductCount :
type : integer
format : int64
minimum : 0
maximum : 10000
ServiceCount :
type : integer
format : int64
minimum : 0
maximum : 10000
QueryCount :
type : integer
format : int64
minimum : 0
maximum : 10000
SourceCount :
type : integer
format : int64
minimum : 0
maximum : 10000
UniqueHostCount :
type : integer
format : int64
minimum : 0
maximum : 10000
OmittedReasons :
type : array
maxItems : 100
items :
type : string
minLength : 1
maxLength : 1000
additionalProperties : false
type : object
PortfolioEnrichmentWorkerCandidate :
description : One non-authoritative cited Product or Service observation emitted by the Python worker
required :
- WorkerKey
- EntityType
- NormalizedName
- Aliases
- Fields
- Classifications
- Warnings
properties :
WorkerKey :
type : string
pattern : '^[a-z0-9][a-z0-9._:-]{0,119}$'
maxLength : 120
EntityType :
type : string
enum : [ company_product, company_service]
NormalizedName :
type : string
minLength : 1
maxLength : 80
NormalizedURL :
type : string
format : uri
maxLength : 255
Aliases :
type : array
maxItems : 50
items :
type : string
minLength : 1
maxLength : 80
Fields :
type : array
minItems : 1
maxItems : 16
items :
$ref : "#/definitions/PortfolioEnrichmentObservedField"
Classifications :
type : array
maxItems : 50
items :
$ref : "#/definitions/PortfolioEnrichmentClassification"
Warnings :
type : array
maxItems : 24
items :
type : string
minLength : 1
maxLength : 1000
additionalProperties : false
type : object
PortfolioEnrichmentWorkerResult :
description : Non-authoritative portfolio_enrichment.v1 evidence emitted by the Python worker; Research owns all run, tenant, actor, target, match, action, and lifecycle state
required :
- ProtocolVersion
- ExecutionMode
- Disclosure
- ExecutiveSummary
- CoverageClaim
- Queries
- NoteworthyObservations
- Products
- Services
- Warnings
properties :
ProtocolVersion :
type : string
enum : [ portfolio_enrichment.v1]
ExecutionMode :
type : string
enum : [ live, simulation]
Disclosure :
type : string
enum :
- "Live research evidence: operator review required before any save."
- "Simulation: operator review required before any save."
ExecutiveSummary :
$ref : "#/definitions/PortfolioEnrichmentSummary"
CoverageClaim :
$ref : "#/definitions/PortfolioEnrichmentWorkerCoverageClaim"
Queries :
type : array
maxItems : 50
items :
$ref : "#/definitions/PortfolioEnrichmentQueryEvidence"
NoteworthyObservations :
type : array
maxItems : 100
items :
$ref : "#/definitions/PortfolioEnrichmentWorkerObservation"
Products :
type : array
maxItems : 250
items :
$ref : "#/definitions/PortfolioEnrichmentWorkerCandidate"
Services :
type : array
maxItems : 250
items :
$ref : "#/definitions/PortfolioEnrichmentWorkerCandidate"
Warnings :
type : array
maxItems : 100
items :
type : string
minLength : 1
maxLength : 1000
additionalProperties : false
type : object
PortfolioEnrichmentCandidate :
description : One human-reviewable Product or Service candidate in portfolio_enrichment.v1; the action remains editable until an independently authorized save
required :
- ID
- WorkerKey
- EntityType
- NormalizedName
- Aliases
- Fields
- Classifications
- MatchFacts
- PotentialMatches
- Relationships
- ReconciliationAction
- SavePath
- Warnings
properties :
ID :
type : string
format : uuid
WorkerKey :
type : string
pattern : '^[a-z0-9][a-z0-9._:-]{0,119}$'
maxLength : 120
EntityType :
type : string
enum : [ company_product, company_service]
TargetID :
type : string
minLength : 1
maxLength : 64
pattern : '^[A-Za-z0-9_-]+$'
TargetBaseVersion :
type : string
format : date-time
NormalizedName :
type : string
minLength : 1
maxLength : 80
NormalizedURL :
type : string
format : uri
maxLength : 255
Aliases :
type : array
maxItems : 50
items :
type : string
minLength : 1
maxLength : 80
Fields :
type : array
minItems : 1
maxItems : 16
items :
$ref : "#/definitions/PortfolioEnrichmentField"
Classifications :
type : array
maxItems : 50
items :
$ref : "#/definitions/PortfolioEnrichmentClassification"
MatchFacts :
type : array
maxItems : 24
items :
$ref : "#/definitions/PortfolioEnrichmentMatchFact"
PotentialMatches :
type : array
maxItems : 24
items :
$ref : "#/definitions/PortfolioEnrichmentPotentialMatch"
Relationships :
type : array
maxItems : 100
items :
$ref : "#/definitions/PortfolioEnrichmentRelationshipCandidate"
ReconciliationAction :
type : string
enum : [ create, update, unchanged, possible_duplicate, ignore]
SavePath :
description : Server-derived native write boundary for the current reconciliation action; it does not itself authorize or perform a write
type : string
enum : [ direct_create, direct_update, governed_update_proposal, none]
Warnings :
type : array
maxItems : 24
items :
type : string
minLength : 1
maxLength : 1000
additionalProperties : false
type : object
PortfolioEnrichmentRun :
description : Account-scoped portfolio_enrichment.v1 research result containing Product and Service candidates together; it is immutable evidence and never an authoritative write or publication
required :
- ProtocolVersion
- ID
- TenantID
- AccountID
- AccountBaseVersion
- Input
- Status
- Provider
- Model
- PromptVersion
- ExecutionMode
- Disclosure
- RequestedByID
- CreatedDate
- StartedDate
- Coverage
- Queries
- NoteworthyObservations
- Products
- Services
- Warnings
properties :
ProtocolVersion :
type : string
enum : [ portfolio_enrichment.v1]
ID :
type : string
format : uuid
TenantID :
type : string
format : uuid
AccountID :
type : string
minLength : 1
maxLength : 64
pattern : '^[A-Za-z0-9_-]+$'
AccountBaseVersion :
type : string
format : date-time
Input :
$ref : "#/definitions/PortfolioEnrichmentInput"
Status :
type : string
enum : [ running, completed, failed]
Provider :
type : string
minLength : 1
maxLength : 40
Model :
type : string
minLength : 1
maxLength : 80
PromptVersion :
type : string
minLength : 1
maxLength : 80
ProviderResponseID :
type : string
maxLength : 120
FailureCode :
type : string
maxLength : 80
ExecutionMode :
type : string
enum : [ live, simulation]
Disclosure :
type : string
enum :
- "Live research evidence: operator review required before any save."
- "Simulation: operator review required before any save."
RequestedByID :
type : string
format : uuid
CreatedDate :
type : string
format : date-time
StartedDate :
type : string
format : date-time
CompletedDate :
type : string
format : date-time
ExecutiveSummary :
$ref : "#/definitions/PortfolioEnrichmentSummary"
Coverage :
$ref : "#/definitions/PortfolioEnrichmentCoverage"
Queries :
type : array
maxItems : 50
items :
$ref : "#/definitions/PortfolioEnrichmentQueryEvidence"
NoteworthyObservations :
type : array
maxItems : 100
items :
$ref : "#/definitions/PortfolioEnrichmentRunObservation"
Products :
type : array
maxItems : 250
items :
$ref : "#/definitions/PortfolioEnrichmentCandidate"
Services :
type : array
maxItems : 250
items :
$ref : "#/definitions/PortfolioEnrichmentCandidate"
Warnings :
type : array
maxItems : 100
items :
type : string
minLength : 1
maxLength : 1000
additionalProperties : false
type : object
2023-03-28 17:47:34 +00:00
DeleteResponse :
properties :
Data :
2022-09-07 00:16:25 +00:00
items :
2023-03-28 17:47:34 +00:00
$ref : "#/definitions/Message"
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
2022-09-07 00:16:25 +00:00
type : object
2023-03-28 17:47:34 +00:00
Error :
2023-04-15 14:27:18 +00:00
$ref : ../../lib/swagger/defs/error.yaml#/Error
2023-04-01 23:56:22 +00:00
FactorRequest :
description : An array of Factor objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/factor.yaml#/Factor"
2023-04-01 23:56:22 +00:00
type : array
type : object
FactorResponse :
description : An array of Factor objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/factor.yaml#/Factor"
2023-04-01 23:56:22 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
FinancialStatementRequest :
description : An array of FinancialStatement objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/financial-statement.yaml#/FinancialStatement"
2023-04-01 23:56:22 +00:00
type : array
type : object
FinancialStatementResponse :
description : An array of FinancialStatement objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/financial-statement.yaml#/FinancialStatement"
2023-04-01 23:56:22 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
IndustryCompanyRequest :
description : An array of IndustryCompany objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/industry-company.yaml#/IndustryCompany"
2023-04-01 23:56:22 +00:00
type : array
type : object
IndustryCompanyResponse :
description : An array of IndustryCompany objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/industry-company.yaml#/IndustryCompany"
2023-04-01 23:56:22 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
IndustryProductRequest :
description : An array of IndustryProduct objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/industry-product.yaml#/IndustryProduct"
2023-04-01 23:56:22 +00:00
type : array
type : object
IndustryProductResponse :
description : An array of IndustryProduct objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/industry-product.yaml#/IndustryProduct"
2023-04-01 23:56:22 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
2023-05-28 16:22:37 +00:00
IndustryServiceRequest :
description : An array of IndustryService objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/industry-service.yaml#/IndustryService"
2023-05-28 16:22:37 +00:00
type : array
type : object
IndustryServiceResponse :
description : An array of IndustryService objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/industry-service.yaml#/IndustryService"
2023-05-28 16:22:37 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
2022-09-07 00:16:25 +00:00
IndustryRequest :
description : An array of Industry objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/industry.yaml#/Industry"
2022-09-07 00:16:25 +00:00
type : array
type : object
IndustryResponse :
description : An array of Industry objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/industry.yaml#/Industry"
2022-09-07 00:16:25 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
InvalidError :
allOf :
- $ref : "#/definitions/Error"
- properties :
details :
items :
type : string
type : array
type : object
Message :
properties :
message :
type : string
ref :
type : string
status :
format : int64
type : number
type : object
2023-04-01 23:56:22 +00:00
ObservationRequest :
description : An array of Observation objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/observation.yaml#/Observation"
2023-04-01 23:56:22 +00:00
type : array
type : object
ObservationResponse :
description : An array of Observation objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/observation.yaml#/Observation"
2023-04-01 23:56:22 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object
2022-09-07 00:16:25 +00:00
Pagination :
properties :
limit :
format : int64
type : number
pagesize :
format : int64
type : number
poffset :
format : int64
type : integer
setsize :
format : int64
type : number
type : object
RequestMeta :
properties :
2023-06-05 00:09:35 +00:00
ExternalAccount :
2023-03-28 17:47:34 +00:00
description : Account Number of the Reseller or OEM
2022-09-07 00:16:25 +00:00
type : string
required :
2023-06-05 00:09:35 +00:00
- ExternalAccount
2022-09-07 00:16:25 +00:00
type : object
ResponseMeta :
properties :
Contact :
description : Microservice Contact Info
type : string
Copyright :
description : Copyright Info
type : string
License :
description : License Information and Restrictions
type : string
OperationID :
description : Operation ID
type : string
Pagination :
$ref : "#/definitions/Pagination"
RequestIP :
description : Request IP Address
type : string
RequestType :
description : Request Type
type : string
RequestURL :
description : Request URL
type : string
ServerInfo :
description : Data Server Info
type : string
ServerResponseTime :
description : Data Server Response Time (ms)
type : string
ServerTimestamp :
description : Backend Server Timestamp
type : string
2023-06-05 00:09:35 +00:00
ExternalAccount :
2023-03-28 17:47:34 +00:00
description : Account Number used for recording transactions
type : string
type : object
TopicRequest :
description : An array of Topic objects submitted for processing
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/topic.yaml#/Topic"
2023-03-28 17:47:34 +00:00
type : array
type : object
TopicResponse :
description : An array of Topic objects produced in response to a request
properties :
Data :
items :
Refactor Swagger definitions to use external references for Address, CompanyProduct, CompanyService, Factor, FinancialStatement, Industry, IndustryCompany, IndustryProduct, IndustryService, Observation, and Topic. This improves modularity and maintainability of the API specification.
2025-05-01 18:45:54 +00:00
$ref : "../../lib/swagger/defs/topic.yaml#/Topic"
2023-03-28 17:47:34 +00:00
type : array
Meta :
$ref : "#/definitions/ResponseMeta"
type : object