University of California, Los Angeles website screenshot

University of California, Los Angeles

The University of California, Los Angeles is a public land-grant research university in the University of California system, ranked 29th in the QS World University Rankings, and it is one of the few institutions in this cohort that genuinely runs a central API program rather than renting one. UCLA operates its own API gateway at api.ucla.edu, fronted by Apigee under a certificate issued to the university, and a Drupal/Apigee developer portal at developer.api.ucla.edu that catalogues eight API products. Seven of those products publish a real machine-readable contract, anonymously downloadable, and all seven describe routes on UCLA's own gateway - six Swagger 2.0 contracts covering the student information system (classes, class sections, courses, GE foundations, a 61-operation Registrar data dictionary, the mainframe production calendar, a connectivity health check and the MyUCLA portal menu) plus one OpenAPI 3.0.3 contract for a campus weather station. Ninety-one operations in total, every one of them a read. UCLA also runs its own Shibboleth identity provider, registered by InCommon under entityID urn:mace:incommon:ucla.edu with REFEDS Research & Scholarship and SIRTFI certification - the most complete machine-readable artifact the university publishes, and the one no API catalogue had looked at. UCLA Library self-hosts a Cantaloupe IIIF image server, a Hyrax digital collections platform and a Dataverse instance, all on ucla.edu hosts under UCLA's own TLS certificates. What UCLA does not have is any way in: every credential requires a UCLA logon and a human approval, there is no self-service path, no status page, no changelog, no llms.txt, no machine-readable catalog index, and no rate-limit or error documentation. The learning management system, BruinLearn, is Instructure Canvas on a vanity subdomain and is recorded as a tenant relationship rather than as UCLA engineering.

University of California, Los Angeles publishes 7 APIs on the APIs.io network, including UCLA Classes API, UCLA Courses API, UCLA Registrar Dictionary API, and 4 more. Tagged areas include University, Higher Education, Education, United States, and California.

The University of California, Los Angeles catalog on APIs.io includes 1 JSON-LD context and 1 Spectral governance ruleset.

University of California, Los Angeles’ developer surface includes API reference, documentation, support, GitHub presence, engineering blog, code examples, authentication, and 30 more developer resources.

49.8/100 developing ▲ 30.5 Agent 31/100 agent aware Full breakdown ↓
scored 2026-08-20 · rubric v0.12.0
AccessFree
12 APIs
UniversityHigher EducationEducationUnited StatesCaliforniaUC SystemPublic Research UniversityCourse CatalogStudent InformationIdentity FederationResearch RepositoryLibraryIIIFCampus Life

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-08-20 · rubric v0.12.0
Composite quality — 49.8/100 · developing
Contract Quality 11.8 / 21
Developer Ergonomics 7.7 / 17
Access Clarity 8.5 / 17
Operational Transparency 2.9 / 11
Contract Governance 0.4 / 10
Discoverability 6.3 / 9
Regulatory Posture 9.7 / 15
Agent readiness — 31/100 · agent aware
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
Documented Reversibility 0 / 6
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 7 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Regulatory Posture applies to this provider. Its tags matched the Education & Research regime, so Regulatory Posture carries 15 points of the composite. If this regime is wrong for your business, say so on your provider repo — the applicability map is public and we will correct it.
The six quality facets above are damped to 85 points between them, because the conditional facet above carries the other 15. That is why each facet's contribution is shown against a damped maximum: raising a quality facet moves the composite by 85% of its nominal weight, not 100%. The full arithmetic is at apis.io/rating/.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/ucla: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 12

Individual APIs this provider publishes, each with its own machine-readable definition.

UCLA Classes API

All classes offered in a selected UCLA term - title, description, notes, final exam details, and class sections with meeting times, locations, enrolment counts, units and instru...

UCLA Courses API

Every approved UCLA course, current and historical - title, description, General Education and diversity attributes, requisites, and the General Education foundation and categor...

UCLA Registrar Dictionary API

The largest contract UCLA publishes and the one that makes the rest legible - 61 read operations enumerating every coded value the other SIS APIs return: buildings, careers, cit...

UCLA Production Calendar Jobs API

One read operation returning the Registrar's mainframe batch schedule for a given run date and a forward window in weeks. The only UCLA contract that describes campus operations...

UCLA Verify Connectivity to SIS API

A single health-check operation under the Infrastructure tag, whose only purpose is to let a subscribed application confirm it can reach the student information system through t...

MyUCLA Menu Data API

One read operation returning the navigation tree of MyUCLA, the student portal, so that the megamenu can be assembled by any client rather than hard-coded into one. Small, hones...

UCLA Weather API

Fourteen read operations returning live observations from UCLA's campus weather station - wind speed and gust, air temperature with daily minimum and maximum, relative humidity,...

UCLA Shibboleth Identity Provider (InCommon)

UCLA's own Shibboleth identity provider and the most complete machine-readable artifact the university publishes. Registered by InCommon under entityID urn:mace:incommon:ucla.ed...

UCLA Library IIIF Image Service

UCLA Library self-hosts a Cantaloupe 5.0.5 image server exposing both IIIF Image API 2.x and 3.0 endpoints for its digital collections. Institution-operated on UCLA's own AWS in...

UCLA Library Digital Collections

UCLA Library's digital collections platform, institution-hosted on a UCLA IP under a UCLA-issued certificate and developed in the open by the UCLA Library engineering organisati...

UCLA Dataverse

UCLA's research data repository, running open-source Dataverse on a UCLA-owned host under a UCLA-issued certificate with no vendor CNAME - which distinguishes it from the Figsha...

BruinLearn (Canvas LMS)

UCLA's learning management system. The brand, the courses, the learners and the subdomain are UCLA's; the REST API, the LTI 1.3 implementation, the key rotation and the contract...

Scroll for all 12

Pricing Plans 1

Published pricing tiers and plan structures.

Ucla Plans Pricing

2 plans

PLANS

Rate Limits 1

Documented rate limits and quota policies.

Ucla Rate Limits

2 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Ucla Finops

FINOPS

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Ucla Context

31 classes · 4 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

JSON Schema 7

Standalone JSON Schema definitions for this provider's data models.

UCLA sis classes — schemas in use

0 properties

JSON SCHEMA

UCLA sis courses — schemas in use

0 properties

JSON SCHEMA

UCLA weather — schemas in use

0 properties

JSON SCHEMA

Scroll for all 7

Examples 2

Example request and response payloads for these APIs.

Ucla Bruinlearn Lti Jwks

1 fields

EXAMPLE

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Ucla Authentication

4 schemes

SECURITY

Ucla Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Scopes 1

OAuth scopes governing access to this provider's APIs.

Ucla Scopes

OAuth 2.0 · no documented scopes

0 scopes

SCOPES

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Ucla Agentic Access

91 operations

91 operations · 0 acting

AGENTIC

Resources

Get Started 1

Portal, sign-up, and the first successful call

Documentation 4

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 6

Pagination, idempotency, versioning, errors, and events

Build 5

SDKs, sample code, and the tooling you integrate with

Access & Security 3

Authentication, authorization, and security posture

Learn 1

Tutorials, courses, talks, and written guidance

Operate 2

Status, limits, changes, and where to get help

Commercial 4

Pricing, plans, and the legal terms of use

Company 4

The organization behind the API

Other 6

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: ucla
name: University of California, Los Angeles
description: 'The University of California, Los Angeles is a public land-grant research university in the University of California
  system, ranked 29th in the QS World University Rankings, and it is one of the few institutions in this cohort that genuinely
  runs a central API program rather than renting one. UCLA operates its own API gateway at api.ucla.edu, fronted by Apigee
  under a certificate issued to the university, and a Drupal/Apigee developer portal at developer.api.ucla.edu that catalogues
  eight API products. Seven of those products publish a real machine-readable contract, anonymously downloadable, and all
  seven describe routes on UCLA''s own gateway - six Swagger 2.0 contracts covering the student information system (classes,
  class sections, courses, GE foundations, a 61-operation Registrar data dictionary, the mainframe production calendar, a
  connectivity health check and the MyUCLA portal menu) plus one OpenAPI 3.0.3 contract for a campus weather station. Ninety-one
  operations in total, every one of them a read. UCLA also runs its own Shibboleth identity provider, registered by InCommon
  under entityID urn:mace:incommon:ucla.edu with REFEDS Research & Scholarship and SIRTFI certification - the most complete
  machine-readable artifact the university publishes, and the one no API catalogue had looked at. UCLA Library self-hosts
  a Cantaloupe IIIF image server, a Hyrax digital collections platform and a Dataverse instance, all on ucla.edu hosts under
  UCLA''s own TLS certificates. What UCLA does not have is any way in: every credential requires a UCLA logon and a human
  approval, there is no self-service path, no status page, no changelog, no llms.txt, no machine-readable catalog index, and
  no rate-limit or error documentation. The learning management system, BruinLearn, is Instructure Canvas on a vanity subdomain
  and is recorded as a tenant relationship rather than as UCLA engineering.'
type: Index
accessModel:
  pricing: free
  onboarding: request
  trial: false
  try_now: false
  public: false
  label: Affiliation-gated
  confidence: high
  source:
  - authentication
  - plans
  generated: '2026-08-19'
  method: probed
position: Consumer
access: 3rd-Party
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/ucla.png
url: https://raw.githubusercontent.com/api-evangelist/ucla/refs/heads/main/apis.yml
tags:
- University
- Higher Education
- Education
- United States
- California
- UC System
- Public Research University
- Course Catalog
- Student Information
- Identity Federation
- Research Repository
- Library
- IIIF
- Campus Life
created: '2026-06-03'
modified: '2026-08-19'
specificationVersion: '0.23'
x-type: university
x-category: Public Research University
apis:
- aid: ucla:sis-classes
  name: UCLA Classes API
  description: All classes offered in a selected UCLA term - title, description, notes, final exam details, and class sections
    with meeting times, locations, enrolment counts, units and instructors. Six read operations tagged Classes and Class Sections,
    including a dedicated route for UCLA Extension. Keyed on UCLA's own three-character offeredTermCode. Contract is Swagger
    2.0, published by UCLA on its own portal and describing routes on UCLA's own gateway.
  humanURL: https://developer.api.ucla.edu/api/261
  baseURL: https://api.ucla.edu/sis
  tags:
  - Classes
  - Course Catalog
  - Student Information
  - SIS
  - Registrar
  properties:
  - type: OpenAPI
    url: openapi/ucla-sis-classes-openapi.yml
  - type: Documentation
    url: https://developer.api.ucla.edu/api/261
  - type: JSONSchema
    url: json-schema/ucla-sis-classes-schemas.json
  - type: Authentication
    url: authentication/ucla-authentication.yml
  - type: Scopes
    url: scopes/ucla-scopes.yml
  - type: Signup
    url: https://developer.api.ucla.edu/
  x-operator: institution
  x-operator-evidence: Contract host api.ucla.edu with basePath /sis; TLS subject O=University of California, Los Angeles
    issued by InCommon RSA Server CA 2; tokenUrl on the same host; contract served from UCLA's own developer portal.
  x-access: gated
  x-status: 401 oauth.v2.InvalidAccessToken on a documented route (probed 2026-08-19)
- aid: ucla:sis-courses
  name: UCLA Courses API
  description: Every approved UCLA course, current and historical - title, description, General Education and diversity attributes,
    requisites, and the General Education foundation and category structure courses are certified against. Seven read operations.
    Courses are identified by the triple subjectAreaCode / courseCatalogNumber / courseStartTermCode, because UCLA versions
    its courses by the term a version took effect. Sourced from the Registrar's general catalog.
  humanURL: https://developer.api.ucla.edu/api/271
  baseURL: https://api.ucla.edu/sis
  tags:
  - Courses
  - Course Catalog
  - Registrar
  - SIS
  - General Education
  properties:
  - type: OpenAPI
    url: openapi/ucla-sis-courses-openapi.yml
  - type: Documentation
    url: https://developer.api.ucla.edu/api/271
  - type: JSONSchema
    url: json-schema/ucla-sis-courses-schemas.json
  - type: CourseCatalog
    url: https://catalog.registrar.ucla.edu/
  - type: Authentication
    url: authentication/ucla-authentication.yml
  - type: Signup
    url: https://developer.api.ucla.edu/
  x-operator: institution
  x-operator-evidence: Contract host api.ucla.edu/sis; UCLA-issued TLS; served from UCLA's own portal.
  x-access: gated
- aid: ucla:sis-dictionary
  name: UCLA Registrar Dictionary API
  description: 'The largest contract UCLA publishes and the one that makes the rest legible - 61 read operations enumerating
    every coded value the other SIS APIs return: buildings, careers, cities, colleges, class levels, class numbers, activity
    types, academic actions, affiliation term sessions, enrolment statuses and fifty more. Owned by the Registrar''s Office.
    Any other campus would call this a code-tables service; publishing it as a first-class API product is the right decision
    and is unusual in this cohort.'
  humanURL: https://developer.api.ucla.edu/api/366
  baseURL: https://api.ucla.edu/sis
  tags:
  - Data Dictionary
  - Registrar
  - Reference Data
  - SIS
  properties:
  - type: OpenAPI
    url: openapi/ucla-sis-dictionary-openapi.yml
  - type: Documentation
    url: https://developer.api.ucla.edu/api/366
  - type: JSONSchema
    url: json-schema/ucla-sis-dictionary-schemas.json
  - type: Vocabulary
    url: vocabulary/ucla-vocabulary.yml
  - type: Signup
    url: https://developer.api.ucla.edu/
  x-operator: institution
  x-operator-evidence: Contract host api.ucla.edu/sis; UCLA-issued TLS; served from UCLA's own portal.
  x-access: gated
  x-note: The portal lists this product twice, at node 366 and node 1446. Only node 366 carries a specification; node 1446
    is an unannotated duplicate.
- aid: ucla:sis-production-calendar-jobs
  name: UCLA Production Calendar Jobs API
  description: One read operation returning the Registrar's mainframe batch schedule for a given run date and a forward window
    in weeks. The only UCLA contract that describes campus operations rather than campus data, and the only public evidence
    that UCLA's student information system still has a mainframe behind it. Classified privileged in agentic-access for that
    reason.
  humanURL: https://developer.api.ucla.edu/api/281
  baseURL: https://api.ucla.edu/sis
  tags:
  - Data Integration
  - Scheduling
  - Registrar
  tags_raw:
  - Operations
  - Data Integration
  - Scheduling
  - Registrar
  properties:
  - type: OpenAPI
    url: openapi/ucla-sis-production-calendar-jobs-openapi.yml
  - type: Documentation
    url: https://developer.api.ucla.edu/api/281
  - type: JSONSchema
    url: json-schema/ucla-sis-production-calendar-jobs-schemas.json
  - type: AgenticAccess
    url: agentic-access/ucla-agentic-access.yml
  x-operator: institution
  x-operator-evidence: Contract host api.ucla.edu/sis; UCLA-issued TLS; served from UCLA's own portal.
  x-access: gated
- aid: ucla:sis-verify-connectivity
  name: UCLA Verify Connectivity to SIS API
  description: A single health-check operation under the Infrastructure tag, whose only purpose is to let a subscribed application
    confirm it can reach the student information system through the gateway. UCLA ships it as a catalogued API product with
    its own portal page and its own contract - a small piece of genuinely good API program design. The contract nonetheless
    carries 1,036 schema definitions to describe one operation.
  humanURL: https://developer.api.ucla.edu/api/346
  baseURL: https://api.ucla.edu/sis
  tags:
  - Infrastructure
  - Health Check
  - SIS
  tags_raw:
  - Infrastructure
  - Health Check
  - SIS
  - Operations
  properties:
  - type: OpenAPI
    url: openapi/ucla-sis-verify-connectivity-openapi.yml
  - type: Documentation
    url: https://developer.api.ucla.edu/api/346
  - type: JSONSchema
    url: json-schema/ucla-sis-verify-connectivity-schemas.json
  x-operator: institution
  x-operator-evidence: Contract host api.ucla.edu/sis; UCLA-issued TLS; served from UCLA's own portal.
  x-access: gated
  x-added: '2026-08-19'
- aid: ucla:myucla-menu-data
  name: MyUCLA Menu Data API
  description: One read operation returning the navigation tree of MyUCLA, the student portal, so that the megamenu can be
    assembled by any client rather than hard-coded into one. Small, honest and genuinely institution-run - exactly the class
    of campus surface this pipeline exists to find.
  humanURL: https://developer.api.ucla.edu/api/61
  baseURL: https://api.ucla.edu/sis
  tags:
  - Navigation
  - MyUCLA
  - Campus Life
  - Student Portal
  properties:
  - type: OpenAPI
    url: openapi/ucla-myucla-menu-data-openapi.yml
  - type: Documentation
    url: https://developer.api.ucla.edu/api/61
  - type: JSONSchema
    url: json-schema/ucla-myucla-menu-data-schemas.json
  x-operator: institution
  x-operator-evidence: Contract host api.ucla.edu/sis; UCLA-issued TLS; served from UCLA's own portal.
  x-access: gated
- aid: ucla:weather
  name: UCLA Weather API
  description: Fourteen read operations returning live observations from UCLA's campus weather station - wind speed and gust,
    air temperature with daily minimum and maximum, relative humidity, dew point, wet bulb, sea-level pressure and more, each
    as a plain-text scalar. The only UCLA contract written in OpenAPI 3.0.3 rather than Swagger 2.0, the only one that documents
    every operation, and the only one that authenticates with a header API key instead of OAuth 2.0. info.version is 0.0.1
    on a live production route.
  humanURL: https://developer.api.ucla.edu/api/51
  baseURL: https://api.ucla.edu/weather
  tags:
  - Weather
  - Campus Life
  - Environmental Data
  - Atmospheric Sciences
  properties:
  - type: OpenAPI
    url: openapi/ucla-weather-openapi.yml
  - type: Documentation
    url: https://developer.api.ucla.edu/api/51
  - type: JSONSchema
    url: json-schema/ucla-weather-schemas.json
  x-operator: institution
  x-operator-evidence: servers[] https://api.ucla.edu/ and https://qa.api.ucla.edu/; info.description names https://weather.atmos.ucla.edu/;
    UCLA-issued TLS on both hosts.
  x-access: gated
  x-status: 401 on https://api.ucla.edu/weather/api with no key (probed 2026-08-19)
  x-added: '2026-08-19'
  x-note: The contract's info.description points at https://weather.atmos.ucla.edu/, which resolves in DNS (CNAME ocypete.atmos.ucla.edu,
    164.67.86.87) but accepts no HTTP or HTTPS connection. The pointer is dead and is deliberately not carried into this profile.
- aid: ucla:identity
  name: UCLA Shibboleth Identity Provider (InCommon)
  description: UCLA's own Shibboleth identity provider and the most complete machine-readable artifact the university publishes.
    Registered by InCommon under entityID urn:mace:incommon:ucla.edu, signed with RSA-SHA256, scoped to ucla.edu, serving
    SAML 1.1 and SAML 2.0 SSO from shb.ais.ucla.edu with a separate attribute authority on port 8443. Asserts the InCommon
    and REFEDS Research & Scholarship entity categories and a REFEDS SIRTFI assurance certification with a named security
    contact. Anonymously readable, federated into eduGAIN, and the surface class this cohort is never credited for.
  humanURL: https://dts.ucla.edu/
  baseURL: https://shb.ais.ucla.edu/shibboleth-idp
  tags:
  - Identity Federation
  - SAML
  - Shibboleth
  - InCommon
  - Single Sign-On
  - eduGAIN
  properties:
  - type: IdentityFederation
    url: identity-federation/ucla-identity-federation.yml
  - type: Documentation
    url: https://mdq.incommon.org/entities/urn%3Amace%3Aincommon%3Aucla.edu
  - type: Examples
    url: examples/ucla-idp-saml-metadata.xml
  - type: Conformance
    url: conformance/ucla-conformance.yml
  - type: Authentication
    url: authentication/ucla-authentication.yml
  x-operator: institution
  x-operator-evidence: entityID under ucla.edu; shibmd:Scope ucla.edu; endpoints on shb.ais.ucla.edu which CNAMEs to sso.auth.612c0b3a.prod.r53.aws.it.ucla.edu
    (UCLA-managed Route 53); OrganizationName "University of California-Los Angeles"; contacts at it.ucla.edu and ucla.edu.
  x-access: public
  x-added: '2026-08-19'
- aid: ucla:library-iiif
  name: UCLA Library IIIF Image Service
  description: UCLA Library self-hosts a Cantaloupe 5.0.5 image server exposing both IIIF Image API 2.x and 3.0 endpoints
    for its digital collections. Institution-operated on UCLA's own AWS infrastructure under a UCLA-issued certificate, not
    a vendor platform. Live but effectively unreadable from outside - every identifier probed, including a deliberate nonsense
    control, returned 403 with a Java stack trace naming the private S3 source bucket, so no manifest or info.json could be
    retrieved and none is claimed.
  humanURL: https://guides.library.ucla.edu/digital-collections/iiif
  baseURL: https://iiif.library.ucla.edu/iiif/2
  tags:
  - Library
  - IIIF
  - Digital Collections
  - Image
  - Cultural Heritage
  tags_raw:
  - Library
  - IIIF
  - Digital Collections
  - Images
  - Cultural Heritage
  properties:
  - type: Documentation
    url: https://iiif.library.ucla.edu/
  - type: Examples
    url: examples/ucla-iiif-cantaloupe-403-negative-probe.txt
  - type: Errors
    url: errors/ucla-errors.yml
  - type: GitHubOrganization
    url: https://github.com/UCLALibrary
  x-operator: institution
  x-operator-evidence: TLS subject O=University of California, Los Angeles issued by InCommon RSA OV SSL CA 3; resolves to
    an AWS ELB in UCLA Library's own us-west-2 account; software is open-source Cantaloupe self-hosted, not a hosted repository
    service.
  x-access: blocked
  x-status: 403 with stack trace on every identifier including a negative control (probed 2026-08-19)
- aid: ucla:digital-collections
  name: UCLA Library Digital Collections
  description: UCLA Library's digital collections platform, institution-hosted on a UCLA IP under a UCLA-issued certificate
    and developed in the open by the UCLA Library engineering organisation. Recorded as a relationship rather than a contract
    because the host answers HTTP 200 with an Anubis proof-of-work bot challenge to every path, including the OAI-PMH route,
    so no API response could be read. Neither a finding about UCLA nor a claim of a surface - a marker that this needs an
    authorised re-probe.
  humanURL: https://digital.library.ucla.edu/
  baseURL: https://digital.library.ucla.edu/
  tags:
  - Library
  - Digital Collections
  - Research Repository
  - OAI-PMH
  - Blocked
  properties:
  - type: Documentation
    url: https://digital.library.ucla.edu/
  - type: GitHubOrganization
    url: https://github.com/UCLALibrary
  x-operator: institution
  x-operator-evidence: A record 164.67.48.162 in UCLA address space; TLS subject O=University of California, Los Angeles issued
    by InCommon RSA Server CA 2; no vendor CNAME.
  x-access: blocked
  x-status: 200 with an Anubis bot-challenge body on every path (probed 2026-08-19)
- aid: ucla:dataverse
  name: UCLA Dataverse
  description: UCLA's research data repository, running open-source Dataverse on a UCLA-owned host under a UCLA-issued certificate
    with no vendor CNAME - which distinguishes it from the Figshare and Elsevier Pure tenancies that dominate this cohort.
    Recorded as a relationship rather than a contract because the host answers HTTP 200 with an Anubis bot challenge to every
    path including /api/info/version and /oai, so neither the Dataverse version, the DOI prefix nor OAI-PMH conformance could
    be confirmed, and none is claimed.
  humanURL: https://dataverse.ucla.edu/
  baseURL: https://dataverse.ucla.edu/api
  tags:
  - Research Repository
  - Research Data
  - Dataverse
  - Open Data
  - Blocked
  properties:
  - type: Documentation
    url: https://dataverse.ucla.edu/
  - type: Conformance
    url: conformance/ucla-conformance.yml
  x-operator: institution
  x-operator-evidence: TLS subject O=University of California, Los Angeles issued by InCommon RSA Server CA 2; A record 52.37.16.173
    with no vendor CNAME; software is open-source Dataverse, self-installed.
  x-access: blocked
  x-status: 200 with an Anubis bot-challenge body on every path (probed 2026-08-19)
  x-added: '2026-08-19'
- aid: ucla:bruinlearn
  name: BruinLearn (Canvas LMS)
  description: UCLA's learning management system. The brand, the courses, the learners and the subdomain are UCLA's; the REST
    API, the LTI 1.3 implementation, the key rotation and the contract are Instructure's, and bruinlearn.ucla.edu CNAMEs to
    ucla-vanity.instructure.com. The LTI tool-platform JWKS is anonymously readable and the REST API returns a structured
    401. Recorded as a tenant relationship; no Canvas contract is saved under this institution.
  humanURL: https://bruinlearn.ucla.edu/
  baseURL: https://bruinlearn.ucla.edu/api/v1
  tags:
  - Learning Management
  - LTI
  - Course Delivery
  - Canvas
  - Gated
  properties:
  - type: Documentation
    url: https://bruinlearn.ucla.edu/api/lti/security/jwks
  - type: Examples
    url: examples/ucla-bruinlearn-lti-jwks.json
  x-operator: tenant
  x-operator-evidence: bruinlearn.ucla.edu CNAMEs to ucla-vanity.instructure.com; Canvas error envelope {"status":"unauthenticated"}
    on /api/v1/accounts; LTI JWKS at the standard Canvas path.
  x-access: gated
  x-added: '2026-08-19'
common:
- type: Website
  url: https://www.ucla.edu/
- type: DeveloperPortal
  url: https://developer.api.ucla.edu/
- type: APIReference
  url: https://developer.api.ucla.edu/api-catalog
- type: Documentation
  url: https://developer.api.ucla.edu/ucla-help
- type: Support
  url: https://developer.api.ucla.edu/ucla-help
- type: TermsOfService
  url: https://www.ucla.edu/terms-of-use
- type: PrivacyPolicy
  url: https://compliance.ucla.edu/privacy
- type: Accessibility
  url: https://www.ucla.edu/accessibility
- type: GitHubOrganization
  url: https://github.com/ucla
- type: GitHub
  url: https://github.com/UCLALibrary
- type: LinkedIn
  url: https://www.linkedin.com/school/ucla/
- type: Blog
  url: https://newsroom.ucla.edu/
- type: BlogRSS
  url: https://newsroom.ucla.edu/rss.xml
- type: IdentityFederation
  url: https://mdq.incommon.org/entities/urn%3Amace%3Aincommon%3Aucla.edu
- type: CourseCatalog
  url: https://catalog.registrar.ucla.edu/
- type: LibraryCatalog
  url: https://www.library.ucla.edu/
- type: ResearchRepository
  url: https://dataverse.ucla.edu/
- type: ResearchComputing
  url: https://oarc.ucla.edu/
- type: AIPolicy
  url: https://dts.ucla.edu/initiatives/ai/ai-use-policy-guide
- type: AITooling
  url: https://dts.ucla.edu/initiatives/ai/guiding-principles-responsible-use
- type: OpenAPI
  url: openapi/ucla-sis-dictionary-openapi.yml
- type: JSONSchema
  url: json-schema/ucla-sis-dictionary-schemas.json
- type: Examples
  url: examples/index.yml
- type: Rules
  url: rules/ucla-rules.yml
- type: Vocabulary
  url: vocabulary/ucla-vocabulary.yml
- type: JSONLD
  url: json-ld/ucla-context.jsonld
- type: Authentication
  url: authentication/ucla-authentication.yml
- type: Scopes
  url: scopes/ucla-scopes.yml
- type: Errors
  url: errors/ucla-errors.yml
- type: Conformance
  url: conformance/ucla-conformance.yml
- type: Lifecycle
  url: lifecycle/ucla-lifecycle.yml
- type: AgenticAccess
  url: agentic-access/ucla-agentic-access.yml
- type: DomainSecurity
  url: security/ucla-domain-security.yml
- type: Plans
  url: plans/ucla-plans-pricing.yml
- type: RateLimits
  url: rate-limits/ucla-rate-limits.yml
- type: FinOps
  url: finops/ucla-finops.yml
- type: Review
  url: review.yml
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com
x-coverage:
  state: gated
  reason: approval_required_no_self_service
  detail: UCLA is the strongest institution-operated API program measured in this cohort so far and it is still not consumable.
    Seven real OpenAPI contracts covering 91 operations are anonymously downloadable from the developer portal, and every
    route they describe is live on UCLA's own Apigee gateway - a documented SIS path returns 401 with oauth.v2.InvalidAccessToken
    and a conformant RFC 6750 Bearer challenge, which proves the contracts describe real endpoints. But a credential exists
    only after a developer signs in with a UCLA logon, creates an App, selects an API Product and a campus unit approves the
    request. There is no public registration, no sandbox, no trial key. The portal states plainly that most APIs are only
    visible after log on, so the eight catalogued products are a subset of an unknown whole. Two secondary limits are recorded
    rather than treated as findings about UCLA - dataverse.ucla.edu and digital.library.ucla.edu both answer 200 with an Anubis
    proof-of-work bot challenge on every path, so OAI-PMH, Dataverse version and DOI prefix could not be read and are not
    claimed; and UCLA Library's Cantaloupe IIIF server answers 403 with a stack trace for every identifier including a deliberate
    nonsense control, so no manifest could be retrieved. This is a correct gated profile, not a failed probe - roughly 60
    URLs were fetched successfully across 15 hosts, including 7 contracts, signed federation metadata and 3 live error surfaces.
  evidence:
  - url: https://developer.api.ucla.edu/api-catalog
    status: 200
    note: Eight API products listed; three of them (51, 346, 1446) were absent from the June profile.
  - url: https://developer.api.ucla.edu/sites/default/files/apidoc_specs/classes_v1_4.json
    status: 200
  - url: https://developer.api.ucla.edu/sites/default/files/apidoc_specs/courses_v1%20%281%29_0.json
    status: 200
  - url: https://developer.api.ucla.edu/sites/default/files/apidoc_specs/dictionary_v1%20%281%29.json
    status: 200
  - url: https://developer.api.ucla.edu/sites/default/files/apidoc_specs/productioncalendarjobs_v1_0.json
    status: 200
  - url: https://developer.api.ucla.edu/sites/default/files/apidoc_specs/_infrastructure_verifyconnectivity_v1.json
    status: 200
  - url: https://developer.api.ucla.edu/sites/default/files/apidoc_specs/_myucla_menudata_v1.json
    status: 200
  - url: https://developer.api.ucla.edu/sites/default/files/apidoc_specs/UCLAWeather_3.yaml
    status: 200
  - url: https://api.ucla.edu/sis/dictionary/buildings/v1
    status: 401
    note: oauth.v2.InvalidAccessToken with an RFC 6750 Bearer challenge; the gateway is live and enforcing.
  - url: https://api.ucla.edu/weather/api
    status: 401
  - url: https://api.ucla.edu/oauth/client_credential/accesstoken
    status: 200
  - url: https://api.ucla.edu/nonexistentpath
    status: 500
    note: Plain-text "Unauthorized by UCLA API Gateway. Invalid Config Data" on every unrouted path; should be 404.
  - url: https://qa.api.ucla.edu/
    status: 404
    note: QA returns a structured ApplicationNotFound fault where production returns a 500.
  - url: https://mdq.incommon.org/entities/urn%3Amace%3Aincommon%3Aucla.edu
    status: 200
    note: Signed SAML metadata for UCLA's own Shibboleth IdP; REFEDS R&S and SIRTFI.
  - url: https://met.refeds.org/met/entity/urn:mace:incommon:ucla.edu/
    status: 200
  - url: https://bruinlearn.ucla.edu/api/lti/security/jwks
    status: 200
    note: Tenant surface — Instructure Canvas on a UCLA vanity subdomain.
  - url: https://bruinlearn.ucla.edu/api/v1/accounts
    status: 401
  - url: https://dataverse.ucla.edu/api/info/version
    status: 200
    note: Anubis bot-challenge body, not a Dataverse response; unreadable, not credited.
  - url: https://dataverse.ucla.edu/oai?verb=Identify
    status: 200
    note: Anubis bot-challenge body; OAI-PMH conformance neither confirmed nor denied.
  - url: https://digital.library.ucla.edu/catalog/oai?verb=Identify
    status: 200
    note: Anubis bot-challenge body; not credited.
  - url: https://iiif.library.ucla.edu/
    status: 200
    note: Cantaloupe 5.0.5 landing page; IIIF Image API 2.x and 3.0 endpoints advertised.
  - url: https://iiif.library.ucla.edu/iiif/2/bogus-identifier/info.json
    status: 403
    note: Negative control. Identical stack-trace body to a plausible real identifier, so a 403 here is never evidence an
      object exists. Also leaks the private S3 bucket name.
  - url: https://api.ucla.edu/
    status: 500
  - url: https://data.ucla.edu/
    status: 0
    note: Does not resolve; UCLA operates no open-data portal at the conventional hostname.
  - url: https://developer-pilot.api.ucla.edu/
    status: 0
    note: Pilot portal recorded in the June 2026 profile still does not resolve from outside campus.
  - url: https://weather.atmos.ucla.edu/
    status: 0
    note: Referenced by info.description in UCLA's own Weather contract. Resolves in DNS but accepts no connection; dead pointer,
      removed rather than carried.
  - url: https://www.ucla.edu/llms.txt
    status: 404
  - url: https://developer.api.ucla.edu/.well-known/security.txt
    status: 404
  - url: https://escholarship.org/oai?verb=ListSets
    status: 200
    note: UC systemwide repository operated by the California Digital Library. ListSets returns a single set, "everything",
      with no UCLA-specific set, so nothing here is attributable to UCLA and no entry is recorded for it.
  - url: https://it.ucla.edu/privacy
    status: 200
    note: Soft-404 — redirects to the dts.ucla.edu homepage; not claimed as a pointer.
  assessed: '2026-08-19'
  method: university pipeline live probe sweep
  added: 6
  added_detail: 'Six surfaces were added that the June 2026 profile missed: the Verify Connectivity to SIS and UCLA Weather
    API products, the Shibboleth identity provider, UCLA Dataverse, UCLA Library Digital Collections and the BruinLearn tenancy.
    Seven OpenAPI contracts were retrieved for the first time; the June profile recorded documentation pointers only and held
    no contract at all. All seven were found by reading the swaggerUIFormatter block out of the portal''s drupal-settings-json,
    because UCLA publishes no machine-readable index of its own catalog.'
  removed: 0
  removed_detail: Nothing was removed. The correct-university-attribution pass found no vendor-attributed contract in this
    repository to strip - UCLA had none, because the June profile had saved no contracts at all. The one reclassification
    is BruinLearn, newly recorded as x-operator tenant rather than credited to UCLA.