GET/v1/catalog/services
Listar los servicios del catálogo
list_catalog_services
Devuelve elementos del catálogo global de servicios externos (SaaS y proveedores): búsqueda de una subcadena sin distinguir mayúsculas y minúsculas en el nombre, el grupo o el dominio del sitio web, un filtro por categoría y paginación. El recuento total para el filtro está en el encabezado X-Total-Count. El catálogo es común a todas las organizaciones y está disponible para cualquier usuario con sesión iniciada. Sus datos se distribuyen con Sursa y se actualizan con cada versión (la versión está en GET /v1/catalog/categories y en el campo version del icon_url de cada elemento).
Autenticación
Envíe una clave de API en el encabezado Authorization: Authorization: Bearer <clave>.
Parámetros de consulta
qstring | nullSubcadena del nombre, el grupo o el dominio del sitio web (sin distinguir mayúsculas y minúsculas).
length ≤ 200
categorystring | nullSlug de la categoría (
GET /v1/catalog/categories).offsetintegerPredeterminado: 0≥ 0
limitintegerPredeterminado: 50≥ 1, ≤ 500
cursorstringCursor de la página siguiente, tomado de
X-Next-Cursoro denext_cursorde la respuesta anterior con los mismos filtros; incluye el tamaño de página. Junto conoffset:422 validation.failed; un cursor de otra lista, de otros filtros o mal formado:400 api.cursor_invalid.length ≤ 512
Parámetros de encabezado
X-View-AsstringSolo para claves de API con el rol
admin. Ejecuta la solicitud como el perfil de datos<profile>[:viewer|verifier|editor], por ejemploemployee:viewer. La clave de instalación no puede usar este encabezado (403).
Parámetros de cookie
kb_view_asstringCookie del modo «View as» para una sesión.
POST /auth/view-asla establece yDELETE /auth/view-asla elimina.
Respuestas
200Respuesta correcta
Encabezados de la respuesta
LinkDirección de la página siguiente,
<…>; rel="next". Si no hay encabezado, es la última página.X-Next-CursorCursor de la página siguiente para el parámetro
cursor. Si no hay encabezado, es la última página.X-Total-CountNúmero total de elementos que coinciden con el filtro, independientemente de
limityoffset.RateLimit-PolicyLímites vigentes, en el formato del borrador del IETF
draft-ietf-httpapi-ratelimit-headers: elementos separados por comas"<name>";q=<quota>;w=<window in seconds>.keyes la frecuencia de solicitudes de la clave de API (la cuota es la ráfaga y la ventana es el tiempo que tarda en recargarse por completo; para una sesión esusery sin credenciales,ip);minute,dayymonthson las cuotas de la organización para el minuto, el día y el mes naturales en UTC.RateLimitLo que queda de cada límite de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímite de la entrada más estricta de
RateLimit-Policy(la que tiene menos solicitudes restantes).X-RateLimit-RemainingSolicitudes restantes del límite más estricto.
X-RateLimit-ResetSegundos hasta que se restablece el límite más estricto.
application/json
categorystringobligatorioSlug de la categoría (
GET /v1/catalog/categories).description_enstring | nullobligatorioDescripción breve en inglés.
nullsi no hay descripción.domainstring | nullobligatorioDominio del sitio web sin
www..nullsi no hay sitio web.group_namestring | nullobligatorioGrupo (proveedor) si el servicio pertenece a una familia de productos, por ejemplo, Atlassian; en caso contrario,
null.iconbooleanobligatorioIndica si Sursa incluye un icono.
icon_urlstring | nullobligatorioURL del icono (
/v1/catalog/services/{service_id}/icon?v=…o una dirección externa configurada por la instalación).nullsi no hay icono.idstring (uuid)obligatorionamestringobligatorioslugstringobligatoriowebsitestring | nullobligatorioURL del sitio web (
https://…) onull.
401No se enviaron credenciales (ni una cookie de sesión ni una clave de API) o no se encontró la clave.
Encabezados de la respuesta
RateLimit-PolicyLímites vigentes, en el formato del borrador del IETF
draft-ietf-httpapi-ratelimit-headers: elementos separados por comas"<name>";q=<quota>;w=<window in seconds>.keyes la frecuencia de solicitudes de la clave de API (la cuota es la ráfaga y la ventana es el tiempo que tarda en recargarse por completo; para una sesión esusery sin credenciales,ip);minute,dayymonthson las cuotas de la organización para el minuto, el día y el mes naturales en UTC.RateLimitLo que queda de cada límite de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímite de la entrada más estricta de
RateLimit-Policy(la que tiene menos solicitudes restantes).X-RateLimit-RemainingSolicitudes restantes del límite más estricto.
X-RateLimit-ResetSegundos hasta que se restablece el límite más estricto.
application/json
403La acción no está permitida: el rol no es suficiente, no hay acceso a la colección o a la tarjeta, la solicitud se ejecuta en modo «View as», o la organización está suspendida o eliminada (`detail` es un objeto con `code: org_suspended | org_deleted`).
Encabezados de la respuesta
RateLimit-PolicyLímites vigentes, en el formato del borrador del IETF
draft-ietf-httpapi-ratelimit-headers: elementos separados por comas"<name>";q=<quota>;w=<window in seconds>.keyes la frecuencia de solicitudes de la clave de API (la cuota es la ráfaga y la ventana es el tiempo que tarda en recargarse por completo; para una sesión esusery sin credenciales,ip);minute,dayymonthson las cuotas de la organización para el minuto, el día y el mes naturales en UTC.RateLimitLo que queda de cada límite de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímite de la entrada más estricta de
RateLimit-Policy(la que tiene menos solicitudes restantes).X-RateLimit-RemainingSolicitudes restantes del límite más estricto.
X-RateLimit-ResetSegundos hasta que se restablece el límite más estricto.
application/json
422Error de validación: el cuerpo o los parámetros no coinciden con el esquema (`detail` es una lista de errores de validación), o el valor de un parámetro está fuera del rango permitido (`detail` es un mensaje).
Encabezados de la respuesta
RateLimit-PolicyLímites vigentes, en el formato del borrador del IETF
draft-ietf-httpapi-ratelimit-headers: elementos separados por comas"<name>";q=<quota>;w=<window in seconds>.keyes la frecuencia de solicitudes de la clave de API (la cuota es la ráfaga y la ventana es el tiempo que tarda en recargarse por completo; para una sesión esusery sin credenciales,ip);minute,dayymonthson las cuotas de la organización para el minuto, el día y el mes naturales en UTC.RateLimitLo que queda de cada límite de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímite de la entrada más estricta de
RateLimit-Policy(la que tiene menos solicitudes restantes).X-RateLimit-RemainingSolicitudes restantes del límite más estricto.
X-RateLimit-ResetSegundos hasta que se restablece el límite más estricto.
application/json
429Demasiadas solicitudes (`api.rate_limited`), se agotó la cuota de la organización para el minuto, el día o el mes (`api.quota_exceeded`; `error.details` contiene `quota`, `limit` y `reset_at`), se alcanzó el límite de la organización o el servicio de respuestas está ocupado (`answers.engine_busy`). Espere el tiempo indicado en el encabezado `Retry-After`.
Encabezados de la respuesta
Retry-AfterNúmero de segundos que hay que esperar antes de reintentar la solicitud.
RateLimit-PolicyLímites vigentes, en el formato del borrador del IETF
draft-ietf-httpapi-ratelimit-headers: elementos separados por comas"<name>";q=<quota>;w=<window in seconds>.keyes la frecuencia de solicitudes de la clave de API (la cuota es la ráfaga y la ventana es el tiempo que tarda en recargarse por completo; para una sesión esusery sin credenciales,ip);minute,dayymonthson las cuotas de la organización para el minuto, el día y el mes naturales en UTC.RateLimitLo que queda de cada límite de
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitLímite de la entrada más estricta de
RateLimit-Policy(la que tiene menos solicitudes restantes).X-RateLimit-RemainingSolicitudes restantes del límite más estricto.
X-RateLimit-ResetSegundos hasta que se restablece el límite más estricto.
application/json
Códigos de error
Códigos que este endpoint puede devolver en error.code, además de los códigos generales de cualquier solicitud.
Límites de frecuencia
Las respuestas incluyen los encabezados RateLimit y RateLimit-Policy y los anteriores X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset. Una respuesta 429 lleva Retry-After en segundos: espere y vuelva a intentarlo.