O que é

Biblioteca de Mídia é o repositório central de imagens e vídeos do miCore. Em vez de cada recurso ter seu próprio upload, tudo vive aqui — e blog, publicações, produtos, cursos e outros apontam para o mesmo item.

Na prática: você envia um arquivo uma vez, recebe um id e a URL, e reutiliza esse id onde precisar (por exemplo, como imagem destacada de um post).

O que dá para fazer hoje

  • Enviar uma imagem ou vídeo (até 50 MB no upload direto).
  • Listar e consultar os itens já enviados.
  • Excluir em definitivo um item da biblioteca.

Importante

  • O envio é multipart/form-data com o campo file.
  • As variações de tamanho (thumbnails) são geradas no envio e voltam em derivatives.
  • O id retornado é o que entra em campos como featured_image_id do blog.

Disponibilidade na API

Endpoints da Biblioteca de Mídia

Envie, consulte e exclua arquivos da biblioteca compartilhada do tenant. Os exemplos abaixo são gerados pelo contrato OpenAPI oficial.

GET /api/v1/media

Lista itens da biblioteca de mídia

Exige o escopo `media:read`.

Parâmetros

NomeTipoObrigatórioDescrição
typequerystringNão—
scopequerystringNãoCompartilhada (vazio) ou de um módulo específico.
statusquerybooleanNão—
searchquerystringNãoBusca por título ou nome do arquivo.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/media" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 123,
            "type": "file",
            "title": "banner-outubro",
            "mime_type": "image/jpeg",
            "extension": "jpg",
            "size_bytes": 284910,
            "width": 1600,
            "height": 900,
            "duration_seconds": null,
            "is_image": true,
            "is_video": false,
            "scope": null,
            "status": true,
            "url": "https://cdn.exemplo.com/empresa/biblioteca-midias/banner-outubro_20261017_ab12cd.jpg",
            "derivatives": [
                {
                    "variant": "320w",
                    "width": 320,
                    "height": 180,
                    "url": "https://cdn.exemplo.com/.../123/320w.jpg"
                },
                {
                    "variant": "640w",
                    "width": 640,
                    "height": 360,
                    "url": "https://cdn.exemplo.com/.../123/640w.jpg"
                }
            ],
            "created_at": "2026-10-17T09:00:00-03:00",
            "updated_at": "2026-10-17T09:00:00-03:00"
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de itens de mídia401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/media

Envia um arquivo para a biblioteca de mídia

Exige `media:write` e a permissão de criar em Biblioteca de Mídia. Aceita imagens e vídeos, até 50 MB no upload direto. As variações de tamanho são geradas no envio.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/media" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 123,
        "type": "file",
        "title": "banner-outubro",
        "mime_type": "image/jpeg",
        "extension": "jpg",
        "size_bytes": 284910,
        "width": 1600,
        "height": 900,
        "duration_seconds": null,
        "is_image": true,
        "is_video": false,
        "scope": null,
        "status": true,
        "url": "https://cdn.exemplo.com/empresa/biblioteca-midias/banner-outubro_20261017_ab12cd.jpg",
        "derivatives": [
            {
                "variant": "320w",
                "width": 320,
                "height": 180,
                "url": "https://cdn.exemplo.com/.../123/320w.jpg"
            },
            {
                "variant": "640w",
                "width": 640,
                "height": 360,
                "url": "https://cdn.exemplo.com/.../123/640w.jpg"
            }
        ],
        "created_at": "2026-10-17T09:00:00-03:00",
        "updated_at": "2026-10-17T09:00:00-03:00"
    }
}

Respostas possíveis

201 Item de mídia criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida502 Falha ao armazenar o arquivo no serviço de armazenamento503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/media/{item}

Exibe um item de mídia

Exige o escopo `media:read`.

Parâmetros

NomeTipoObrigatórioDescrição
itempathintegerSim—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/media/{item}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 123,
        "type": "file",
        "title": "banner-outubro",
        "mime_type": "image/jpeg",
        "extension": "jpg",
        "size_bytes": 284910,
        "width": 1600,
        "height": 900,
        "duration_seconds": null,
        "is_image": true,
        "is_video": false,
        "scope": null,
        "status": true,
        "url": "https://cdn.exemplo.com/empresa/biblioteca-midias/banner-outubro_20261017_ab12cd.jpg",
        "derivatives": [
            {
                "variant": "320w",
                "width": 320,
                "height": 180,
                "url": "https://cdn.exemplo.com/.../123/320w.jpg"
            },
            {
                "variant": "640w",
                "width": 640,
                "height": 360,
                "url": "https://cdn.exemplo.com/.../123/640w.jpg"
            }
        ],
        "created_at": "2026-10-17T09:00:00-03:00",
        "updated_at": "2026-10-17T09:00:00-03:00"
    }
}

Respostas possíveis

200 Item encontrado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
DELETE /api/v1/media/{item}

Exclui um item de mídia

Exige `media:write` e a permissão de excluir em Biblioteca de Mídia. Remove o arquivo, as variações e os vínculos. A exclusão é permanente.

Parâmetros

NomeTipoObrigatórioDescrição
itempathintegerSim—

Exemplo de requisição

cURL
curl -X DELETE "$MICORE_BASE_URL/media/{item}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Respostas possíveis

204 Item excluído401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant