---
title: "Ingest profiles data via OTLP"
method: POST
path: "/api/{org_id}/v1/profiles"
tags: ["Profiles"]
---

# Ingest profiles data via OTLP

`POST /api/{org_id}/v1/profiles`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/v1/profiles`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/v1/profiles/post.ts> (a function with typed inputs; its response is checked against the schema)

Ingests OpenTelemetry profiles data using OTLP protobuf or JSON payloads.

## Path parameters

- `org_id` string, required

## Request body

- object

## Response `200`

ExportProfilesServiceResponse, encoded like the request

- OtlpProfilesExportJson
  - `partialSuccess` object
    - `errorMessage` string
    - `rejectedProfiles` string

## Other responses

- `400`: Invalid payload, or a Content-Type other than JSON or protobuf (answered in JSON); google.rpc.Status encoded like the request
- `429`: Trial period expired; google.rpc.Status encoded like the request
- `500`: Failure; google.rpc.Status encoded like the request
- `503`: Ingestion temporarily unavailable; google.rpc.Status encoded like the request

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
