Swapcard Exhibitor Leads API

Exhibitor-facing GraphQL API to list accessible booths (myExhibitors), export event leads with cursor pagination (myLeads), and scan badges to create leads (scanBadges). Separate GraphQL endpoint and token from the Content API, created in the Exhibitor Center under Leads then API keys.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/swapcard-leads-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

Postman Collection

swapcard.postman_collection.json Raw ↑
{
  "info": {
    "name": "Swapcard GraphQL APIs",
    "description": "Swapcard is GraphQL-first. Two separate GraphQL endpoints, each with its own access token passed in the Authorization header (no Bearer prefix in Swapcard's documented examples): the Content / Event Admin API at https://developer.swapcard.com/event-admin/graphql and the Exhibitor Leads API at https://developer.swapcard.com/exhibitor/graphql. All operations are GraphQL queries and mutations over HTTP POST. Some request bodies are representative/modeled; the Event query, myExhibitors, myLeads, and scanBadges shapes are grounded in Swapcard docs.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "contentEndpoint", "value": "https://developer.swapcard.com/event-admin/graphql", "type": "string" },
    { "key": "leadsEndpoint", "value": "https://developer.swapcard.com/exhibitor/graphql", "type": "string" },
    { "key": "accessToken", "value": "", "type": "string" }
  ],
  "item": [
    {
      "name": "Content API (Event Admin)",
      "item": [
        {
          "name": "Get event by ID",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "{{accessToken}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query EventById($eventId: ID!) {\n  event(id: $eventId) {\n    id\n    slug\n    title\n    beginsAt\n    endsAt\n    htmlDescription\n    isLive\n    language\n    timezone\n    totalPlannings\n    totalExhibitors\n    totalSpeakers\n    banner { imageUrl embeddedVideo { videoId } }\n    address { place street city zipCode state country }\n    groups { id name peopleCount }\n  }\n}",
                "variables": "{\n  \"eventId\": \"\"\n}"
              }
            },
            "url": { "raw": "{{contentEndpoint}}", "host": ["{{contentEndpoint}}"] },
            "description": "Fetch a single event by ID. Grounded in Swapcard's documented EventById example."
          }
        },
        {
          "name": "Get multiple events",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "{{accessToken}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query events($eventIds: [String!]) {\n  events(ids: $eventIds) {\n    id\n    title\n    beginsAt\n    endsAt\n    isLive\n  }\n}",
                "variables": "{\n  \"eventIds\": []\n}"
              }
            },
            "url": { "raw": "{{contentEndpoint}}", "host": ["{{contentEndpoint}}"] },
            "description": "Fetch multiple events by ID. Grounded in Swapcard's documented events example."
          }
        },
        {
          "name": "List people for an event (modeled)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "{{accessToken}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query People($eventId: ID!, $first: Int) {\n  people(eventId: $eventId, first: $first) {\n    id\n    firstName\n    lastName\n    email\n    jobTitle\n    organization\n    type\n  }\n}",
                "variables": "{\n  \"eventId\": \"\",\n  \"first\": 25\n}"
              }
            },
            "url": { "raw": "{{contentEndpoint}}", "host": ["{{contentEndpoint}}"] },
            "description": "Representative query for event people. Field/argument shape is modeled - verify against the Explorer/Reference."
          }
        },
        {
          "name": "Create event (modeled)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "{{accessToken}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "mutation CreateEvent($input: EventInput!) {\n  createEvent(input: $input) {\n    id\n    title\n    slug\n  }\n}",
                "variables": "{\n  \"input\": {\n    \"title\": \"My Event\",\n    \"format\": \"HYBRID\"\n  }\n}"
              }
            },
            "url": { "raw": "{{contentEndpoint}}", "host": ["{{contentEndpoint}}"] },
            "description": "Representative create-event mutation. Mutation name/input are modeled - verify against the Reference."
          }
        }
      ]
    },
    {
      "name": "Exhibitor Leads API",
      "item": [
        {
          "name": "My exhibitors (booths)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "{{accessToken}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query MyExhibitors {\n  myExhibitors {\n    id\n    name\n    events { id title }\n  }\n}",
                "variables": "{}"
              }
            },
            "url": { "raw": "{{leadsEndpoint}}", "host": ["{{leadsEndpoint}}"] },
            "description": "List booths the exhibitor token can access. Grounded in Swapcard Leads docs."
          }
        },
        {
          "name": "My leads (export)",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "{{accessToken}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query MyLeads($eventId: ID!, $exhibitorId: ID!, $first: Int, $after: String) {\n  myLeads(eventId: $eventId, exhibitorId: $exhibitorId, first: $first, after: $after) {\n    pageInfo { hasNextPage endCursor }\n    nodes {\n      id\n      connectedAt\n      isScanned\n      rating\n      note\n      target {\n        ... on Contact { id firstName lastName email organization }\n        ... on EventPerson { id firstName lastName email organization }\n      }\n    }\n  }\n}",
                "variables": "{\n  \"eventId\": \"\",\n  \"exhibitorId\": \"\",\n  \"first\": 50\n}"
              }
            },
            "url": { "raw": "{{leadsEndpoint}}", "host": ["{{leadsEndpoint}}"] },
            "description": "Export leads with cursor pagination. Grounded in Swapcard Leads docs (pageInfo, nodes, rating, note, target)."
          }
        },
        {
          "name": "Scan badges",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Authorization", "value": "{{accessToken}}" },
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "mutation ScanBadges($eventId: ID!, $exhibitorId: ID!, $badges: [BadgeScanInput!]!) {\n  scanBadges(eventId: $eventId, exhibitorId: $exhibitorId, badges: $badges) {\n    id\n    rating\n    note\n    target {\n      ... on Contact { id firstName lastName }\n      ... on EventPerson { id firstName lastName }\n    }\n  }\n}",
                "variables": "{\n  \"eventId\": \"\",\n  \"exhibitorId\": \"\",\n  \"badges\": [\n    { \"badgeId\": \"\", \"rating\": \"WARM\", \"note\": \"\" }\n  ]\n}"
              }
            },
            "url": { "raw": "{{leadsEndpoint}}", "host": ["{{leadsEndpoint}}"] },
            "description": "Scan badges to create leads. Grounded in Swapcard Leads docs (scanBadges returns connection { id, rating, note, target })."
          }
        }
      ]
    }
  ]
}