Tvscientific · Authentication Profile

Tvscientific Authentication

Authentication

Tvscientific declares 2 security scheme(s) across its OpenAPI definitions.

CompanyAdvertisingConnected TVCTVStreamingPerformance MarketingAdTechMeasurementCampaign ManagementReal Time BiddingAttribution
Methods: Schemes: 2 OAuth flows: API key in:

Security Schemes

unknown
cookie

Source

Authentication Profile

tvscientific-authentication.yml Raw ↑
generated: '2026-08-12'
method: probed
source: >-
  Anonymous probes of https://api.tvscientific.app on 2026-08-12. No OpenAPI securitySchemes
  exist to derive from (tvScientific publishes no spec) and no public authentication
  documentation exists to search, so this profile is what the wire actually showed.
api: tvScientific Campaign Management API
docs: null
docs_note: >-
  There is no public auth page. help.tvscientific.com 301s to an Atlassian Service Desk
  login (https://tvscientific.atlassian.net/servicedesk/customer/portal/2/user/login) and
  support.tvscientific.com redirects into a Salesforce Community SAML request, so any
  authentication guide tvScientific has written sits behind a customer login.
posture: credentialed
public_access: partial
public_access_detail: >-
  The version root indexes (/v1/, /v2/), the health endpoint (/health) and one collection
  (/v1/terms_and_conditions/) are readable anonymously. Everything else — campaigns,
  creatives, lineitems, audiences, advertisers, billing, users — requires credentials.
schemes:
- id: unidentified
  type: unknown
  confirmed: false
  evidence:
    status: 403
    body: '{"detail":"Authentication credentials were not provided."}'
    url: https://api.tvscientific.app/v1/campaigns/
  note: >-
    Django REST Framework returns 403 with this message when no authentication class
    successfully authenticated the request AND none of them advertises a challenge. Because
    no WWW-Authenticate header is sent, the accepted credential type cannot be named from
    outside. Recorded as unidentified rather than guessed.
- id: session-cookie
  type: cookie
  confirmed: false
  confidence: medium
  evidence:
    header: 'Vary: Accept, Cookie, origin'
    url: https://api.tvscientific.app/v1/
  note: >-
    The API varies its response on the Cookie header, which means a session cookie is at
    least one of the inputs to authorization. This is consistent with the Campaign Management
    UI at https://tvscientific.app calling this API with a session. It does not rule out a
    token or key scheme also being accepted.
oauth2: false
oidc: false
mutual_tls: false
negative_probes:
  # every published OAuth/OIDC/token discovery surface MISSED
- url: https://api.tvscientific.app/.well-known/oauth-authorization-server
  status: 404
- url: https://api.tvscientific.app/.well-known/openid-configuration
  status: 404
- url: https://api.tvscientific.app/.well-known/oauth-protected-resource
  status: 404
- url: https://api.tvscientific.app/o/token/
  status: 404
- url: https://api.tvscientific.app/o/authorize/
  status: 404
- url: https://api.tvscientific.app/token/
  status: 404
- url: https://api.tvscientific.app/api-token-auth/
  status: 404
- url: https://api.tvscientific.app/v1/auth/
  status: 404
- url: https://api.tvscientific.app/v1/login/
  status: 404
- url: https://api.tvscientific.app/v1/register/
  status: 404
scopes: null
scopes_note: >-
  No OAuth surface exists, so there is no scope vocabulary to capture and no
  scopes/ artifact is written. Authorization appears to be tenant- and role-based —
  /v1/tenants/, /v1/organizations/, /v1/organization_users/, /v1/user_types/ and
  /v1/advertiser_users/ are all first-class collections — but the model is not published.
onboarding:
  self_serve: false
  path: >-
    Access is arranged through the tvScientific account team. The public site offers a demo
    request (https://www.tvscientific.com/ctv-demo) and a contact form
    (https://www.tvscientific.com/contact); there is no developer sign-up, no API key
    self-issuance page and no public credential lifecycle documentation.
pointer_emitted: false
pointer_note: >-
  No `type: Authentication` pointer is wired into apis.yml. The scorer's check is
  `authentication_documented`, and tvScientific documents nothing publicly — this artifact
  records an observed 403 and a named absence, not a provider-published auth guide. Emitting
  the pointer would credit tvScientific with auth documentation it has not published. Same
  rule as the well-known and agent-card probes: the pointer asserts the PROVIDER serves the
  surface.
gaps:
- No public authentication documentation.
- No WWW-Authenticate challenge, so the scheme is undiscoverable from the wire.
- 403 returned where 401 is semantically correct for a missing credential.
- No OAuth 2.0 or OpenID Connect metadata document on any host.
- No documented key rotation, expiry or revocation policy.