# API Endpoints ## Content # API Endpoints Base URL depends on your deployment. :::tabs @tab SaaS `https://app.trifle.io/api/v1` @tab Self-hosted `https:///api/v1` ::: ## Authentication All API requests (except health) use bearer tokens. ### Request :::tabs @tab CURL ```sh curl -H "Authorization: Bearer " \ https://app.trifle.io/api/v1/source ``` @tab HTTPie ```sh http GET https://app.trifle.io/api/v1/source \ Authorization:"Bearer " ``` @tab Ruby ```ruby require "net/http" base = ENV.fetch("TRIFLE_APP_URL", "https://app.trifle.io") token = ENV.fetch("TRIFLE_TOKEN") uri = URI("#{base}/api/v1/source") req = Net::HTTP::Get.new(uri) req["Authorization"] = "Bearer #{token}" res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(req) end puts res.code puts res.body ``` @tab Elixir ```elixir base = System.get_env("TRIFLE_APP_URL") || "https://app.trifle.io" token = System.fetch_env!("TRIFLE_TOKEN") url = "#{base}/api/v1/source" headers = [ {'authorization', to_charlist("Bearer " <> token)} ] :inets.start() :ssl.start() {:ok, {{_, status, _}, _resp_headers, body}} = :httpc.request(:get, {String.to_charlist(url), headers}, [], []) IO.puts(status) IO.puts(body) ``` @tab Node.js ```js const base = process.env.TRIFLE_APP_URL ?? "https://app.trifle.io"; const token = process.env.TRIFLE_TOKEN; const res = await fetch(`${base}/api/v1/source`, { headers: { Authorization: `Bearer ${token}` }, }); console.log(await res.json()); ``` @tab Python ```python import os import requests base = os.getenv("TRIFLE_APP_URL", "https://app.trifle.io") token = os.environ["TRIFLE_TOKEN"] resp = requests.get( f"{base}/api/v1/source", headers={"Authorization": f"Bearer {token}"}, ) print(resp.status_code) print(resp.json()) ``` @tab PHP ```php