https://api.datavendor.ai, every route under /v2, authenticated with a team API key.
Keys, conventions, and errors are shared with the buyer API and described on
Using the API. The
OpenAPI document behind this page is served with
an interactive reference. A first call, returning your
team’s listings:
curl https://api.datavendor.ai/v2/listings \
-H "Authorization: Bearer $HUD_API_KEY"
Objects
| Object | What it is |
|---|---|
| Listing | Your offer of assets with pricing and delivery terms. Published listings form the catalog. |
| Asset | One unit of supply in your inventory: a codebase, a Raw data archive, or an imported task. Codebases and raw data may be proposed before their artifacts arrive; tasks are imported platform versions. |
| Group | A folder for inventory. Every team has a default group. |
| Opportunity | A buyer’s listing request your team can respond to. Historical project opportunities and your bids on them have separate read-only routes. |
| Estimation | A dated, advisory quote for one source (a repository today) as one asset type, visible to the whole team. |
| Wallet | Your team’s credits balance and earnings. |
Endpoint reference
Catalog
The same view of published listings a buyer has, including each listing’s vendor organization (team_name). A vendor-only team is behind the browse gate until it
has enough live listings of its own: browse then serves only the first unfiltered page, and
GET /v2/listings/browse/access reports your progress.
Browse
Browse is filtered and sorted server-side. The first page carries tab counts and filter facets; follownext_cursor for the rest. Vocabularies for the filters come from the
taxonomy endpoints.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
query | query | string? | ||
tags | query | string[]? | ||
tag_slugs | query | string[]? | ||
asset_types | query | string[]? | ||
owned | query | boolean | Defaults to False. | |
verified_only | query | boolean | When true, only DV quality certified listings. Defaults to False. | |
min_price | query | number? | Buy-now price floor. | |
max_price | query | number? | Buy-now price ceiling. | |
has_active_bids | query | boolean | Only listings with at least one submitted bid. Defaults to False. | |
sample_available | query | boolean? | True: only listings offering a sample; False: only listings without; omit: any. | |
min_sample_price | query | number? | Sample price floor (implies sample available). | |
max_sample_price | query | number? | Sample price ceiling (implies sample available). | |
min_vendor_tier | query | integer? | ||
vendor_tiers | query | integer[]? | Exact seller vendor tiers. | |
min_tasks | query | integer? | Minimum HUD taskset plus Harbor bundle task count. | |
max_tasks | query | integer? | Maximum HUD taskset plus Harbor bundle task count. | |
min_price_per_task | query | number? | Floor on buy-now price divided by task count; listings without tasks never match. | |
max_price_per_task | query | number? | Ceiling on buy-now price divided by task count; listings without tasks never match. | |
min_loc | query | integer? | ||
max_loc | query | integer? | ||
min_zip_files | query | integer? | ||
max_zip_files | query | integer? | ||
min_zip_size_gb | query | number? | ||
max_zip_size_gb | query | number? | ||
min_codebases | query | integer? | Minimum attached codebases. | |
max_codebases | query | integer? | Maximum attached codebases. | |
min_tasksets | query | integer? | Minimum attached HUD tasksets plus Harbor bundles. | |
max_tasksets | query | integer? | Maximum attached HUD tasksets plus Harbor bundles. | |
min_environments | query | integer? | Minimum attached environments. | |
max_environments | query | integer? | Maximum attached environments. | |
min_robotics_datasets | query | integer? | Minimum attached robotics datasets. | |
max_robotics_datasets | query | integer? | Maximum attached robotics datasets. | |
min_raw_data | query | integer? | Minimum attached Raw data zips. | |
max_raw_data | query | integer? | Maximum attached Raw data zips. | |
languages | query | string[]? | Codebase languages. | |
rare_languages_only | query | boolean | Only listings whose codebases are at most 40% JavaScript, TypeScript, and Python combined, by language bytes; listings without a language byte breakdown never match. Defaults to False. | |
file_extensions | query | string[]? | Raw data file extensions, lowercase without the dot. | |
robotics_formats | query | string[]? | Declared robotics dataset formats. | |
capabilities | query | string[]? | Environment capabilities. | |
sort | query | recommended | recent | price_low | price_high | recommended prefers DV quality certified, then recency; with no filters it leads with the admin-featured listings in their curated order. Defaults to recommended. | |
limit | query | integer | Defaults to 24. | |
cursor | query | string? | Keyset position from the previous page’s next_cursor; omit for the first page (which also carries counts and facets). |
Request
curl https://api.datavendor.ai/v2/listings/browse \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"review_status": "string",
"catalog_status": "string",
"created_at": "2026-07-26T17:04:11Z",
"archived_at": "2026-07-26T17:04:11Z",
"asset_types": [
"string"
],
"assets": [],
"carries_retired_sku": false,
"catalog_scale": {
"asset_counts": {},
"languages": [],
"loc": 0,
"task_count": 0,
"zip_file_count": 0,
"zip_size_bytes": 0
},
"deprecation": {
"types": [],
"retires_at": "2026-07-26T17:04:11Z"
},
"domain_tags": [
"string"
]
}
],
"limit": 0,
"counts": {
"all": 0,
"owned": 0
},
"facets": {
"tags": {},
"asset_types": {},
"capabilities": {},
"file_extensions": {},
"languages": {},
"lifecycle_stages": {},
"robotics_formats": {},
"tag_slugs": {}
},
"locked": false,
"next_cursor": "string"
}
Request
curl https://api.datavendor.ai/v2/listings/browse/access \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"published_count": 0,
"required_count": 0,
"unlocked": false
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
ids | query | string[]? | ||
sort | query | recommended | recent | price_low | price_high | Defaults to recent. |
Request
curl https://api.datavendor.ai/v2/listings/browse/by-ids \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"listings": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"review_status": "string",
"catalog_status": "string",
"created_at": "2026-07-26T17:04:11Z",
"archived_at": "2026-07-26T17:04:11Z",
"asset_types": [
"string"
],
"assets": [],
"carries_retired_sku": false,
"catalog_scale": {
"asset_counts": {},
"languages": [],
"loc": 0,
"task_count": 0,
"zip_file_count": 0,
"zip_size_bytes": 0
},
"deprecation": {
"types": [],
"retires_at": "2026-07-26T17:04:11Z"
},
"domain_tags": [
"string"
]
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/browse/<listing_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"review_status": "string",
"catalog_status": "string",
"created_at": "2026-07-26T17:04:11Z",
"archived_at": "2026-07-26T17:04:11Z",
"asset_types": [
"string"
],
"assets": [],
"available_from": "string",
"bundle_download_url": "string",
"bundle_manifest": {},
"bundle_url": "string"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/browse/<listing_id>/quality \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"certified": false,
"certified_at": "2026-07-26T17:04:11Z",
"checks": [],
"environment_checks_passed": 0,
"environment_checks_total": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes | |
taskset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/browse/<listing_id>/tasksets/<taskset_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"created_at": "2026-07-26T17:04:11Z",
"column_order": [
"string"
],
"columns": {}
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes | |
taskset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/browse/<listing_id>/tasksets/<taskset_id>/tasks \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"tasks": [
{
"task": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"taskset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"created_at": "2026-07-26T17:04:11Z",
"activity_log": [],
"assignee_user_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"binarized": false,
"column_values": {},
"description": "string",
"external_id": "string",
"latest_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"tags": []
},
"version": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"version": 0,
"created_at": "2026-07-26T17:04:11Z",
"agent_config": {},
"brief": {},
"build_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"current_state": "draft",
"environment": {},
"internally_reviewed_at": "2026-07-26T17:04:11Z",
"internally_reviewed_by": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"lifecycle_stage": "string"
}
}
],
"task_stats": [
{
"task_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"traces": [
{}
],
"last_run_build_version": 0,
"latest_env_build_version": 0
}
],
"derived_column_values": {}
}
Taxonomy
The vocabularies vendors classify with and buyers filter by. Pass the returned values into browse filters; an unknown value matches nothing rather than erroring.Request
curl https://api.datavendor.ai/v2/domains \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"domains": [
{
"slug": "string",
"label": "string"
}
]
}
Request
curl https://api.datavendor.ai/v2/inventory-tags \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"inventory_tags": [
{
"slug": "string",
"label": "string",
"description": "string",
"category": "string"
}
]
}
Request
curl https://api.datavendor.ai/v2/content-tags \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"content_tags": [
{
"slug": "string",
"label": "string"
}
]
}
Request
curl https://api.datavendor.ai/v2/asset-types \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"asset_types": [
{
"slug": "string",
"label": "string",
"is_enabled": false,
"supports_proposals": false,
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
}
}
],
"deprecated_asset_types": [
{
"slug": "string",
"label": "string",
"is_enabled": false,
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"listing_kinds": [
"string"
]
}
]
}
Selling
The key-holding team’s vendor side: its listings, their quality runs, sales, and the open listing requests it can respond to.Listings
Listings are composed, submitted, and published in the web app. The API reads them and manages which codebase assets a listing carries.| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
workspace_view | query | all | drafts | submitted | live | archived | Sidebar workspace slice: all, drafts, submitted, live, archived. Defaults to all. | |
lifecycle_stages | query | string[]? | Vendor-facing lifecycle stages (Draft, Review, Ready, Active). | |
query | query | string? | ||
tags | query | string[]? | ||
asset_types | query | string[]? | ||
verified_only | query | boolean | Defaults to False. | |
min_price | query | number? | ||
max_price | query | number? | ||
has_active_bids | query | boolean | Only listings with at least one submitted bid. Defaults to False. | |
no_assets | query | boolean | Only listings with no attached assets. Defaults to False. | |
sample_available | query | boolean? | ||
min_sample_price | query | number? | ||
max_sample_price | query | number? | ||
min_tasks | query | integer? | ||
max_tasks | query | integer? | ||
min_loc | query | integer? | ||
max_loc | query | integer? | ||
min_zip_files | query | integer? | ||
max_zip_files | query | integer? | ||
min_zip_size_gb | query | number? | ||
max_zip_size_gb | query | number? | ||
sort | query | recommended | recent | price_low | price_high | Defaults to recent. | |
limit | query | integer | Defaults to 24. | |
offset | query | integer | Defaults to 0. |
Request
curl https://api.datavendor.ai/v2/listings \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"review_status": "string",
"catalog_status": "string",
"created_at": "2026-07-26T17:04:11Z",
"archived_at": "2026-07-26T17:04:11Z",
"asset_types": [
"string"
],
"assets": [],
"carries_retired_sku": false,
"catalog_scale": {
"asset_counts": {},
"languages": [],
"loc": 0,
"task_count": 0,
"zip_file_count": 0,
"zip_size_bytes": 0
},
"deprecation": {
"types": [],
"retires_at": "2026-07-26T17:04:11Z"
},
"domain_tags": [
"string"
]
}
],
"limit": 0,
"offset": 0,
"counts": {
"all": 0,
"owned": 0
},
"facets": {
"tags": {},
"asset_types": {},
"capabilities": {},
"file_extensions": {},
"languages": {},
"lifecycle_stages": {},
"robotics_formats": {},
"tag_slugs": {}
},
"summary": {
"active": 0,
"in_review": 0,
"drafts": 0,
"listed_value": 0.0
}
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/<listing_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"review_status": "string",
"catalog_status": "string",
"created_at": "2026-07-26T17:04:11Z",
"archived_at": "2026-07-26T17:04:11Z",
"asset_types": [
"string"
],
"assets": [],
"available_from": "string",
"bundle_download_url": "string",
"bundle_manifest": {},
"bundle_url": "string"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/<listing_id>/history \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"events": [
{
"event_type": "string",
"actor": "team",
"occurred_at": "2026-07-26T17:04:11Z",
"from_status": "string",
"to_status": "string"
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/<listing_id>/assets \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"assets": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string",
"environment": {
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"extra_columns": {},
"build_version": 0,
"built_at": "2026-07-26T17:04:11Z",
"capabilities": [],
"task_count": 0
}
}
],
"total": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/<listing_id>/assets \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"asset_ids": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"matches": [
{
"deprecated": false,
"exclude_ids": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"filters": [
"string"
],
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"sku": "string"
}
]
}'
Response 201
{
"assets": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string",
"environment": {
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"extra_columns": {},
"build_version": 0,
"built_at": "2026-07-26T17:04:11Z",
"capabilities": [],
"task_count": 0
}
}
],
"total": 0,
"attached": 0,
"skipped": [
{
"reason": "not_listable",
"count": 0
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes | |
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/listings/<listing_id>/assets/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X DELETE
204 with an empty body.Quality and sales
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
listing_id | path | uuid | yes | |
task_rows | query | failing | all | Task-scope rows to include: failing (default) or all. |
Request
curl https://api.datavendor.ai/v2/listings/<listing_id>/qc \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"listing_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listing_status": "string",
"dv_quality_certified": false,
"latest_run": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"run_number": 0,
"status": "string",
"mandatory_passed": false,
"review_feedback": "string",
"error": "string",
"triggered_by": "string",
"charge_total": 0.0,
"started_at": "2026-07-26T17:04:11Z",
"completed_at": "2026-07-26T17:04:11Z",
"checks": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"scope": "string",
"asset_type": "string",
"asset_name": "string",
"asset_reference": "string",
"listing_asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"kind": "string",
"key": "string",
"label": "string",
"mandatory": false,
"informational": false,
"status": "string"
}
],
"task_summaries": [
{
"check_key": "string",
"label": "string",
"listing_asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"asset_name": "string",
"queued": 0,
"running": 0,
"passed": 0,
"failed": 0,
"error": 0,
"total": 0
}
]
},
"hub_ingest": [
{
"dataset_id": "string",
"status": "pending",
"bytes_copied": 0,
"error": "string"
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | Defaults to 50. | |
offset | query | integer | Defaults to 0. |
Request
curl https://api.datavendor.ai/v2/listings/qc-reports \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"reports": [
{
"run_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listing_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listing_title": "string",
"run_number": 0,
"status": "string",
"mandatory_passed": false,
"environment_checks_passed": 0,
"environment_checks_total": 0,
"charge_total": 0.0,
"started_at": "2026-07-26T17:04:11Z",
"completed_at": "2026-07-26T17:04:11Z"
}
],
"total": 0
}
Request
curl https://api.datavendor.ai/v2/listings/sales \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"sales": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listing_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listing_title": "string",
"purchase_kind": "string",
"amount": 0.0,
"currency": "string",
"paid_at": "2026-07-26T17:04:11Z"
}
],
"total_earnings": 0.0,
"currency": "usd"
}
Opportunities
Open listing requests your team can view, and read-only project bid history. Project opportunities and bids cannot be created or changed. Listing submissions remain available in the web app.| Parameter | In | Type | Required | Description | ||||
|---|---|---|---|---|---|---|---|---|
query | query | string? | Text search across title, overview, tags, buyer. | |||||
tags | query | string[]? | Domain tags (any-of). | |||||
asset_types | query | string[]? | Requested asset type slugs (any-of). | |||||
max_budget | query | number? | Approximate budget ceiling (metadata.budget_min). | |||||
budget_unit | query | per_task | total? | per_task | total - omit for any unit. | ||||
sort | query | deadline | recent | title | budget_low | budget_high | deadline | recent | title | budget_low | budget_high. Defaults to deadline. | |
offset | query | integer | Defaults to 0. | |||||
limit | query | integer | Defaults to 50. |
Request
curl https://api.datavendor.ai/v2/opportunities \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"status": "string",
"owner_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2026-07-26T17:04:11Z",
"updated_at": "2026-07-26T17:04:11Z",
"accepted_asset_types": [
"string"
],
"closed_at": "2026-07-26T17:04:11Z",
"deadline": "2026-07-26T17:04:11Z",
"description": "string",
"metadata": {},
"owner_team_avatar_url": "string"
}
],
"limit": 0,
"offset": 0,
"counts": {
"all": 0
},
"facets": {
"tags": {}
}
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
opportunity_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/opportunities/<opportunity_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"status": "string",
"owner_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2026-07-26T17:04:11Z",
"updated_at": "2026-07-26T17:04:11Z",
"accepted_asset_types": [
"string"
],
"closed_at": "2026-07-26T17:04:11Z",
"deadline": "2026-07-26T17:04:11Z",
"description": "string",
"metadata": {},
"owner_team_avatar_url": "string"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
opportunity_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/project-opportunities/<opportunity_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"status": "string",
"owner_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2026-07-26T17:04:11Z",
"updated_at": "2026-07-26T17:04:11Z",
"accepted_asset_types": [
"string"
],
"closed_at": "2026-07-26T17:04:11Z",
"deadline": "2026-07-26T17:04:11Z",
"description": "string",
"evaluation_date": "2026-07-26T17:04:11Z",
"metadata": {}
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
offset | query | integer | Defaults to 0. | |
limit | query | integer | Defaults to 50. |
Request
curl https://api.datavendor.ai/v2/project-opportunities/bids/mine \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"opportunity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"team_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"num_tasks": 0,
"status": "string",
"created_at": "2026-07-26T17:04:11Z",
"updated_at": "2026-07-26T17:04:11Z",
"attachments": [],
"completed_at": "2026-07-26T17:04:11Z",
"delivery_taskset_ids": [],
"delivery_taskset_names": {},
"expected_timeline_days": 0
}
],
"total": 0,
"limit": 0,
"offset": 0
}
Inventory
A vendor team’s supply before and after it is listed. Every offering is an asset, in an asset group. Codebases and raw data support metadata-only proposals; tasks are imported platform versions and never have a proposed stage.supports_proposals on the asset-type catalog
identifies this capability.
Use the SKU collections for typed details and writes. GET /v2/assets returns cross-SKU
summaries. These collections return items, total, limit, and offset, default to 50 rows,
and accept at most 200 rows per page. They share repeated id, group_id, listing_id, stage,
filter, sort, and sort_direction parameters. Use GET /v2/assets/window for grouped
inventory with leaf_budget, header_budget, and after_group_id; follow up inside one group
with GET /v2/assets?group_id=...&limit=...&offset=....
Stages are derived: missing metadata makes an asset incomplete; complete metadata without an
artifact makes a proposal-capable asset proposed; complete metadata with its artifact makes
it complete. A task’s platform version counts as its artifact. Archive and analysis progress
are separate from stage. PATCH changes only supplied fields; nullable fields can be cleared
with null, while arrays and maps clear with [] and {}.
Assets
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
sku | query | string? | ||
deprecated | query | boolean? | true keeps only the assets of deprecated or retired SKUs, false drops them; omitted keeps both. | |
stage | query | incomplete | proposed | complete? | ||
listing_id | query | uuid? | ||
group_id | query | uuid? | ||
id | query | string[]? | ||
limit | query | integer | Defaults to 50. | |
offset | query | integer | Defaults to 0. | |
attach_to | query | uuid? | The listing attachable counts toward: assets already on it are not attachable. | |
filter | query | string[]? | AND filters as field:operator:value. Asset fields: stage (incomplete, proposed, complete), name, type, domain, channel (github, gitlab, bitbucket, zip, or not_linked for assets without a data object). Codebase fields: exclusivity, private_data. Task fields: task_type (coding, finance, legal, general), has_traces, has_qa_results, has_environment (true or false), ran_on_model (a model name), qa_agent (a QA agent key). | |
sort | query | enum? | Order rows by this column instead of newest first. Text sorts case-insensitively; rows without the value come last in either direction and ties stay newest first. stage runs incomplete, proposed, complete. Codebase metrics, exclusivity, private_data and estimate are empty on other SKUs. | |
sort_direction | query | asc | desc | Defaults to asc. |
Request
curl https://api.datavendor.ai/v2/assets \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string",
"environment": {
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"extra_columns": {},
"build_version": 0,
"built_at": "2026-07-26T17:04:11Z",
"capabilities": [],
"task_count": 0
}
}
],
"groups": [
{
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"total": 0,
"attachable": 0
}
],
"limit": 50,
"offset": 0,
"skus": [
{
"sku": "string",
"total": 0
}
],
"total": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/assets/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string",
"environment": {
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"extra_columns": {},
"build_version": 0,
"built_at": "2026-07-26T17:04:11Z",
"capabilities": [
"string"
],
"task_count": 0
}
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
group_id | path | uuid | yes | |
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/asset-groups/<group_id>/assets/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X PUT
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string",
"environment": {
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"extra_columns": {},
"build_version": 0,
"built_at": "2026-07-26T17:04:11Z",
"capabilities": [
"string"
],
"task_count": 0
}
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/codebases/<asset_id>/data \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"channel": "github",
"repo_full_name": "string"
}'
Response 201
{
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/codebases/<asset_id>/data \
-H "Authorization: Bearer $HUD_API_KEY" \
-X DELETE
204 with an empty body.| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/codebases/<asset_id>/data/structure \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"analysis_status": "pending",
"max_depth": 0,
"roots": [
{
"name": "string",
"kind": "folder",
"children": [
{}
]
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
sku | query | string? | ||
deprecated | query | boolean? | true keeps only the assets of deprecated or retired SKUs, false drops them; omitted keeps both. | |
stage | query | incomplete | proposed | complete? | ||
listing_id | query | uuid? | ||
leaf_budget | query | integer | Defaults to 50. | |
header_budget | query | integer | Defaults to 10. | |
after_group_id | query | uuid? | ||
include_empty_groups | query | boolean | Defaults to False. | |
attach_to | query | uuid? | The listing attachable counts toward: assets already on it are not attachable. | |
filter | query | string[]? | AND filters as field:operator:value. Asset fields: stage (incomplete, proposed, complete), name, type, domain, channel (github, gitlab, bitbucket, zip, or not_linked for assets without a data object). Codebase fields: exclusivity, private_data. Task fields: task_type (coding, finance, legal, general), has_traces, has_qa_results, has_environment (true or false), ran_on_model (a model name), qa_agent (a QA agent key). | |
sort | query | enum? | Order rows by this column instead of newest first. Text sorts case-insensitively; rows without the value come last in either direction and ties stay newest first. stage runs incomplete, proposed, complete. Codebase metrics, exclusivity, private_data and estimate are empty on other SKUs. | |
sort_direction | query | asc | desc | Defaults to asc. |
Request
curl https://api.datavendor.ai/v2/assets/window \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string",
"environment": {
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"extra_columns": {},
"build_version": 0,
"built_at": "2026-07-26T17:04:11Z",
"capabilities": [],
"task_count": 0
}
}
],
"groups": [
{
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"total": 0,
"attachable": 0
}
],
"has_more_groups": false,
"limit": 50,
"offset": 0,
"remaining_groups": 0,
"skus": [
{
"sku": "string",
"total": 0
}
],
"total": 0,
"window": [
{
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"is_default": false,
"total": 0,
"attachable": 0
}
]
}
Tasks
Import the tasks you build on the platform as inventory, one asset per task version. A task asset exists or it does not: there is nothing to propose up front, soPOST /v2/tasks/import is the one
way a task asset comes to exist. Send one taskset id to import every live task in it, or up to 500
task ids to pick tasks by hand, plus the task_type every imported task gets (coding, finance,
legal or general; QC runs per type, so the type is required and has no default); the server
resolves each task to its latest version and imports it when that version’s build succeeded. You can import from the tasksets you can view; a task you
cannot view reads as not found. Tasks left out are listed in skipped with a reason (no_version,
no_build, build_not_succeeded, deleted, foreign). A version imports once: importing again
returns its asset under existing, and a task you edit on the platform imports again as a new
asset titled with its version. A task asset has no data object to link; its task block names the
version it stands for, and typed details read through GET /v2/tasks/{asset_id}. Imported assets
arrive without a domain or asking price (and without a description when the task has none), so
they are incomplete until you fill those in with PATCH /v2/tasks/{asset_id}; once the
description, domain and asking price are set the asset is complete. The same call changes a
task’s task_type later; the type never affects the stage. Without group_id they land
in a group named after the taskset, or in your default group when the picked tasks span several
tasksets. One import creates at most 500 assets; a larger taskset is imported in batches of
task_ids.
The task block also carries the task’s QC metadata, read from the platform when the task is
imported, counting your team’s own traces on it: qc.pass_at_k lists every model that has graded
runs on the version, by model name, with its pass_at_k (the mean reward over the newest five
runs), k, runs, avg_reward and last_run_at (graded runs whose trace names no catalog model
sit apart in qc.unattributed_runs, same shape); qc.qa_agents lists the standard QA checks whose result is in effect on the
version’s latest trace, by agent key (false_positive, false_negative, reward_hacking,
prompt_alignment, failure_analysis), each with its status, verdict and the number of
findings. The document holds aggregates only: trace ids and the checks’ write-ups stay on the
platform, where project access applies; qc.environment says
whether the version’s build is built. Three facts derive from that document for filtering:
has_traces (any graded run), has_qa_results (any completed check) and has_environment. qc_refreshed_at is when the platform was last read; POST /v2/tasks/refresh-qc
reads it again for every task asset of your team, in the background, one refresh per team at a
time (a request while one runs answers with that one), and GET /v2/tasks/refresh-qc reports the
refresh in flight or the last one with its total and refreshed counts. Filter the inventory on
GET /v2/assets with has_traces, has_qa_results, has_environment (true or false),
ran_on_model:is:<model name> and qa_agent:is:<agent key>; GET /v2/tasks/qc-facets lists the
model names and agent keys your tasks carry, to pick from.
Request
curl https://api.datavendor.ai/v2/tasks/import \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"task_type": "coding",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_ids": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"taskset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'
Response 200
{
"imported": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"task": {
"task_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_name": "string",
"version": 0,
"task_type": "coding",
"has_traces": false,
"has_qa_results": false,
"has_environment": false,
"qc": {},
"qc_refreshed_at": "2026-07-26T17:04:11Z",
"extra_columns": {}
},
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string"
}
],
"existing": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"task": {
"task_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_name": "string",
"version": 0,
"task_type": "coding",
"has_traces": false,
"has_qa_results": false,
"has_environment": false,
"qc": {},
"qc_refreshed_at": "2026-07-26T17:04:11Z",
"extra_columns": {}
},
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string"
}
],
"skipped": [
{
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"reason": "no_version"
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/tasks/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X PATCH \
-H "Content-Type: application/json" \
-d '{
"description": "string",
"domain_tags": [
"string"
],
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"notes": "string",
"other_domain": "string",
"price_usd": 0.0,
"task_type": "coding"
}'
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"task": {
"task_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_name": "string",
"version": 0,
"task_type": "coding",
"has_traces": false,
"has_qa_results": false,
"has_environment": false,
"qc": {
"environment": {
"built": false
},
"pass_at_k": {},
"qa_agents": {},
"unattributed_runs": {
"avg_reward": 0.0,
"k": 0,
"last_run_at": "2026-07-26T17:04:11Z",
"pass_at_k": 0.0,
"runs": 0
}
},
"qc_refreshed_at": "2026-07-26T17:04:11Z",
"extra_columns": {}
},
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string"
}
Request
curl https://api.datavendor.ai/v2/tasks/refresh-qc \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST
Response 202
{
"refresh": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "queued",
"requested_at": "2026-07-26T17:04:11Z",
"started_at": "2026-07-26T17:04:11Z",
"finished_at": "2026-07-26T17:04:11Z",
"total": 0,
"refreshed": 0,
"error": "string"
},
"qc_refreshed_at": "2026-07-26T17:04:11Z"
}
Request
curl https://api.datavendor.ai/v2/tasks/refresh-qc \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"refresh": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "queued",
"requested_at": "2026-07-26T17:04:11Z",
"started_at": "2026-07-26T17:04:11Z",
"finished_at": "2026-07-26T17:04:11Z",
"total": 0,
"refreshed": 0,
"error": "string"
},
"qc_refreshed_at": "2026-07-26T17:04:11Z"
}
Request
curl https://api.datavendor.ai/v2/tasks/qc-facets \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"models": [
"string"
],
"qa_agents": [
"string"
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
stage | query | incomplete | complete? | ||
id | query | string[]? | ||
group_id | query | uuid? | ||
listing_id | query | uuid? | ||
filter | query | string[]? | ||
sort | query | enum? | ||
sort_direction | query | asc | desc | Defaults to asc. | |
limit | query | integer | Defaults to 50. | |
offset | query | integer | Defaults to 0. |
Request
curl https://api.datavendor.ai/v2/tasks \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"task": {
"task_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_name": "string",
"version": 0,
"task_type": "coding",
"has_traces": false,
"has_qa_results": false,
"has_environment": false,
"qc": {},
"qc_refreshed_at": "2026-07-26T17:04:11Z",
"extra_columns": {}
},
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string"
}
],
"total": 0,
"limit": 0,
"offset": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/tasks/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"listable": false,
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"sku": "string",
"stage": "incomplete",
"task": {
"task_version_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_name": "string",
"version": 0,
"task_type": "coding",
"has_traces": false,
"has_qa_results": false,
"has_environment": false,
"qc": {
"environment": {
"built": false
},
"pass_at_k": {},
"qa_agents": {},
"unattributed_runs": {
"avg_reward": 0.0,
"k": 0,
"last_run_at": "2026-07-26T17:04:11Z",
"pass_at_k": 0.0,
"runs": 0
}
},
"qc_refreshed_at": "2026-07-26T17:04:11Z",
"extra_columns": {}
},
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"deprecation": {
"deprecated_at": "2026-07-26T17:04:11Z",
"retires_at": "2026-07-26T17:04:11Z",
"retired": false,
"accepts_new_listings": false,
"message": "string"
},
"description": "string"
}
Codebases
Register repositories your team could supply, one at a time or in an atomic metadata-only batch withPOST /v2/codebases/batch and body {"items": [...]} (at most 500 rows). Only title and
exclusivity are required. Anything else you leave out, including the description, domain
and asking price, is listed in missing and keeps the proposal incomplete until a PATCH
fills it. A proposal stays
editable, and can be deleted until a data object is attached. Once the linked data is read, a
description you left blank is filled from the repository’s root README, or failing that from the
repository’s About text or your manifest’s description. A description you wrote is never replaced.
Metadata read from the linked data, and metadata you send with an API key, is locked: locked_fields maps each
such field to its source (github, gitlab, bitbucket or zip for the linked data, api
for an API-key request). A locked field can’t be edited in the inventory, only through the API
or a new reading of the data.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
stage | query | incomplete | proposed | complete? | ||
id | query | string[]? | ||
group_id | query | uuid? | ||
listing_id | query | uuid? | ||
filter | query | string[]? | ||
sort | query | enum? | ||
sort_direction | query | asc | desc | Defaults to asc. | |
limit | query | integer | Defaults to 50. | |
offset | query | integer | Defaults to 0. |
Request
curl https://api.datavendor.ai/v2/codebases \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"exclusivity": "available",
"created_at": "2026-07-26T17:04:11Z",
"ci_on_prs": false,
"commits": 0,
"contributors": 0,
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
],
"total": 0,
"limit": 0,
"offset": 0
}
Request
curl https://api.datavendor.ai/v2/codebases \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"title": "string",
"exclusivity": "available",
"ci_on_prs": false,
"commits": 0,
"contributors": 0,
"data": {
"channel": "github",
"repo_full_name": "string"
},
"description": "string",
"domain_tags": [
"string"
],
"extra_columns": {},
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"history_end": "2026-07-26",
"history_start": "2026-07-26"
}'
Response 201
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"exclusivity": "available",
"created_at": "2026-07-26T17:04:11Z",
"ci_on_prs": false,
"commits": 0,
"contributors": 0,
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
Request
curl https://api.datavendor.ai/v2/codebases/batch \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"title": "string",
"exclusivity": "available",
"ci_on_prs": false,
"commits": 0,
"contributors": 0,
"description": "string",
"domain_tags": [
"string"
],
"extra_columns": {},
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"history_end": "2026-07-26",
"history_start": "2026-07-26",
"lines_of_code": 0
}
]
}'
Response 201
{
"items": [
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"exclusivity": "available",
"created_at": "2026-07-26T17:04:11Z",
"ci_on_prs": false,
"commits": 0,
"contributors": 0,
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
]
}
Request
curl https://api.datavendor.ai/v2/codebases/languages \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"languages": [
{
"slug": "string",
"name": "string",
"aliases": [
"string"
]
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/codebases/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"exclusivity": "available",
"created_at": "2026-07-26T17:04:11Z",
"ci_on_prs": false,
"commits": 0,
"contributors": 0,
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/codebases/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X PATCH \
-H "Content-Type: application/json" \
-d '{
"ci_on_prs": false,
"commits": 0,
"contributors": 0,
"description": "string",
"domain_tags": [
"string"
],
"exclusivity": "available",
"extra_columns": {},
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"history_end": "2026-07-26",
"history_start": "2026-07-26",
"lines_of_code": 0,
"merged_prs": 0
}'
Response 200
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"exclusivity": "available",
"created_at": "2026-07-26T17:04:11Z",
"ci_on_prs": false,
"commits": 0,
"contributors": 0,
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/codebases/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X DELETE
204 with an empty body.| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/codebases/<asset_id>/qc/runs \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST
Response 202
{
"status": "string",
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"run_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"run_number": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/codebases/<asset_id>/qc \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"latest_run": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"run_number": 0,
"status": "string",
"mandatory_passed": false,
"review_feedback": "string",
"error": "string",
"triggered_by": "string",
"charge_total": 0.0,
"started_at": "2026-07-26T17:04:11Z",
"completed_at": "2026-07-26T17:04:11Z",
"checks": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"scope": "string",
"asset_type": "string",
"asset_name": "string",
"asset_reference": "string",
"listing_asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"kind": "string",
"key": "string",
"label": "string",
"mandatory": false,
"informational": false,
"status": "string"
}
],
"passed": false
}
}
Raw data
Register the raw data your team can supply, with an optional completed upload asdata.
Complete metadata without an upload is proposed. With an upload, a row sent with its
description, domain and asking price is complete from the start;
one without them lists them in missing and stays incomplete until a PATCH fills them. A
blank description is filled from the archive’s root README once the upload is read.
Its columns can be edited until it is deleted. Exclusivity is a codebase field: raw data rows
do not carry it, and an exclusivity value sent here is refused.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
stage | query | incomplete | proposed | complete? | ||
id | query | string[]? | ||
group_id | query | uuid? | ||
listing_id | query | uuid? | ||
filter | query | string[]? | ||
sort | query | enum? | ||
sort_direction | query | asc | desc | Defaults to asc. | |
limit | query | integer | Defaults to 50. | |
offset | query | integer | Defaults to 0. |
Request
curl https://api.datavendor.ai/v2/raw-data \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"description": "string",
"extra_columns": {},
"missing": [
"string"
],
"notes": "string"
}
],
"total": 0,
"limit": 0,
"offset": 0
}
Request
curl https://api.datavendor.ai/v2/raw-data \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"title": "string",
"data": {
"channel": "string",
"url": "string",
"manifest_url": "string"
},
"description": "string",
"domain_tags": [
"string"
],
"extra_columns": {},
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"notes": "string",
"other_domain": "string",
"price_usd": 0.0,
"suffix_title": false
}'
Response 201
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"description": "string",
"extra_columns": {},
"missing": [
"string"
],
"notes": "string"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/raw-data/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"description": "string",
"extra_columns": {},
"missing": [
"string"
],
"notes": "string"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/raw-data/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X PATCH \
-H "Content-Type: application/json" \
-d '{
"description": "string",
"domain_tags": [
"string"
],
"extra_columns": {},
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"notes": "string",
"other_domain": "string",
"price_usd": 0.0,
"title": "string"
}'
Response 200
{
"sku": "string",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"group_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stage": "incomplete",
"title": "string",
"domain_tags": [
"string"
],
"created_at": "2026-07-26T17:04:11Z",
"data": {
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"description": "string",
"extra_columns": {},
"missing": [
"string"
],
"notes": "string"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/raw-data/<asset_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X DELETE
204 with an empty body.| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/raw-data/<asset_id>/data \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"channel": "string",
"url": "string",
"manifest_url": "string"
}'
Response 201
{
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"channel": "github",
"archive_status": "pending",
"analysis_status": "pending",
"attached_at": "2026-07-26T17:04:11Z",
"analysis_error": "string",
"analyzed_at": "2026-07-26T17:04:11Z",
"archive_bytes": 0,
"archive_error": "string",
"commit_sha": "string",
"manifest_url": "string",
"registry_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/raw-data/<asset_id>/data \
-H "Authorization: Bearer $HUD_API_KEY" \
-X DELETE
204 with an empty body.| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/raw-data/<asset_id>/data/structure \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"analysis_status": "pending",
"max_depth": 0,
"roots": [
{
"name": "string",
"kind": "folder",
"children": [
{}
]
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/raw-data/<asset_id>/qc/runs \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST
Response 202
{
"status": "string",
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"run_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"run_number": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/raw-data/<asset_id>/qc \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"latest_run": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"run_number": 0,
"status": "string",
"mandatory_passed": false,
"review_feedback": "string",
"error": "string",
"triggered_by": "string",
"charge_total": 0.0,
"started_at": "2026-07-26T17:04:11Z",
"completed_at": "2026-07-26T17:04:11Z",
"checks": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"scope": "string",
"asset_type": "string",
"asset_name": "string",
"asset_reference": "string",
"listing_asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"kind": "string",
"key": "string",
"label": "string",
"mandatory": false,
"informational": false,
"status": "string"
}
],
"passed": false
}
}
Groups
Request
curl https://api.datavendor.ai/v2/asset-groups \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"groups": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"is_default": false,
"created_at": "2026-07-26T17:04:11Z",
"updated_at": "2026-07-26T17:04:11Z"
}
]
}
Request
curl https://api.datavendor.ai/v2/asset-groups \
-H "Authorization: Bearer $HUD_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'
Response 201
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"is_default": false,
"created_at": "2026-07-26T17:04:11Z",
"updated_at": "2026-07-26T17:04:11Z"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
group_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/asset-groups/<group_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"is_default": false,
"created_at": "2026-07-26T17:04:11Z",
"updated_at": "2026-07-26T17:04:11Z"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
group_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/asset-groups/<group_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X PATCH \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"is_default": false,
"created_at": "2026-07-26T17:04:11Z",
"updated_at": "2026-07-26T17:04:11Z"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
group_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/asset-groups/<group_id> \
-H "Authorization: Bearer $HUD_API_KEY" \
-X DELETE
204 with an empty body.Account
Estimations
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | Defaults to 50. | |
offset | query | integer | Defaults to 0. | |
filter | query | string[]? | AND filters as field:operator:value. Fields: status (pending, estimated, unpriced, failed), type, name, channel (github, gitlab, bitbucket, zip), inventory (added or not_added). | |
sort | query | enum? | Order rows by this column instead of newest first. Text sorts case-insensitively; rows without the value come last in either direction and ties stay newest first. status runs pending, estimated, unpriced, failed. date is completion, or creation while pending. | |
sort_direction | query | asc | desc | Defaults to asc. |
Request
curl https://api.datavendor.ai/v2/estimations \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"estimations": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"sku_slug": "string",
"source": {
"channel": "string",
"repo_full_name": "string"
},
"name": "string",
"status": "pending",
"created_at": "2026-07-26T17:04:11Z",
"completed_at": "2026-07-26T17:04:11Z",
"created_by": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"failure_message": "string",
"inventory_asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"quote_high_cents": 0,
"quote_low_cents": 0
}
],
"total": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
filter | query | string[]? | The same AND filters as GET /v2/estimations. |
Request
curl https://api.datavendor.ai/v2/estimations/summary \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"estimated_sources": 0,
"bins": [
{
"low_cents": 0,
"high_cents": 0,
"count": 0
}
],
"status_counts": {
"estimated": 0,
"failed": 0,
"pending": 0,
"unpriced": 0
},
"quote_high_cents": 0,
"quote_low_cents": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
asset_id | query | string[] | yes |
Request
curl "https://api.datavendor.ai/v2/estimations/latest?asset_id=<asset_id>" \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"estimations": [
{
"asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"estimation": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"sku_slug": "string",
"source": {},
"name": "string",
"status": "pending",
"created_at": "2026-07-26T17:04:11Z",
"completed_at": "2026-07-26T17:04:11Z",
"created_by": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"failure_message": "string",
"inventory_asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"quote_high_cents": 0,
"quote_low_cents": 0
}
}
]
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
estimation_id | path | uuid | yes |
Request
curl https://api.datavendor.ai/v2/estimations/<estimation_id> \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"sku_slug": "string",
"source": {
"channel": "string",
"repo_full_name": "string"
},
"name": "string",
"status": "pending",
"created_at": "2026-07-26T17:04:11Z",
"completed_at": "2026-07-26T17:04:11Z",
"created_by": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"failure_message": "string",
"inventory_asset_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"quote_high_cents": 0,
"quote_low_cents": 0
}
Wallet and notifications
Converting, withdrawing, and payout setup stay in the web app.Request
curl https://api.datavendor.ai/v2/wallet \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"credits_balance": "string",
"earnings": {
"total": "string",
"pending": "string",
"available": "string"
},
"currency": "usd"
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | Defaults to 50. | |
offset | query | integer | Defaults to 0. |
Request
curl https://api.datavendor.ai/v2/wallet/earnings \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"items": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"entry_type": "string",
"amount": "string",
"currency": "string",
"created_at": "2026-07-26T17:04:11Z",
"available_at": "2026-07-26T17:04:11Z",
"description": "string",
"purchase_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
],
"total": 0,
"limit": 0,
"offset": 0
}
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
limit | query | integer | Defaults to 50. |
Request
curl https://api.datavendor.ai/v2/vendor/notifications \
-H "Authorization: Bearer $HUD_API_KEY"
Response 200
{
"notifications": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"team_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "opportunity_published",
"title": "string",
"message": "string",
"read": false,
"created_at": "2026-07-26T17:04:11Z",
"link": "string",
"opportunity_bid_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"opportunity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"project_opportunity_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
],
"unread_count": 0
}