Crawdar Workspaces API
The Workspaces API from Crawdar — 4 operation(s) for workspaces.
Operations 7
POST
/api/v1/workspaces/{id}/research
Research up to three businesses and retain public problem evidence
#
The Workspaces API from Crawdar — 4 operation(s) for workspaces.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/crawdar-com:crawdar-com-workspaces-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Crawdar Com Workspaces API
version: 1.10.0
description: 'Operations tagged Workspaces across 2 of this provider''s published API definitions: crawdar-com-openapi.json, crawdar-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://crawdar.com
tags:
- name: Workspaces
paths:
/api/v1/workspaces:
get:
operationId: listOpportunityWorkspaces
summary: List private account opportunity workspaces
security:
- AgentKey: []
- BearerKey: []
responses:
'200':
description: Account-owned workspaces only
content:
application/json:
schema:
type: object
required:
- workspaces
properties:
workspaces:
type: array
items:
$ref: '#/components/schemas/WorkspaceRecord'
'401':
description: Verified account or account-linked API key required
'403':
description: Browser mutations require the same origin
'404':
description: Workspace not found for this account
'409':
description: Revision conflict or account workspace limit; reload before retrying
'503':
description: Workspace service unavailable
tags:
- Workspaces
post:
operationId: createOpportunityWorkspace
summary: Create a private opportunity workspace
security:
- AgentKey: []
- BearerKey: []
parameters:
- name: Idempotency-Key
in: header
schema:
type: string
minLength: 8
maxLength: 128
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
additionalProperties: false
properties:
name:
type: string
minLength: 1
maxLength: 200
profile:
$ref: '#/components/schemas/WorkspaceProfile'
responses:
'200':
description: Idempotent creation replay
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceRecord'
'201':
description: Workspace created
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceRecord'
'400':
description: Invalid workspace or idempotency key
'401':
description: Verified account or account-linked API key required
'403':
description: Browser mutations require the same origin
'404':
description: Workspace not found for this account
'409':
description: Revision conflict or account workspace limit; reload before retrying
'503':
description: Workspace service unavailable
tags:
- Workspaces
servers:
- url: https://crawdar.com
/api/v1/workspaces/{id}:
get:
operationId: getOpportunityWorkspace
summary: Read a private workspace and current revision
security:
- AgentKey: []
- BearerKey: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Workspace record
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceRecord'
'401':
description: Verified account or account-linked API key required
'403':
description: Browser mutations require the same origin
'404':
description: Workspace not found for this account
'409':
description: Revision conflict or account workspace limit; reload before retrying
'503':
description: Workspace service unavailable
tags:
- Workspaces
patch:
operationId: updateOpportunityWorkspace
summary: Apply one validated command using the current revision
description: Public signals never establish purchase intent. Commercial milestones are manually recorded with supporting evidence, sequentially per business. No external communication, payment, or delivery is executed.
security:
- AgentKey: []
- BearerKey: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- revision
- command
additionalProperties: false
properties:
revision:
type: integer
minimum: 1
command:
$ref: '#/components/schemas/WorkspaceCommand'
responses:
'200':
description: Updated workspace
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceRecord'
'400':
description: Invalid command or unmet evidence milestone gate
'401':
description: Verified account or account-linked API key required
'403':
description: Browser mutations require the same origin
'404':
description: Workspace not found for this account
'409':
description: Revision conflict or account workspace limit; reload before retrying
'503':
description: Workspace service unavailable
tags:
- Workspaces
delete:
operationId: deleteOpportunityWorkspace
summary: Delete an account-owned workspace at its current revision
security:
- AgentKey: []
- BearerKey: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: revision
in: query
required: true
schema:
type: integer
minimum: 1
responses:
'200':
description: Workspace deleted
'401':
description: Verified account or account-linked API key required
'403':
description: Browser mutations require the same origin
'404':
description: Workspace not found for this account
'409':
description: Revision conflict or account workspace limit; reload before retrying
'503':
description: Workspace service unavailable
tags:
- Workspaces
servers:
- url: https://crawdar.com
/api/v1/workspaces/{id}/research:
post:
operationId: researchOpportunityWorkspace
summary: Research up to three businesses and retain public problem evidence
description: Bounded public review research subject to provider limits. Findings remain observed signals, not owner-confirmed needs, willingness to pay, or complete market coverage.
security:
- AgentKey: []
- BearerKey: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- revision
additionalProperties: false
properties:
revision:
type: integer
minimum: 1
target:
type: string
maxLength: 220
geography:
type: string
maxLength: 140
problemCategories:
type: array
maxItems: 7
items:
type: string
responses:
'200':
description: Workspace with findings, coverage and limitations
content:
application/json:
schema:
$ref: '#/components/schemas/WorkspaceRecord'
'400':
description: Invalid research brief
'401':
description: Verified account or account-linked API key required
'403':
description: Browser mutations require the same origin
'404':
description: Workspace not found for this account
'409':
description: Revision conflict or account workspace limit; reload before retrying
'429':
description: Account or provider research limit reached
'503':
description: Workspace service unavailable
tags:
- Workspaces
servers:
- url: https://crawdar.com
/api/v1/workspaces/{id}/export:
get:
operationId: exportOpportunityWorkspace
summary: Export private workspace evidence or a delivery-packet draft
description: Private export only. Does not publish a shared Atlas or authorize contacting a business, delivery, or payment.
security:
- AgentKey: []
- BearerKey: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: format
in: query
schema:
enum:
- json
- markdown
default: json
- name: opportunityId
in: query
schema:
type: string
format: uuid
description: Optional opportunity id to export a delivery-packet draft.
responses:
'200':
description: Private downloadable export
content:
application/json:
schema:
type: object
additionalProperties: true
text/markdown:
schema:
type: string
'401':
description: Verified account or account-linked API key required
'403':
description: Browser mutations require the same origin
'404':
description: Workspace not found for this account
'409':
description: Revision conflict or account workspace limit; reload before retrying
'503':
description: Workspace service unavailable
tags:
- Workspaces
servers:
- url: https://crawdar.com
components:
schemas:
WorkspaceCommand:
oneOf:
- type: object
required:
- type
- profile
properties:
type:
const: update_profile
profile:
$ref: '#/components/schemas/WorkspaceProfile'
additionalProperties: false
- type: object
required:
- type
- opportunity
properties:
type:
const: add_opportunity
opportunity:
type: object
properties:
title:
type: string
maxLength: 200
problem:
type: string
maxLength: 3000
industry:
type: string
maxLength: 3000
geography:
type: string
maxLength: 3000
proposedSolution:
type: string
maxLength: 3000
requiredSkills:
type: array
maxItems: 30
items:
type: string
maxLength: 300
uncertainties:
type: array
maxItems: 30
items:
type: string
maxLength: 300
counterargument:
type: string
maxLength: 3000
additionalProperties: false
required:
- title
- problem
additionalProperties: false
- type: object
required:
- type
- opportunityId
- patch
properties:
type:
const: update_opportunity
opportunityId:
type: string
format: uuid
patch:
type: object
properties:
title:
type: string
maxLength: 200
problem:
type: string
maxLength: 3000
industry:
type: string
maxLength: 3000
geography:
type: string
maxLength: 3000
proposedSolution:
type: string
maxLength: 3000
requiredSkills:
type: array
maxItems: 30
items:
type: string
maxLength: 300
uncertainties:
type: array
maxItems: 30
items:
type: string
maxLength: 300
counterargument:
type: string
maxLength: 3000
additionalProperties: false
additionalProperties: false
- type: object
required:
- type
- opportunityId
- business
properties:
type:
const: add_business
opportunityId:
type: string
format: uuid
business:
type: object
required:
- name
additionalProperties: false
properties:
name:
type: string
maxLength: 200
website:
type: string
format: uri
location:
type: string
maxLength: 3000
contactPreference:
enum:
- unknown
- do_not_contact
- introductions_allowed
contactPreferenceSource:
type: string
format: uri
contactPreferenceRecordedAt:
type: string
format: date-time
additionalProperties: false
- type: object
required:
- type
- opportunityId
- evidence
properties:
type:
const: add_evidence
opportunityId:
type: string
format: uuid
evidence:
$ref: '#/components/schemas/WorkspaceEvidence'
additionalProperties: false
- type: object
required:
- type
- opportunityId
- validation
properties:
type:
const: add_validation
opportunityId:
type: string
format: uuid
validation:
$ref: '#/components/schemas/WorkspaceValidation'
additionalProperties: false
- type: object
required:
- type
- opportunityId
- reason
properties:
type:
const: retire_opportunity
opportunityId:
type: string
format: uuid
reason:
type: string
maxLength: 3000
additionalProperties: false
- type: object
required:
- type
- monitor
properties:
type:
const: add_monitor
monitor:
type: object
required:
- name
- query
- cadence
properties:
name:
type: string
maxLength: 3000
query:
type: string
maxLength: 3000
cadence:
enum:
- daily
- weekly
opportunityId:
type: string
format: uuid
additionalProperties: false
additionalProperties: false
- type: object
required:
- type
- monitorId
- status
properties:
type:
const: update_monitor
monitorId:
type: string
format: uuid
status:
enum:
- active
- paused
additionalProperties: false
- type: object
required:
- type
- signal
properties:
type:
const: record_signal
signal:
type: object
required:
- monitorId
- sourceUrl
- summary
- eventDate
- kind
properties:
monitorId:
type: string
format: uuid
opportunityId:
type: string
format: uuid
sourceUrl:
type: string
format: uri
summary:
type: string
maxLength: 3000
eventDate:
type: string
format: date-time
kind:
enum:
- new_evidence
- changed
- resolved
additionalProperties: false
additionalProperties: false
WorkspaceRecord:
type: object
required:
- workspace
- revision
properties:
workspace:
$ref: '#/components/schemas/OpportunityWorkspace'
revision:
type: integer
minimum: 1
replayed:
type: boolean
additionalProperties: true
OpportunityWorkspace:
type: object
required:
- id
- name
- revision
- profile
- opportunities
- monitors
- signals
properties:
id:
type: string
format: uuid
name:
type: string
revision:
type: integer
minimum: 1
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
profile:
$ref: '#/components/schemas/WorkspaceProfile'
opportunities:
type: array
items:
type: object
additionalProperties: true
monitors:
type: array
items:
type: object
additionalProperties: true
signals:
type: array
items:
type: object
additionalProperties: true
additionalProperties: true
WorkspaceValidation:
type: object
required:
- stage
- summary
- occurredAt
- actor
- evidenceIds
- businessId
properties:
stage:
enum:
- confirmed
- interested
- pilot_agreed
- paid
- delivered
- measured
- repeatable
summary:
type: string
maxLength: 3000
occurredAt:
type: string
format: date-time
actor:
type: string
maxLength: 200
evidenceIds:
type: array
minItems: 1
maxItems: 30
items:
type: string
format: uuid
businessId:
type: string
format: uuid
amount:
type: number
exclusiveMinimum: 0
currency:
type: string
pattern: ^[A-Z]{3}$
metric:
type: string
maxLength: 3000
baseline:
type: number
result:
type: number
unit:
type: string
additionalProperties: false
description: Same-business, sequential milestones require current supporting evidence. Inferences and contradictions cannot establish a milestone. Payment needs a positive amount, currency and experiment-result payment reference; measurement needs metric, baseline, result and unit. These are user-supplied records, not independently audited transactions.
WorkspaceEvidence:
type: object
required:
- claim
- sourceUrl
- observedAt
- kind
- stance
properties:
businessId:
type: string
format: uuid
claim:
type: string
maxLength: 3000
excerpt:
type: string
maxLength: 5000
sourceUrl:
type: string
format: uri
observedAt:
type: string
format: date-time
expiresAt:
type: string
format: date-time
kind:
enum:
- customer_report
- website_observation
- owner_statement
- experiment_result
- inference
stance:
enum:
- supports
- contradicts
additionalProperties: false
WorkspaceProfile:
type: object
properties:
skills:
type: array
maxItems: 30
items:
type: string
maxLength: 300
industries:
type: array
maxItems: 30
items:
type: string
maxLength: 300
geographies:
type: array
maxItems: 30
items:
type: string
maxLength: 300
excludedActivities:
type: array
maxItems: 30
items:
type: string
maxLength: 300
capacity:
type: string
maxLength: 1000
additionalProperties: false
securitySchemes:
AgentKey:
type: apiKey
in: header
name: x-api-key
description: Account key created while signed in at /account; all keys share account limits.
BearerKey:
type: http
scheme: bearer
description: 'The same account API key may be sent as Authorization: Bearer YOUR_KEY.'
JobToken:
type: apiKey
in: header
name: x-job-token
description: Capability token returned once with a search job.
x-refined-from:
- crawdar-com-openapi.json
- crawdar-com-openapi.yml