Analytics

View as Markdown

Figures about your account over time: quote volume, value and reviews. Integrators only.

The integrator analytics object

Figures about your account for a period: quote volume, quoted value, slicing time, API usage, approval reviews and orders.

Attributes

  • objectstring

    Names the type of this object. Always integrator_analytics.

  • periodobject

    The window this answer covers.

  • previous_periodobject

    The window of the same length just before period, which quotes.previous covers. Compare the two for change.

  • filtersobject

    The filters applied, as understood.

  • quotesobject

    Your quotes in the period, with the filters.

  • api_usageobject

    Calls made with your API keys in the period, from the request log (kept 30 days). Dashboard traffic is not counted. The api_key filter applies; status does not.

  • reviewsobject

    Approval reviews of your files since the account began. Not limited by the period or the filters.

  • ordersobject

    Your orders placed in the period, both modes. Amounts are the ones get_integrator_order shows for each order (charges.total, completed refunds, earnings.net), added up; a cancelled order keeps what it was charged and its refund. The status and api_key filters do not apply.

The integrator analytics object
{
  ,
  ,
  ,
  ,
  ,
  ,
  ,
  
}

Get your analytics

GET/v2/integrator/analytics

Credentials
A signed-in dashboard session only; API keys are refused.
For
Integrators
Operation id
get_integrator_analytics

Figures about your quotes and API calls for a period: how many quotes you created and how they ended, their total and average unit price, how long slicing took, a time series, the spread of prices, file types, your most quoted files and which API keys created them, plus the outcome of your approval reviews.

The orders section covers the orders you placed in the period: counts over time, by status and by mode, your wallet spend on production, your checkout sales and earnings, average order value and the quotes ordered most. Its amounts are the per-order figures of get_integrator_order, added up.

Every total comes with the same figure for the equal period just before, for comparison. Periods are up to 731 days and 366 buckets; all dates are UTC.

Integrators only, and only with a signed-in dashboard session: an API key cannot read analytics (credential_not_allowed).

Query parameters

  • fromtimestamp

    Start of the period, included. Defaults to 30 days before to.

  • totimestamp

    End of the period, excluded. Defaults to the end of today (UTC).

  • granularitystring

    Bucket size of quotes.series. Defaults to day up to 62 days, week up to 184 days, month beyond.

    Possible valuesdayweekmonth
  • statusarray of QuoteStatus

    Only quotes in these states. Repeat for several.

    Possible valuesprocessingreadyfailed
  • api_keystring

    Only quotes created with this API key.

Returns200 OK

Your analytics for the period. Returns the integrator analytics object.

Responses

  • 200

    Your analytics for the period.

  • 400

    A filter is invalid (validation_failed), from is not before to or the period is too long (invalid_period), or the granularity gives too many buckets (too_many_buckets).

  • 401

    Credentials are missing (missing_credentials), the API key is unknown or inactive (invalid_api_key), the session expired (invalid_session), or both a key and a session were sent (ambiguous_credentials).

  • 403

    Called with an API key instead of a session (credential_not_allowed), or not an integrator account (actor_not_allowed).

  • 429

    Too many requests (rate_limited): the limit is 500 per minute per API key (or signed-in user). Wait for the number of seconds in the Retry-After header, then retry; details has limit, window_seconds, reset_at and retry_after_seconds.

Errors use the error object.

GET/v2/integrator/analytics
curl "https://public-api.dapi.digital/v2/integrator/analytics" \
  -H "x-api-key: $DAPI_API_KEY"
Response
{
  "object": "integrator_analytics",
  "period": {
    "from": "2026-09-22T00:00:00Z",
    "to": "2026-10-22T00:00:00Z",
    "granularity": "day",
    "time_zone": "UTC"
  },
  "previous_period": {
    "from": "2026-08-23T00:00:00Z",
    "to": "2026-09-22T00:00:00Z"
  },
  "filters": {
    "status": [],
    "api_key": null
  },
  "quotes": {
    "totals": {
      "created": 128,
      "processing": 2,
      "ready": 118,
      "failed": 8,
      "success_rate": 0.9365,
      "quoted_value": {
        "amount": 162480,
        "currency": "usd"
      },
      "average_value": {
        "amount": 1377,
        "currency": "usd"
      },
      "median_slicing_seconds": 74
    },
    "previous": {
      "created": 97,
      "processing": 0,
      "ready": 89,
      "failed": 8,
      "success_rate": 0.9175,
      "quoted_value": {
        "amount": 118300,
        "currency": "usd"
      },
      "average_value": {
        "amount": 1329,
        "currency": "usd"
      },
      "median_slicing_seconds": 81
    },
    "series": [
      {
        "start": "2026-10-21T00:00:00Z",
        "created": 6,
        "ready": 5,
        "failed": 1,
        "quoted_value": {
          "amount": 7240,
          "currency": "usd"
        }
      }
    ],
    "value_distribution": [
      {
        "min": {
          "amount": 0,
          "currency": "usd"
        },
        "max": {
          "amount": 500,
          "currency": "usd"
        },
        "count": 12
      },
      {
        "min": {
          "amount": 25000,
          "currency": "usd"
        },
        "max": null,
        "count": 1
      }
    ],
    "file_types": [
      {
        "type": "stl",
        "created": 96,
        "ready": 90
      }
    ],
    "top_files": [
      {
        "name": "phone-stand.stl",
        "created": 9,
        "ready": 9,
        "latest_price": {
          "amount": 1240,
          "currency": "usd"
        },
        "last_quoted_at": "2026-10-21T14:02:11Z"
      }
    ],
    "sources": [
      {
        "api_key": {
          "id": "key_bfP0GSqKoZFrD72H5Os0rc7HV9XP6eQJu",
          "object": "api_key",
          "name": "Production server"
        },
        "created": 110,
        "ready": 103
      },
      {
        "api_key": null,
        "created": 18,
        "ready": 15
      }
    ]
  },
  "api_usage": {
    "totals": {
      "calls": 1840,
      "client_errors": 21,
      "server_errors": 1,
      "error_rate": 0.012,
      "p50_ms": 96,
      "p95_ms": 412
    },
    "previous": {
      "calls": 1302,
      "client_errors": 30,
      "server_errors": 0,
      "error_rate": 0.023,
      "p50_ms": 104,
      "p95_ms": 455
    },
    "series": [
      {
        "start": "2026-10-21T00:00:00Z",
        "calls": 74,
        "errors": 1,
        "p95_ms": 380
      }
    ],
    "endpoints": [
      {
        "method": "GET",
        "route": "/v2/quotes/:id",
        "calls": 1520,
        "errors": 4,
        "p95_ms": 160
      }
    ],
    "sources": [
      {
        "api_key": {
          "id": "key_bfP0GSqKoZFrD72H5Os0rc7HV9XP6eQJu",
          "object": "api_key",
          "name": "Production server"
        },
        "calls": 1840,
        "errors": 22
      }
    ]
  },
  "reviews": {
    "requests_sent": 2,
    "files_in_review": 0,
    "files_approved": 7,
    "files_rejected": 3,
    "rejection_reasons": [
      {
        "reason": "Walls under 0.8 mm will break in print.",
        "count": 2
      }
    ]
  },
  "orders": {
    "totals": {
      "created": 14,
      "paid": 13,
      "cancelled": 1,
      "wallet": {
        "orders": 8,
        "charged": {
          "amount": 46400,
          "currency": "usd"
        },
        "refunded": {
          "amount": 5800,
          "currency": "usd"
        },
        "spend": {
          "amount": 40600,
          "currency": "usd"
        },
        "average_order_value": {
          "amount": 5800,
          "currency": "usd"
        }
      },
      "checkout": {
        "orders": 5,
        "charged": {
          "amount": 42300,
          "currency": "usd"
        },
        "refunded": {
          "amount": 0,
          "currency": "usd"
        },
        "sales": {
          "amount": 42300,
          "currency": "usd"
        },
        "earnings": {
          "amount": 13240,
          "currency": "usd"
        },
        "average_order_value": {
          "amount": 8460,
          "currency": "usd"
        }
      }
    },
    "previous": {
      "created": 9,
      "paid": 8,
      "cancelled": 0,
      "wallet": {
        "orders": 5,
        "charged": {
          "amount": 30150,
          "currency": "usd"
        },
        "refunded": {
          "amount": 0,
          "currency": "usd"
        },
        "spend": {
          "amount": 30150,
          "currency": "usd"
        },
        "average_order_value": {
          "amount": 6030,
          "currency": "usd"
        }
      },
      "checkout": {
        "orders": 3,
        "charged": {
          "amount": 19800,
          "currency": "usd"
        },
        "refunded": {
          "amount": 0,
          "currency": "usd"
        },
        "sales": {
          "amount": 19800,
          "currency": "usd"
        },
        "earnings": {
          "amount": 6120,
          "currency": "usd"
        },
        "average_order_value": {
          "amount": 6600,
          "currency": "usd"
        }
      }
    },
    "series": [
      {
        "start": "2026-10-21T00:00:00Z",
        "created": 2,
        "wallet": 1,
        "checkout": 1,
        "wallet_spend": {
          "amount": 5800,
          "currency": "usd"
        },
        "checkout_sales": {
          "amount": 8460,
          "currency": "usd"
        }
      }
    ],
    "by_status": [
      {
        "status": "in_production",
        "count": 3
      },
      {
        "status": "shipped",
        "count": 4
      },
      {
        "status": "completed",
        "count": 6
      },
      {
        "status": "cancelled",
        "count": 1
      }
    ],
    "by_mode": [
      {
        "mode": "wallet",
        "created": 8,
        "paid": 8
      },
      {
        "mode": "checkout",
        "created": 6,
        "paid": 5
      }
    ],
    "top_quotes": [
      {
        "quote": {
          "id": "qte_bfP0GSqKoZFrD72H5Os0rc7HV9XP6eQJu",
          "object": "quote",
          "name": "phone-stand.stl"
        },
        "orders": 7,
        "units": 42
      }
    ]
  }
}