Skip to content
Developers
GET

A report PDF of one of your orders

GET/api/vendor/v1/orders/{order_id}/files/{service}

Download a completed report using your X-API-Key. A report that is not available returns 404.

Authorization

  • X-API-Keystringrequired

    The environment's prefix (snt_test_ on this server; GET /me returns the environment), 8 characters, _, then the secret. Shown once, when the key is created in the Sentinel Developers portal. A key works only against the server that issued it.

Path parameters

  • order_idstring · uuidrequired
  • servicestringrequired

    One of: mvr, psp, cdlis

Responses

  • 200The PDF, as an attachment.application/pdf
    • Content-Dispositionheader · string

      attachment; filename="sentinel-<service>-<order_id>.pdf".

    • Cache-Controlheader · string

      no-store: order results are never cached.

    • X-Content-Type-Optionsheader · string

      nosniff.

  • 401invalid_api_key or api_key_expired.
    • WWW-Authenticateheader · string
    • errorobjectrequired
      Show 4 fields
      • order_idstring · uuid

        idempotency_conflict only: the order the key already belongs to.

      • codestringrequired
        • validation_error (400).
        • invalid_api_key (401).
        • api_key_expired (401).
        • account_not_approved (403).
        • account_suspended (403).
        • service_not_enabled (403).
        • permission_denied (403).
        • not_found (404).
        • method_not_allowed (405).
        • idempotency_conflict (409).
        • in_progress (409).
        • payload_too_large (413).
        • unsupported_media_type (415).
        • mvr_state_unavailable (422).
        • rate_limited (429).
        • internal_error (500).
        • rate_limit_unavailable (503).
        • price_unavailable (503).
        • request_unavailable: another HTTP error.

        One of: validation_error, invalid_api_key, api_key_expired, account_not_approved, account_suspended, service_not_enabled, permission_denied, not_found, method_not_allowed, idempotency_conflict, in_progress, payload_too_large, unsupported_media_type, mvr_state_unavailable, rate_limited, internal_error, rate_limit_unavailable, price_unavailable, request_unavailable

      • messagestringrequired

        For people; may change. Use code in your code.

      • fieldsobject | nullrequired

        Per-field messages, for validation errors.

  • 403account_not_approved.
    • errorobjectrequired
      Show 4 fields
      • order_idstring · uuid

        idempotency_conflict only: the order the key already belongs to.

      • codestringrequired
        • validation_error (400).
        • invalid_api_key (401).
        • api_key_expired (401).
        • account_not_approved (403).
        • account_suspended (403).
        • service_not_enabled (403).
        • permission_denied (403).
        • not_found (404).
        • method_not_allowed (405).
        • idempotency_conflict (409).
        • in_progress (409).
        • payload_too_large (413).
        • unsupported_media_type (415).
        • mvr_state_unavailable (422).
        • rate_limited (429).
        • internal_error (500).
        • rate_limit_unavailable (503).
        • price_unavailable (503).
        • request_unavailable: another HTTP error.

        One of: validation_error, invalid_api_key, api_key_expired, account_not_approved, account_suspended, service_not_enabled, permission_denied, not_found, method_not_allowed, idempotency_conflict, in_progress, payload_too_large, unsupported_media_type, mvr_state_unavailable, rate_limited, internal_error, rate_limit_unavailable, price_unavailable, request_unavailable

      • messagestringrequired

        For people; may change. Use code in your code.

      • fieldsobject | nullrequired

        Per-field messages, for validation errors.

  • 404not_found.
    • errorobjectrequired
      Show 4 fields
      • order_idstring · uuid

        idempotency_conflict only: the order the key already belongs to.

      • codestringrequired
        • validation_error (400).
        • invalid_api_key (401).
        • api_key_expired (401).
        • account_not_approved (403).
        • account_suspended (403).
        • service_not_enabled (403).
        • permission_denied (403).
        • not_found (404).
        • method_not_allowed (405).
        • idempotency_conflict (409).
        • in_progress (409).
        • payload_too_large (413).
        • unsupported_media_type (415).
        • mvr_state_unavailable (422).
        • rate_limited (429).
        • internal_error (500).
        • rate_limit_unavailable (503).
        • price_unavailable (503).
        • request_unavailable: another HTTP error.

        One of: validation_error, invalid_api_key, api_key_expired, account_not_approved, account_suspended, service_not_enabled, permission_denied, not_found, method_not_allowed, idempotency_conflict, in_progress, payload_too_large, unsupported_media_type, mvr_state_unavailable, rate_limited, internal_error, rate_limit_unavailable, price_unavailable, request_unavailable

      • messagestringrequired

        For people; may change. Use code in your code.

      • fieldsobject | nullrequired

        Per-field messages, for validation errors.

  • 429rate_limited. 120 reads and 10 orders a minute per vendor, across all of its keys.
    • Retry-Afterheader · integer

      Seconds to wait before trying again.

    • errorobjectrequired
      Show 4 fields
      • order_idstring · uuid

        idempotency_conflict only: the order the key already belongs to.

      • codestringrequired
        • validation_error (400).
        • invalid_api_key (401).
        • api_key_expired (401).
        • account_not_approved (403).
        • account_suspended (403).
        • service_not_enabled (403).
        • permission_denied (403).
        • not_found (404).
        • method_not_allowed (405).
        • idempotency_conflict (409).
        • in_progress (409).
        • payload_too_large (413).
        • unsupported_media_type (415).
        • mvr_state_unavailable (422).
        • rate_limited (429).
        • internal_error (500).
        • rate_limit_unavailable (503).
        • price_unavailable (503).
        • request_unavailable: another HTTP error.

        One of: validation_error, invalid_api_key, api_key_expired, account_not_approved, account_suspended, service_not_enabled, permission_denied, not_found, method_not_allowed, idempotency_conflict, in_progress, payload_too_large, unsupported_media_type, mvr_state_unavailable, rate_limited, internal_error, rate_limit_unavailable, price_unavailable, request_unavailable

      • messagestringrequired

        For people; may change. Use code in your code.

      • fieldsobject | nullrequired

        Per-field messages, for validation errors.

  • 503rate_limit_unavailable.
    • Retry-Afterheader · integer

      Seconds to wait before trying again.

    • errorobjectrequired
      Show 4 fields
      • order_idstring · uuid

        idempotency_conflict only: the order the key already belongs to.

      • codestringrequired
        • validation_error (400).
        • invalid_api_key (401).
        • api_key_expired (401).
        • account_not_approved (403).
        • account_suspended (403).
        • service_not_enabled (403).
        • permission_denied (403).
        • not_found (404).
        • method_not_allowed (405).
        • idempotency_conflict (409).
        • in_progress (409).
        • payload_too_large (413).
        • unsupported_media_type (415).
        • mvr_state_unavailable (422).
        • rate_limited (429).
        • internal_error (500).
        • rate_limit_unavailable (503).
        • price_unavailable (503).
        • request_unavailable: another HTTP error.

        One of: validation_error, invalid_api_key, api_key_expired, account_not_approved, account_suspended, service_not_enabled, permission_denied, not_found, method_not_allowed, idempotency_conflict, in_progress, payload_too_large, unsupported_media_type, mvr_state_unavailable, rate_limited, internal_error, rate_limit_unavailable, price_unavailable, request_unavailable

      • messagestringrequired

        For people; may change. Use code in your code.

      • fieldsobject | nullrequired

        Per-field messages, for validation errors.

curl --fail-with-body https://api-demo-safety.spotter.ai/api/vendor/v1/orders/3f2b9c1e-7a4d-4e8b-9c61-5d0a8e2f4b17/files/mvr \
  -H "X-API-Key: YOUR_API_KEY" \
  -OJ

application/pdf