{
  "name": "GetFileURL - n8n binary file to public URL",
  "nodes": [
    {
      "parameters": {},
      "id": "7f0d5db7-4051-4f4a-8f3b-ec366fd15574",
      "name": "Replace with binary source",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -440,
        0
      ],
      "notes": "Replace this trigger with the node that produces binary.data, such as an email attachment, form upload, Drive download, PDF generator, or screenshot node."
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.getfileurl.com/v1/files",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer {{$env.GETFILEURL_KEY}}"
            }
          ]
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "parameterType": "formBinaryData",
              "name": "file",
              "inputDataFieldName": "data"
            },
            {
              "name": "visibility",
              "value": "public"
            }
          ]
        },
        "options": {
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        }
      },
      "id": "8730c25a-ec4d-4f40-88d3-45164fb12215",
      "name": "Upload binary to GetFileURL",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [
        -120,
        0
      ],
      "notes": "This node expects an incoming binary property named data and sends it as multipart field file. Store GETFILEURL_KEY in n8n environment variables or credentials; do not paste production keys into the workflow JSON."
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "097d2728-4038-4f36-9160-6d07a344d1b8",
              "name": "file_url",
              "value": "={{$json.url}}",
              "type": "string"
            },
            {
              "id": "fb4d704c-4197-4117-a497-07d3bb7c8938",
              "name": "file_id",
              "value": "={{$json.file_id}}",
              "type": "string"
            },
            {
              "id": "a376591a-098d-451f-9d52-25d46cd21bbf",
              "name": "expires_at",
              "value": "={{$json.expires_at}}",
              "type": "string"
            },
            {
              "id": "4ab70f06-629b-4410-9d62-2988f8fd9e2e",
              "name": "content_type",
              "value": "={{$json.content_type}}",
              "type": "string"
            }
          ]
        },
        "includeOtherFields": true,
        "options": {}
      },
      "id": "e082e61f-d297-42fa-8068-b4c307b34b62",
      "name": "Map URL for next node",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        220,
        0
      ],
      "notes": "Use file_url as the value for the next OCR, AI, webhook, document API, or publishing node. Keep file_id beside the job if you plan to delete the URL after processing."
    },
    {
      "parameters": {
        "content": "## GetFileURL handoff blueprint\n\n1. Replace the first node with the n8n step that produces `binary.data`.\n2. Store `GETFILEURL_KEY` in the n8n environment or credential store.\n3. Upload `binary.data` as multipart field `file` with `visibility=public`.\n4. Map `file_url` into the next API field that asks for a public file URL.\n5. Keep `file_id` and `expires_at` for cleanup or delete-after-processing branches.",
        "height": 280,
        "width": 360
      },
      "id": "4c7b20c6-89b9-44b0-9757-e58d42f5503d",
      "name": "How to adapt this blueprint",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -440,
        -340
      ]
    }
  ],
  "connections": {
    "Replace with binary source": {
      "main": [
        [
          {
            "node": "Upload binary to GetFileURL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload binary to GetFileURL": {
      "main": [
        [
          {
            "node": "Map URL for next node",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    {
      "name": "GetFileURL"
    },
    {
      "name": "file-to-url"
    }
  ],
  "triggerCount": 0,
  "updatedAt": "2026-06-01T00:00:00.000Z",
  "versionId": "5d796e94-bc0b-482d-95e0-2691f963438c"
}
