NowToPrint — Global print marketplaceHelp

OpenAPI Explorer & Spec Reference

Download the published machine-readable contracts for the Partner API, XJDF and PrintTalk layer, and Preflight surface.

Developerdocs4 min readReviewed Oct 21, 2026

The current RFQ create and organization-owned RFQ/quote read contract is generated at /api/v1/marketplace/openapi.json. The older /docs/api/openapi.yaml publication is a separate reference; do not assume the documents are identical. Confirm the environment origin and approved capabilities during onboarding.

Use this page as the single public index for NowToPrint machine-readable contracts. Each surface has one canonical download URL and a matching guide for operational context.


Published Resources

ResourcePublic URLGenerated referenceBest for
Partner REST API contract/api/v1/marketplace/openapi.jsonPartner REST APIPostman import, SDK generation, and QA contract review
XJDF / PrintTalk readiness contract/docs/api/xjdf-openapi.yamlXJDF & PrintTalk APIPrivate-beta readiness review and capability tooling
Preflight Engine contract/docs/api/preflight-openapi.yamlSpec only — no reference page yetQueued PDF inspection clients for job submission and polling
XJDF Swagger preview/docs/api/swagger-ui.htmlXJDF integration guideBrowser-based inspection of the XJDF contract

Canonical publication flow

Only allowlisted public specs are published at the public /docs/api/* URLs during verification and build. Internal Master Data contracts, admin routes, dark private-beta data-product contracts, and future external-productization specs stay out of the public mirror. Treat the public URLs on this page as the integration entry point.


Partner REST API

Overview

The generated Marketplace contract publishes RFQ create (201), one owned RFQ read (?id=), and its owned quote read. There is no RFQ list. Estimate/order adapters still return capability-specific 503 after credential authentication and quota; they are not successful pricing/order operations.

  • Base URL: https://api.nowtoprint.com/api/v1
  • Authentication: Authorization: Bearer <ntp_partner_v2_ credential>
  • Best for: auth and disabled-capability contract checks

Capability check

curl -X POST https://api.nowtoprint.com/api/v1/estimate \
  -H "Authorization: Bearer ntp_partner_v2_<issued-key-id>_<secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "business_cards",
    "quantity": 500,
    "specifications": {
      "paperType": "coated-matte"
    }
  }'

Next reading


XJDF / PrintTalk API

Overview

The XJDF and PrintTalk layer is a readiness-oriented private-beta contract for standards-referenced interoperability with MIS, ERP, and workflow systems. It is not a CIP4 certification, legal conformance claim, or external GA commitment.

  • Route family: https://api.nowtoprint.com/api/v1/xjdf
  • Authentication: public metadata needs no API key; costing session and XJMF sender auth are separate
  • Best for: readiness review, standards-referenced job exchange, capability discovery, and external workflow alignment

Explore in the browser

Use the published preview when you need a human-friendly contract walkthrough before importing the spec:


Preflight Engine API

Overview

POST /api/v1/preflight is not a Partner V2 RFQ operation. It requires a separate PDF_TOOLS_API_KEY bearer credential, API scope and paid server-work authorization. Deployment-dependent rate limiting can also apply.

Sample request

Replace the URL template with a configured Firebase bucket URL. Arbitrary CDN and private-network URLs are not accepted.

POST /api/v1/preflight HTTP/1.1
Host: api.nowtoprint.com
Authorization: Bearer <separate-server-preflight-key>
Content-Type: application/json

{
  "fileUrl": "https://storage.googleapis.com/<configured-bucket>/artwork.pdf",
  "options": { "profile": "default", "automationMode": "preserve_safe_only" }
}

Sample response shape

Acceptance returns HTTP 200 with success: true; data includes jobId (pq_job_...), traceId, status: queued, fileUrl, profile, autoFix, automationMode, proofingContextId, and a message. It does not prove completed analysis or production readiness. Job persistence and Cloud Task dispatch are separate steps; reconcile the job after a dispatch failure before resubmitting.

preserve_safe_only is the default. Legacy autoFix: true maps to allow_recommend_only; document mutation is enabled only by explicit allow_document_mutation. That mode does not authorize every color/font/trapping/flattening operation.

Machine-readable contract

Public reference: /docs/api/preflight-openapi.yaml. Known parity gaps remain between the public spec and current queue/worker behavior; verify job acceptance, completion and technical findings separately. A package version does not establish a public /v3 route. Studio local/WASM analysis and PDF partner planning endpoints are also separate contracts.


Problem details and retries

NowToPrint surfaces integration failures through structured HTTP responses. In general:

  • 400 means payload or schema mismatch
  • 401 means missing or invalid credentials
  • 403 means scope or entitlement mismatch
  • 429 means use returned reset metadata and honor Retry-After when present
  • 5xx means transient failure or dependency disruption

Use request IDs in logs, keep write operations idempotent, and wire webhooks before production.


Change management

The current RFQ contract is generated as marketplace-partner-api.v1. Compare static allowlisted publications with actual operations/schemas; publication alone does not prove runtime parity, CIP4 certification or external GA. Reconcile breaking differences with the integration owner before updating clients.


Related: API Reference | Partner API | XJDF API | Webhook Access & Delivery

Was this article helpful?

Related articles

Ask AI Assistant