Runlog docs

Start building

A plan buys a weekly allowance, sized for steady work.

Start

Links and conversations

For content you can point at rather than upload: a URL the relay pulls and ingests, and — specified — a conversation pushed live from inside ChatGPT or Claude, so the assistant a buyer already uses becomes a feeder of the memory rather than a rival to it.

POST/v1/api/actionsAPI key

Ingest a document by reference

Point the relay at a URL or file reference; it pulls the document into the project's corpus.

Dispatch only starts the ingestion: the source ingests on a detached task the response names, so poll that task — or watch the file stream — rather than treating the dispatch as a completed ingest.

Dispatched as `{"action": "document_ingest", "input": {"source": "..."}}`.

Body

FieldTypeRequiredDescription
actionstringrequiredMust be `"document_ingest"`.
input.sourcestringrequiredDocument url or file reference to ingest.
Request · curl
curl -X POST "https://runlog-7613480744.us-central1.run.app/v1/api/actions" \
  -H "Authorization: Bearer $RUNLOG_API_KEY" \
  -H "X-Project-Id: p7Kd2mQx" \
  -H "Content-Type: application/json" \
  -d '{
  "action": "document_ingest",
  "input": {
    "source": "https://example.com/spec/envelope.pdf"
  }
}'
Response · 200
{
  "action": "document_ingest",
  "result": {
    "status": "running",
    "taskId": "tk_2Xm9Qd"
  }
}

Errors

StatuserrorWhen
400source is requiredThe input named nothing to ingest.
403action not available to an API keyThe key's tier does not reach this action.
400invalid request bodyThe body is not JSON, or exceeds the 1 MB request-body cap.
401invalid API keyThe `Authorization` header is missing, malformed, or names a revoked key.
400name the target project via the X-Project-Id header or projectId queryNo project was named and the key is not bound to one.
429rate limit exceededYou passed 60 requests/minute on this key. `Retry-After` carries the seconds to wait.
500internal errorThe relay failed to serve the request. Retry with backoff; the cause is logged server-side against your request.