Gravitee Portal Media API

The Portal Media API from Gravitee — 3 operation(s) for portal media.

Business capability
Developer Portal Management BC-4270.30

Operations 4

POST /organizations/{orgId}/environments/{envId}/portal/media/upload Create a media for the portal #
GET /organizations/{orgId}/environments/{envId}/portal/media/{hash} Retrieve a media #
GET /organizations/{orgId}/environments/{envId}/portal/pages/{page}/media Retrieve all media for a Portal page #
POST /organizations/{orgId}/environments/{envId}/portal/pages/{page}/media Attach a media to a portal page #

Documentation

Specifications

SDKs

Schemas & Data

Other Resources

🔗
ChangeLog
https://documentation.gravitee.io/apim/release-information/changelog
🔗
License
https://github.com/gravitee-io/gravitee-api-management/blob/master/LICENSE.txt
🔗
SDKs
https://github.com/gravitee-io/gravitee-clients-sdk
🔗
SDKs
https://github.com/gravitee-io/terraform-provider-apim
🔗
CLI
https://github.com/gravitee-io/graviteeio-cli
🔗
KubernetesOperator
https://github.com/gravitee-io/gravitee-kubernetes-operator
🔗
HelmChart
https://github.com/gravitee-io/helm-charts
🔗
DockerImage
https://hub.docker.com/r/graviteeio/apim-gateway
🔗
JSONLDContext
https://artifacts.apis.io/gravitee/json-ld/gravitee-context.jsonld
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_apidefinitions.yaml
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_apiv4definitions.yaml
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_apiresources.yaml
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_applications.yaml
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_subscriptions.yaml
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_managementcontexts.yaml
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_sharedpolicygroups.yaml
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_groups.yaml
🔗
KubernetesCRD
https://artifacts.apis.io/gravitee/crd/gravitee.io_notifications.yaml
🔗
Plans
https://artifacts.apis.io/gravitee/plans/gravitee-plans-pricing.yml
🔗
FinOps
https://artifacts.apis.io/gravitee/finops/gravitee-finops.yml
🔗
Reference
https://documentation.gravitee.io/am/reference/am-api-reference
🔗
ChangeLog
https://documentation.gravitee.io/am/releases-and-changelog/release-notes
🔗
License
https://github.com/gravitee-io/gravitee-access-management/blob/master/LICENSE
🔗
SDKs
https://github.com/gravitee-io/gravitee-access-management/tree/master/gravitee-am-management-api-sdk-java
🔗
HelmChart
https://github.com/gravitee-io/helm-charts/tree/master/helm/gravitee-am
🔗
DockerImage
https://hub.docker.com/r/graviteeio/am-gateway

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gravitee:gravitee-portal-media-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gravitee-portal-media-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Gravitee.io - Management Portal Media API
  description: Some news resources are in alpha version. This implies that they are likely to be modified or even removed in future versions. They are marked with the 🧪 symbol
  version: 3.20.0
servers:
- url: http://localhost:8083/management
security:
- gravitee-auth: []
tags:
- name: Portal Media
paths:
  /organizations/{orgId}/environments/{envId}/portal/media/upload:
    post:
      tags:
      - Portal Media
      summary: Create a media for the portal
      description: User must have the PORTAL_DOCUMENTATION[CREATE] permission to use this service
      operationId: uploadPortalMedia
      parameters:
      - name: envId
        in: path
        description: The ID of the environment
        required: true
        schema:
          type: string
          default: DEFAULT
      - name: orgId
        in: path
        description: The ID of the Organization
        required: true
        schema:
          type: string
          default: DEFAULT
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/FormDataBodyPart'
      responses:
        '200':
          description: Media successfully created
          content:
            text/plain:
              schema:
                type: string
        '500':
          description: Internal server error
  /organizations/{orgId}/environments/{envId}/portal/media/{hash}:
    get:
      tags:
      - Portal Media
      summary: Retrieve a media
      operationId: getPortalMedia
      parameters:
      - name: hash
        in: path
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: The ID of the environment
        required: true
        schema:
          type: string
          default: DEFAULT
      - name: orgId
        in: path
        description: The ID of the Organization
        required: true
        schema:
          type: string
          default: DEFAULT
      responses:
        '200':
          description: A media
          content:
            '*/*':
              schema:
                type: string
                format: binary
        '404':
          description: Not found
        '500':
          description: Internal server error
  /organizations/{orgId}/environments/{envId}/portal/pages/{page}/media:
    get:
      tags:
      - Portal Media
      summary: Retrieve all media for a Portal page
      description: User must have the ENVIRONMENT_DOCUMENTATION[READ] permission to use this service
      operationId: getPortalPageMedia
      parameters:
      - name: page
        in: path
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: The ID of the environment
        required: true
        schema:
          type: string
          default: DEFAULT
      - name: orgId
        in: path
        description: The ID of the Organization
        required: true
        schema:
          type: string
          default: DEFAULT
      responses:
        default:
          description: default response
          content:
            application/json: {}
    post:
      tags:
      - Portal Media
      summary: Attach a media to a portal page
      description: User must have the ENVIRONMENT_DOCUMENTATION[UPDATE] permission to use this service
      operationId: attachPortalPageMedia
      parameters:
      - name: page
        in: path
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: The ID of the environment
        required: true
        schema:
          type: string
          default: DEFAULT
      - name: orgId
        in: path
        description: The ID of the Organization
        required: true
        schema:
          type: string
          default: DEFAULT
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  $ref: '#/components/schemas/FormDataBodyPart'
                fileName:
                  type: string
      responses:
        '201':
          description: Media successfully added
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageEntity'
        '500':
          description: Internal server error
components:
  schemas:
    PageMediaEntity:
      type: object
      properties:
        attachedAt:
          type: string
          format: date-time
        mediaHash:
          type: string
        mediaName:
          type: string
    MultiPart:
      type: object
      properties:
        bodyParts:
          type: array
          items:
            $ref: '#/components/schemas/BodyPart'
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            parameters:
              type: object
              additionalProperties:
                type: string
            subtype:
              type: string
            type:
              type: string
            wildcardSubtype:
              type: boolean
            wildcardType:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
    BodyPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            parameters:
              type: object
              additionalProperties:
                type: string
            subtype:
              type: string
            type:
              type: string
            wildcardSubtype:
              type: boolean
            wildcardType:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
    PageSourceEntity:
      type: object
      properties:
        configuration:
          type: string
        type:
          type: string
    ParameterizedHeader:
      type: object
      properties:
        parameters:
          type: object
          additionalProperties:
            type: string
        value:
          type: string
    FormDataContentDisposition:
      type: object
      properties:
        creationDate:
          type: string
          format: date-time
        fileName:
          type: string
        modificationDate:
          type: string
          format: date-time
        name:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
        readDate:
          type: string
          format: date-time
        size:
          type: integer
          format: int64
        type:
          type: string
    MessageBodyWorkers:
      type: object
    ContentDisposition:
      type: object
      properties:
        creationDate:
          type: string
          format: date-time
        fileName:
          type: string
        modificationDate:
          type: string
          format: date-time
        parameters:
          type: object
          additionalProperties:
            type: string
        readDate:
          type: string
          format: date-time
        size:
          type: integer
          format: int64
        type:
          type: string
    PageRevisionId:
      type: object
      properties:
        pageId:
          type: string
        revision:
          type: integer
          format: int32
    FormDataBodyPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        formDataContentDisposition:
          $ref: '#/components/schemas/FormDataContentDisposition'
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            parameters:
              type: object
              additionalProperties:
                type: string
            subtype:
              type: string
            type:
              type: string
            wildcardSubtype:
              type: boolean
            wildcardType:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        name:
          type: string
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        simple:
          type: boolean
        value:
          type: string
    PageEntity:
      type: object
      properties:
        accessControls:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/AccessControlEntity'
        attached_media:
          type: array
          items:
            $ref: '#/components/schemas/PageMediaEntity'
        configuration:
          type: object
          additionalProperties:
            type: string
        content:
          type: string
        contentRevisionId:
          $ref: '#/components/schemas/PageRevisionId'
        contentType:
          type: string
        crossId:
          type: string
        excludedAccessControls:
          type: boolean
        excluded_groups:
          type: array
          items:
            type: string
        generalConditions:
          type: boolean
          readOnly: true
        homepage:
          type: boolean
        id:
          type: string
        lastContributor:
          type: string
        lastModificationDate:
          type: string
          format: date-time
        messages:
          type: array
          items:
            type: string
        metadata:
          type: object
          additionalProperties:
            type: string
        name:
          type: string
        order:
          type: integer
          format: int32
        parentId:
          type: string
        parentPath:
          type: string
        published:
          type: boolean
        source:
          $ref: '#/components/schemas/PageSourceEntity'
        translations:
          type: array
          items:
            $ref: '#/components/schemas/PageEntity'
        type:
          type: string
        visibility:
          $ref: '#/components/schemas/Visibility'
    Visibility:
      type: string
      description: The visibility of the API regarding the portal.
      example: PUBLIC
      enum:
      - PUBLIC
      - PRIVATE
    AccessControlEntity:
      type: object
      properties:
        referenceId:
          type: string
        referenceType:
          type: string
  securitySchemes:
    gravitee-auth:
      type: http
      scheme: basic