Namedesk
Namedesk API

Fetch the most recent domain report or the pricing-only slice of it. Pure reads - never trigger compute.


Get a domain report scoped to a job

GET
https://api.namedesk.app
/v1/research-jobs/{id}/report/{domain}

Returns the report for a specific domain inside a specific job. Useful when you've submitted the same domain in multiple jobs and want the version that came from a given submission.

Get a domain report scoped to a job › path Parameters

id
​string · required
domain
​string · required

Get a domain report scoped to a job › Responses

Domain report.

Comprehensive research report for a single domain. Returned by /v1/report/{domain} and /v1/research-jobs/{id}/report/{domain}. Null-valued keys are OMITTED from the response (a missing key means the underlying signal has not been computed for this domain). Free text fields are capped at 4 KB. `verdict` is the most recent verdict regardless of which intent it was computed for; customers who need a different intent should re-run research with that intent.
schema_version
​string · const · required

Bumps on breaking changes; additive changes keep 1.0.

Const value: 1.0
exported_at
​string · date-time · required
​object · required
status
​string · enum · required

complete = premium probes ran; partial = free-tier signals only.

Enum values:
complete
partial
​object · required
​object · required

Deterministic features computed from the domain string. Always present (no compute required).

​object

Most recent verdict (any intent). Markdown allowed in paragraph and alternative_suggestion.

​Pricing

Tiered pricing band for a domain. Returned by /v1/domains/{domain}/pricing as a slice; embedded in DomainReport for full report calls. Free text in reasoning, key_factors, and risks is capped at 4 KB per field.

​object

LLM-derived signals. Each sub-block carries its own engine_version and computed_at; sub-blocks are omitted when absent.

​object
​object[]

Probes from non-frontier (free-tier) models. Cheaper, less weight-bearing — kept separate from frontier_recall.

​object[]

Alternative names suggested by the recommendations engine. Present only when a recommendations run was triggered.

​object

DNS-signature detection of for-sale or parked status. Cached domain-level for ~1h.


Get the most recent report for a domain

GET
https://api.namedesk.app
/v1/report/{domain}

Returns the most recent report for the named domain in this organization, regardless of which job produced it. Pure read - never triggers a probe. Returns 404 if the org has never researched this domain.

Get the most recent report for a domain › path Parameters

domain
​string · required

Get the most recent report for a domain › Responses

Domain report.

Comprehensive research report for a single domain. Returned by /v1/report/{domain} and /v1/research-jobs/{id}/report/{domain}. Null-valued keys are OMITTED from the response (a missing key means the underlying signal has not been computed for this domain). Free text fields are capped at 4 KB. `verdict` is the most recent verdict regardless of which intent it was computed for; customers who need a different intent should re-run research with that intent.
schema_version
​string · const · required

Bumps on breaking changes; additive changes keep 1.0.

Const value: 1.0
exported_at
​string · date-time · required
​object · required
status
​string · enum · required

complete = premium probes ran; partial = free-tier signals only.

Enum values:
complete
partial
​object · required
​object · required

Deterministic features computed from the domain string. Always present (no compute required).

​object

Most recent verdict (any intent). Markdown allowed in paragraph and alternative_suggestion.

​Pricing

Tiered pricing band for a domain. Returned by /v1/domains/{domain}/pricing as a slice; embedded in DomainReport for full report calls. Free text in reasoning, key_factors, and risks is capped at 4 KB per field.

​object

LLM-derived signals. Each sub-block carries its own engine_version and computed_at; sub-blocks are omitted when absent.

​object
​object[]

Probes from non-frontier (free-tier) models. Cheaper, less weight-bearing — kept separate from frontier_recall.

​object[]

Alternative names suggested by the recommendations engine. Present only when a recommendations run was triggered.

​object

DNS-signature detection of for-sale or parked status. Cached domain-level for ~1h.


Get the pricing slice of a domain report

GET
https://api.namedesk.app
/v1/domains/{domain}/pricing

Cheapest possible call. Returns ONLY the Pricing slice for a domain this org has researched. No LLM, no probe - pure cache read. The shape matches pricing inside DomainReport.

Get the pricing slice of a domain report › path Parameters

domain
​string · required

Get the pricing slice of a domain report › Responses

Pricing slice.

Tiered pricing band for a domain. Returned by /v1/domains/{domain}/pricing as a slice; embedded in DomainReport for full report calls. Free text in `reasoning`, `key_factors`, and `risks` is capped at 4 KB per field.
​PriceBand · required
​PriceBand · required
​PriceBand · required
confidence
​string · enum · required
Enum values:
high
medium
low
model
​string · required

Identifier of the pricing model that produced this row.

engine_version
​string · required

Pricing prompt version. Bumps invalidate cached rows.

computed_at
​string · date-time · required
reasoning
​string

Markdown. Market-expert prose explaining the band.

key_factors
​string[]

Up to 5 reasons the band lands where it does.

risks
​string[]

Up to 5 risks that bound the upside.

​object

Snapshot of the signal vector that fed the pricing model. Useful for auditing.


Get all domain reports for a job

GET
https://api.namedesk.app
/v1/research-jobs/{id}/report

Returns every domain in the job with its current job_status and (when computed) its full DomainReport. Customers poll this during a running job to watch reports fill in; once terminal, it's a one-shot answer for 'give me everything from this submission.'

Domains in pending or running status carry only domain + job_status — no report key (the omit-when-null contract). paid and cached domains carry the full DomainReport. failed domains carry an error code (see "Error codes" in the docs).

Get all domain reports for a job › path Parameters

id
​string · required

Get all domain reports for a job › Responses

Job header + array of per-domain reports.

Wrapper for /v1/research-jobs/{id}/report. The `job` block embeds the same shape returned by /v1/research-jobs/{id} so customers can render progress + per-domain reports from a single call.
​ResearchJob · required
​JobReportEntry[] · required

Get pricing-only slice for every domain in a job

GET
https://api.namedesk.app
/v1/research-jobs/{id}/report/pricing

Pricing-only variant of /v1/research-jobs/{id}/report. Each entry carries the price band (wholesale / aftermarket / brokered), reasoning, key factors, and risks - capped at 4 KB per text field. Faster and lighter than the full report wrapper; built for the 'CSV of just the dollars and reasoning' workflow without pulling the probes / signals / brand signals you don't need.

Pass ?format=csv to receive a browser-downloadable CSV instead of JSON. The CSV contains one row per domain in the job, with the same data as the JSON response projected into a flat row format. Failed entries occupy a row with the error column populated and the dollar columns blank.

Get pricing-only slice for every domain in a job › path Parameters

id
​string · required

Get pricing-only slice for every domain in a job › query Parameters

format
​string · enum

Response format. Defaults to JSON. Pass ?format=csv to receive a browser-downloadable CSV (one row per domain) with columns: domain, job_status, confidence, wholesale_low/mid/high, aftermarket_low/mid/high, brokered_low/mid/high, model, engine_version, computed_at, error, reasoning, key_factors, risks. The CSV is BOM-prefixed for Excel UTF-8 compatibility, uses CRLF line terminators per RFC 4180, and serves with Content-Disposition: attachment.

Enum values:
json
csv

Get pricing-only slice for every domain in a job › Responses

Job header + array of per-domain pricing slices.

​ResearchJob · required
​JobPricingEntry[] · required